summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2019-11-13ci: Expand the freedreno blit skip regex to cover more cases.Eric Anholt1-1/+1
We've had flaps on at least: - r16f_to_r16f - r16i_to_rg16i Reviewed-by: Daniel Stone <daniels@collabora.com>
2019-11-13anv: Initialize depth_bounds_test_enable when not explicitly setCaio Marcelo de Oliveira Filho1-2/+1
This was causing uninitialized value to end up propagated to the 3DSTATE_DEPTH_BOUNDS packet, leading to asserts on packet building due to the value being greater than 1. Fixes: 939ddccb7a5 ("anv: Add support for depth bounds testing.") Reviewed-by: Plamena Manolova <plamena.manolova@intel.com>
2019-11-13pan/midgard: Remove util/ra supportAlyssa Rosenzweig8-280/+26
It's now unused, in favour of LCRA. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
2019-11-13pan/midgard: Integrate LCRAAlyssa Rosenzweig3-76/+82
Pretty routine, we do have a hack to force swizzle alignment for !32-bit for until we implement !32-bit the right way. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
2019-11-13pan/midgard: Implement linearly-constrained register allocationAlyssa Rosenzweig3-0/+339
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
2019-11-13pan/midgard: Add blend shader selection bits for MRTAlyssa Rosenzweig3-30/+13
This is less complicated than previously thought. Note we have no way of specifying the work register count for blend shaders; it must be strictly less than the work register count of the corresponding fragment shader (which is fine since we force the fragment shader to report a count of 16 with a blend shader as a major hack until we get register pressure down for blend shaders). TODO: pandecode the flags. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
2019-11-13drm-shim: fix EOF caseChristian Gmeiner1-0/+1
Close input end of the pipe after data was written. Without this fix I have seen a hang in sysfs_uevent_get(.., "OF_FULLNAME") when key was not found. Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com> Reviewed-by: Eric Anholt <eric@anholt.net>
2019-11-13util/android: fix android build errorsTapani Pälli1-1/+1
Fixes: 9020f519 ("util/u_endian: Add error checks") Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2078 Signed-off-by: Tapani Pälli <tapani.palli@intel.com> Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
2019-11-13gitlab-ci: build RADV on ARM64Samuel Pitoiset1-0/+1
The ARMHF LLVM package is LLVM 7 but RADV requires LLVM 8. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
2019-11-13gitlab-ci: build a specific libdrm version for ARM64Samuel Pitoiset2-2/+9
RADV requires libdrm-2.4.100 but the distrib package is too old. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
2019-11-13zink: move drawing separate sourceErik Faye-Lund4-296/+312
This code is kinda stand-alone, and it makes it a bit easier to find the right source in the source-tree.
2019-11-13zink: move blitting to separate sourceErik Faye-Lund4-176/+188
This code is kinda stand-alone, and it makes it a bit easier to find the right source in the source-tree
2019-11-13zink: move filter-helper to separate helper-headerErik Faye-Lund2-13/+41
This will help code-reuse a bit in the next commit.
2019-11-13zink: move format-checking to separate sourceErik Faye-Lund4-155/+161
This code is more or less stand-alone, and this keeps the formats array a bit more encapsulated.
2019-11-12ci: Disable flappy blit tests on a630.Eric Anholt1-0/+4
These have shown up with the new CTS runner, which has changed test ordering. Reviewed-by: Daniel Stone <daniels@collabora.com>
2019-11-12freedreno/ir3: remove unused parameterRob Clark1-4/+4
Signed-off-by: Rob Clark <robdclark@chromium.org>
2019-11-12freedreno/ir3: legalize cleanupsRob Clark1-1/+7
We can clear the "needs" flags once we emit a flag. And also, don't open-code the opcode name. Signed-off-by: Rob Clark <robdclark@chromium.org> Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com> Reviewed-by: Eric Anholt <eric@anholt.net>
2019-11-12freedreno/ir3: fix gpu hang with pre-fs-tex-fetchRob Clark2-10/+32
For pre-fs-dispatch texture fetch, we need to assign bary_ij to r0.x, even if it is not used in the shader (ie. only varying use is for tex coords). But if, for example, gl_FragCoord is used, it could get assigned on top of bary_ij, resulting in a GPU hang. The solution to this is two-fold: (1) the inputs/outputs rework has the benefit of making RA realize bary_ij is a vec2, even if there are no split/collect instructions (due to no varying fetches in the shader itself). And (2) extend the live ranges of meta:input instructions to the first non-input, to prevent RA from assigning the same register to multiple inputs. Backport note: because of (1) above, a better solution for 19.3 would be to revert f30c256ec05. Fixes: f30c256ec05 ("freedreno/ir3: enable pre-fs texture fetch for a6xx") Signed-off-by: Rob Clark <robdclark@chromium.org> Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com> Reviewed-by: Eric Anholt <eric@anholt.net>
2019-11-12freedreno/ir3: only tex instructions have wrmaskRob Clark1-6/+3
At the ir3 level, we would assume that we could use wrmask to mask off other components of an instruction returning a vecN when they are not used. Which would let RA use components not written for other live values. But this is only true for tex instructions. Signed-off-by: Rob Clark <robdclark@chromium.org> Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com> Reviewed-by: Eric Anholt <eric@anholt.net>
2019-11-12freedreno/ir3: re-work shader inputs/outputsRob Clark5-270/+192
Allow inputs/outputs to be vecN (ie. whatever their actual size is), and use split to get scalar components of inputs, and collect to gather up scalar components of outputs. The main motivation is to simplify RA, by only having to consider split/ collect to figure out where values need to land in consecutive scalar registers, rather than having to also deal with left/right neighbors. Because of varying packing, and the resulting fractional location (location_frac), to implement load_input/store_output, it is still convenient to have a table of scalar inputs/outputs. We move this to the compile ctx (since it is only needed for nir->ir3). Signed-off-by: Rob Clark <robdclark@chromium.org> Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com> Reviewed-by: Eric Anholt <eric@anholt.net>
2019-11-12freedreno/ir3: simplify creating sysval inputsRob Clark1-90/+58
In almost all places, the add_sysval_input() is paired directly with a create_input(). (The one exception is frag shader ij bary coord, and this exception will go away in a later patch.) So go ahead and clean this up before reworking input/output handling. Signed-off-by: Rob Clark <robdclark@chromium.org> Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com> Reviewed-by: Eric Anholt <eric@anholt.net>
2019-11-12freedreno/ir3: remove first-vertex sysvalRob Clark3-7/+0
This is a driver-param (loaded from uniform), not a sysval (populated by hw into a register). So it has no value to having a sysval slot. Signed-off-by: Rob Clark <robdclark@chromium.org> Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com> Reviewed-by: Eric Anholt <eric@anholt.net>
2019-11-12freedreno/ir3: helper to print ir if debug enabledRob Clark2-28/+16
Signed-off-by: Rob Clark <robdclark@chromium.org> Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com> Reviewed-by: Eric Anholt <eric@anholt.net>
2019-11-12freedreno/ir3: show input/output wrmask's in disasmRob Clark1-2/+9
Currently it is always 0x1 (scalar), but that will change in a later patch. Signed-off-by: Rob Clark <robdclark@chromium.org> Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com> Reviewed-by: Eric Anholt <eric@anholt.net>
2019-11-12freedreno/ir3: add input/output iteratorsRob Clark11-63/+49
We can at least get rid of the if-not-NULL check in a bunch of places. Signed-off-by: Rob Clark <robdclark@chromium.org> Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com> Reviewed-by: Eric Anholt <eric@anholt.net>
2019-11-12freedreno/ir3: remove impossible conditionRob Clark1-3/+0
We keep kill's alive w/ keeps these days, rather than a fake output. This condition was left over from prior to that change. Signed-off-by: Rob Clark <robdclark@chromium.org> Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com> Reviewed-by: Eric Anholt <eric@anholt.net>
2019-11-12freedreno/ir3: rename fanin/fanout to collect/splitRob Clark10-44/+48
If I'm going to refactor a bit to use these meta instructions to also handle input/output, then might as well cleanup the names first. Nouveau also uses collect/split for names of these meta instructions, and I like those names better. Signed-off-by: Rob Clark <robdclark@chromium.org> Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com> Reviewed-by: Eric Anholt <eric@anholt.net>
2019-11-12freedreno/ir3: remove half-precision outputRob Clark1-30/+0
This doesn't really work, we can't necessarily just change the outputs to half-precision like this in anything but simple cases. Keep the shader key entry around though, eventually with proper mediump support we could use this with a nir pass to use lower precision frag shader outputs when the render target format has <= 16b/component. Signed-off-by: Rob Clark <robdclark@chromium.org> Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com> Reviewed-by: Eric Anholt <eric@anholt.net>
2019-11-12freedreno/ir3: fix valgrind complaint with STLWRob Clark1-1/+1
The instruction has 3 src regs, so `instr->regs[0..3]` are valid, but `instr->regs[4]` is not. ``` Test case 'dEQP-GLES31.functional.shaders.linkage.es31.tessellation.varying.rules.output_superfluous_declaration'.. ==29239== Invalid read of size 8 ==29239== at 0x5BE9CDC: emit_cat6 (ir3.c:841) ==29239== by 0x5BEA1BF: ir3_assemble (ir3.c:921) ==29239== by 0x5BDF0A7: ir3_shader_assemble (ir3_shader.c:133) ==29239== by 0x5BDF193: assemble_variant (ir3_shader.c:162) ==29239== by 0x5BDF407: create_variant (ir3_shader.c:215) ==29239== by 0x5BDF4DB: shader_variant (ir3_shader.c:241) ==29239== by 0x5BDF553: ir3_shader_get_variant (ir3_shader.c:257) ==29239== by 0x5BA85F7: ir3_shader_variant (ir3_gallium.c:80) ==29239== by 0x5BA7703: ir3_cache_lookup (ir3_cache.c:96) ==29239== by 0x5B8B8B3: fd6_emit_get_prog (fd6_emit.h:119) ==29239== by 0x5B8C137: fd6_draw_vbo (fd6_draw.c:186) ==29239== by 0x5BB1FBB: fd_draw_vbo (freedreno_draw.c:290) ==29239== Address 0xb97f2d0 is 0 bytes after a block of size 240 alloc'd ==29239== at 0x4848D54: malloc (in /usr/lib/aarch64-linux-gnu/valgrind/vgpreload_memcheck-arm64-linux.so) ==29239== by 0x61BD35B: ralloc_size (ralloc.c:119) ==29239== by 0x61BD41B: rzalloc_size (ralloc.c:151) ==29239== by 0x5BE599B: ir3_alloc (ir3.c:45) ==29239== by 0x5BEA583: instr_create (ir3.c:984) ==29239== by 0x5BEA5DF: ir3_instr_create2 (ir3.c:1000) ==29239== by 0x5BEE317: ir3_STLW (ir3.h:1431) ==29239== by 0x5BF12D3: emit_intrinsic_store_shared_ir3 (ir3_compiler_nir.c:903) ==29239== by 0x5BF418B: emit_intrinsic (ir3_compiler_nir.c:1802) ==29239== by 0x5BF5D07: emit_instr (ir3_compiler_nir.c:2339) ==29239== by 0x5BF603F: emit_block (ir3_compiler_nir.c:2426) ==29239== by 0x5BF624B: emit_cf_list (ir3_compiler_nir.c:2474) ==29239== ``` Probably this only triggers in non-optimized builds? Fixes: 1f3b52ce503 ("freedreno/a6xx: Add register offset for STG/LDG") Signed-off-by: Rob Clark <robdclark@chromium.org> Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com> Reviewed-by: Eric Anholt <eric@anholt.net>
2019-11-12ci: Remove old commented copy of freedreno artifacts.Eric Anholt1-1/+0
This path was from an older version of freedreno CI.
2019-11-12ci: Enable all of GLES3/3.1 testing for softpipe.Eric Anholt3-11/+424
Now that we're not using so many job slots, it's easy to get these jobs run in a reasonable amount of time (gles3 took 10 minutes for 4 cores, and gles31 was 15 minutes for 4 cores). Acked-by: Michel Dänzer <mdaenzer@redhat.com>
2019-11-12ci: Use cts_runner for our dEQP runs.Eric Anholt6-87/+56
This runner is a little project by Bas, written in C++, that spawns threads that then loop grabbing chunks of the (randomly shuffled but consistently so) test list and hand it to a dEQP instance. As the remaining list gets shorter, so do the chunks, so hopefully the threads all complete effectively at once. It also handles restarting after crashes automatically. I've extended the runner a bit to do what I was doing in the bash scripts before, like the skip list and expected failures handling. This project should also be a good baseline for extending to handle retesting of intermittent failures. By switching to it, we can have the swrast tests just take up one job slot on the shared runners and keep their allotment of CPUs busy, instead of taking up job slots with single-threaded dEQP jobs. It will also let us (eventually, once I reprovision) switch the freedreno runners over to threading within the job instead of running concurrent jobs, so that memory scribbles in one pipeline don't affect unrelated pipelines, and I can experiment with their parallelism (particularly on a306 where we are frequently backed up) without trashing other people's jobs. What we lose in this process is per-test output in the log (not a big loss, I think, since we summarize fails at the end and reducing log length keeps chrome from choking on our logs so badly). We also drop the renderer sanity checking, since it's not saving qpa files for us to go poke through. Given that all the drivers involved have fail lists, if we got the wrong renderer somehow, we'd get a job failure anyway. v2: Rebase on droppong of the autoscale cluster and the arm64 build/test split. Use a script to deduplicate the cts-runner build. v3: Rebase on the amd64 build/test container split. Acked-by: Daniel Stone <daniels@collabora.com> (v1) Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> (v2)
2019-11-12ci: Make the skip list regexes match the full test name.Eric Anholt2-7/+7
The bash scripts were using grep in the manner that matches any subset of the line, but the new CTS runner matches the whole line and I think that's a pretty good behavior. Given that some of the skip lists already were written to match the full test name, just make them consistently do so. Reviewed-by: Eric Engestrom <eric.engestrom@intel.com> Acked-by: Daniel Stone <daniels@collabora.com> Acked-by: Michel Dänzer <mdaenzer@redhat.com>
2019-11-12ci: Use several debian buster packages instead of hand-building.Eric Anholt2-51/+9
This helps cut down our container build time. I've left a few that we're likely to rev more frequently or I was less confident in dropping. v2: Rebase on the build/test container split, now bumps the build container tag in this commit. Acked-by: Eric Engestrom <eric.engestrom@intel.com> (v1) Acked-by: Daniel Stone <daniels@collabora.com> (v1)
2019-11-12iris: Use mocs from isl_dev.Rafael Antognolli7-71/+71
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
2019-11-12anv: Use mocs settings from isl_dev.Rafael Antognolli6-74/+15
v2: Remove device->default_mocs and external_mocs (Jason). Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
2019-11-12intel/isl: Add MOCS settings to isl_device.Rafael Antognolli2-0/+57
Centralize mocs settings into isl. Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
2019-11-12freedreno: fix eglDupNativeFenceFD errorRob Clark1-4/+10
We can end up with scenarios where last_fence is associated with a batch that is flushed through some other path before needs_out_fence_fd gets set. Resulting in returning a fence that has no backing fd. The simplest thing is to just skip the optimization to try and avoid no-op batches when a fence-fd is requested. This should normally be just once a frame anyways. Signed-off-by: Rob Clark <robdclark@chromium.org> Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
2019-11-12nir: fix a couple signed/unsigned comparison warnings in nir_builder.hBrian Paul1-2/+2
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
2019-11-12s/APIENTRY/GLAPIENTRY/ in teximage.cBrian Paul1-1/+1
The later is the right symbol for entrypoint functions. Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
2019-11-12android: mesa: Revert "android: mesa: revert "Enable asm unconditionally""Lepton Wu4-14/+0
Commit 45206d7673adb1484cbdb3eadaf82e0849c9cdcf fixed PIC issue of x86 asm stub. We can enable asm for Android x86 now. This should sightly improve performance. Acked-by: Eric Anholt <eric@anholt.net> Acked-by: Eric Engestrom <eric.engestrom@intel.com> Acked-by: Tapani Pälli <tapani.palli@intel.com> Signed-off-by: Lepton Wu <lepton@chromium.org>
2019-11-12aco: combine read_invocation and shuffle implementationsRhys Perry1-29/+7
They do mostly the same thing now. Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
2019-11-12aco: don't propagate vgprs into v_readlane/v_writelaneRhys Perry1-1/+8
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Fixes: 93c8ebfa ('aco: Initial commit of independent AMD compiler')
2019-11-12aco: fix read_invocation with VGPR lane indexRhys Perry1-2/+1
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Fixes: 93c8ebfa ('aco: Initial commit of independent AMD compiler')
2019-11-12nir/divergence: improve DA of shuffleRhys Perry1-1/+5
If the data is uniform, then it's really a uniform copy. If the index is uniform, then it's really a read_invocation. Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
2019-11-12aco: fix shuffle with uniform operandsRhys Perry1-6/+6
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Fixes: 93c8ebfa ('aco: Initial commit of independent AMD compiler')
2019-11-12aco: use DPP instead of exec modification when lowering GFX10 shufflesRhys Perry1-15/+7
Seems we can use DPP's row_mask field to get an effect similar to modifying exec. Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
2019-11-12gitlab-ci: build libdrm using meson instead of autotoolsEric Engestrom2-2/+2
Autotools was deprecated for a while and has now been removed, so let's start using meson here so that we won't have any issues next time we update libdrm. Signed-off-by: Eric Engestrom <eric.engestrom@intel.com> Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
2019-11-12aco: rematerialize s_movk instructionsDaniel Schürmann1-2/+7
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
2019-11-12aco: preserve kill flag on moved operands during RADaniel Schürmann1-1/+1
Fixes: 93c8ebfa780ebd1495095e794731881aef29e7d3 aco: Initial commit of independent AMD compiler Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>