aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* v3d/compiler: don't rewrite unused temporaries to point to NOP registerIago Toral Quiroga2020-06-261-8/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This was assuming that unused temporaries are written but never read, since the NOP register can only be used as a destination register, but we can end up here also for temporaries that are read once but never written. This was found with a graphicsfuzz test that has a switch with cases that have unreachable discards. In that test, NIR genrates code like this: decl_reg vec3 32 r19 ... r20 = mov r19.z r21 = mov r19.y r22 = mov r19.x Where r19.xyz would generate 3 temporary registers that are read but never written, so we would rewrite them to point to the NOP register as QPU instruction sources, which is not allowed and would hit an assert that expect magic reads to be from [r0,r5] only. Fixes: dEQP-VK.graphicsfuzz.unreachable-switch-case-with-discards Reviewed-by: Alejandro Piñeiro <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5645>
* v3d: Use stvpmd for non-uniform offsets in GSNeil Roberts2020-06-261-1/+12
| | | | | | | | | | | | | | The offset for the VPM write for storing outputs from the geometry shader isn’t necessarily uniform across all the lanes. This can happen if some of the lanes don’t emit some of the vertices. In that case the offset for the subsequent vertices will be different in each lane. In that case we need to use the stvpmd instruction instead of stvpmv because it will scatter the values out. Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3150 Reviewed-by: Iago Toral Quiroga <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5621>
* v3d: Add missing macro for stvpmd instructionNeil Roberts2020-06-261-0/+1
| | | | | | | | stvpmd is like stvpmv but it scatters the output. It can be used with non-dynamically uniform offsets. Reviewed-by: Iago Toral Quiroga <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5621>
* radeonsi: remove tabsMarek Olšák2020-06-269-56/+56
| | | | | Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5603>
* radeonsi: clear per-context buffers at the end of si_create_contextMarek Olšák2020-06-261-5/+11
| | | | | | | We don't want any packets before CONTEXT_CONTROL. Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5603>
* radeonsi: make si_pm4_cmd_begin/end static and simplify all usagesMarek Olšák2020-06-264-15/+8
| | | | | | | There is no longer the confusing trailing si_pm4_cmd_end call. Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5603>
* radeonsi: disallow adding BOs into si_pm4_state except 1 shader BO per stateMarek Olšák2020-06-264-36/+4
| | | | | | | | The si_shader pointer is already there, so use it and remove the array of BOs. Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5603>
* radeonsi: make wait_mem_scratch unmappableMarek Olšák2020-06-261-1/+4
| | | | | Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5603>
* radeonsi: don't add the tess ring buffers into the cs_preamble stateMarek Olšák2020-06-262-3/+5
| | | | | Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5603>
* radeonsi: rename init_config states to cs_preamble statesMarek Olšák2020-06-267-47/+45
| | | | | Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5603>
* radeonsi: don't add the border color buffer into the init_config stateMarek Olšák2020-06-262-1/+3
| | | | | | | We might have to replace init_config for preemption. Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5603>
* ac,winsys/amdgpu: align IBs the same as the kernelMarek Olšák2020-06-263-12/+33
| | | | | Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5603>
* amd: add proper definitions for NOP packetsMarek Olšák2020-06-265-10/+13
| | | | | Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5603>
* gitlab-ci: attach the Fossilize log file as artifact on failureSamuel Pitoiset2020-06-263-3/+13
| | | | | | | | It might be help. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Eric Anholt <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5627>
* gitlab-ci: append Fossilize stdout/stderr to a file to reduce spamSamuel Pitoiset2020-06-261-1/+6
| | | | | | | | | Fossilize is really verbose and it's easy to reach the buffer limit in GitLab CI. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Eric Anholt <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5627>
* gitlab-ci: set the number of Fossilize threads to 4Samuel Pitoiset2020-06-261-1/+1
| | | | | | | | | The shared runners are set up for concurrent jobs ~= CPUs / 4 (x86) or 8 (ARM). Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Eric Anholt <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5627>
* panfrost: Only copy resources when they are in a pending batchIcecream952020-06-261-3/+7
| | | | | | | | | Fixes a performance regression in alacritty, and rendering is still fine in GLQuake ports. Fixes: 361fb38662f ("panfrost: Copy resources when mapping to avoid waiting for readers") Reviewed-by: Tomeu Vizoso <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5642>
* anv: Align "used" attribute to 64 bits.Rafael Antognolli2020-06-251-2/+5
| | | | | | | | | | This is a 64 bits value that might not be aligned on 32 bit plaforms. Since it's used with atomics, let's make sure it gets properly aligned to avoid any potential performance loss. Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Lionel Landwerlin <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5637>
* iris: Align last_seqnos to 64 bits.Rafael Antognolli2020-06-251-1/+4
| | | | | | | | | | | | last_seqnos is used in atomic operations. Specially on 32 bit platorms, it tends to be slower if it's not aligned to 64 bits (see cdc331c6f9f6b2ffc035018de4445dba9b67c1f7). This fixes a small regression on Bioshock. Fixes: aba3aed96e4 ("iris: fix export of GEM handles") Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Lionel Landwerlin <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5637>
* ci: Remove a stray "always" on the freedreno traces job.Eric Anholt2020-06-251-2/+0
| | | | | | | | | This was making it so that the CI would error if the set of files modified or the pipeline involvd meant the jobs we depend on weren't enabled. It was just some misplaced debug leftovers of mine. Fixes: b88c46fa11ae ("ci: Add a freedreno a630 tracie run.") Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5653>
* freedreno/a6xx: Add support for polygon fill mode (as long as front==back).Eric Anholt2020-06-253-6/+18
| | | | | | | | Unlike a4xx, we don't seem to have separate back vs front fields any more. Still, this improves desktop GL conformance (and one of the traces in traces-db). Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5650>
* turnip: Add support for polygon fill modes.Eric Anholt2020-06-254-5/+25
| | | | | | Passes the new tests in dEQP-VK.rasterization.culling.* Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5650>
* freedreno/a6xx: Define the register fields for polygon fill mode.Eric Anholt2020-06-253-6/+17
| | | | | | | | | Produced by comparing the traces of: dEQP-VK.rasterization.culling.front_triangles dEQP-VK.rasterization.culling.front_triangles_point dEQP-VK.rasterization.culling.front_triangles_line Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5650>
* ci: Add a freedreno a630 tracie run.Eric Anholt2020-06-255-2/+291
| | | | | | | | | This job runs in about one minute on the current set of traces, and has successfully revealed some bugs in our current rendering. Takes about 7 minutes currently. Reviewed-by: Tomeu Vizoso <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5433>
* ci/tracie: Fix apitrace dump using "less" which isn't in the ARM rootfs.Eric Anholt2020-06-251-0/+3
| | | | | | | | You would get no output during the "find the last frame" step of the trace replay. Reviewed-by: Tomeu Vizoso <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5433>
* ci/tracie: Print the path if the trace isn't found.Eric Anholt2020-06-251-1/+3
| | | | | | | I hit this a few times while setting up CI. Reviewed-by: Tomeu Vizoso <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5433>
* ci: Include trace replay support in ARM rootfses.Rohan Garg2020-06-259-13/+105
| | | | | | | | | | | | | | Builds the renderdoc and apitrace programs so we can replay GL traces on DUTs. [Separated out from 5472's commit that also enabled the jobs in LAVA, dropped unnecessary python packages from arm_build, fixed up arm64_test build, traces-db in baremetal, new commit message by anholt] Signed-off-by: Rohan Garg <[email protected]> Signed-off-by: Tomeu Vizoso <[email protected]> Reviewed-by: Eric Anholt <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5433>
* ci/bare-metal: Don't include dev packages in arm*test.Eric Anholt2020-06-252-2/+7
| | | | | | | We just need these to build our rootfs, clean them out afterwards. Reviewed-by: Tomeu Vizoso <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5433>
* ci/bare-metal: Skip setting of unset variables at startup.Eric Anholt2020-06-251-1/+3
| | | | | | | | It's silly to be setting (and logging the setting of!) all the env vars we *didn't* set in a job. Reviewed-by: Tomeu Vizoso <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5433>
* ci: Move ARM rootfses to stableTomeu Vizoso2020-06-252-4/+4
| | | | | | | | | | | | | We build in Debian buster but were currently testing in bullseye-based ramdisks. This has started being a problem since Python 3.7 was removed from bullseye. [ Also bumped arm_test containers, by anholt ] Signed-off-by: Tomeu Vizoso <[email protected]> Acked-by: Alyssa Rosenzweig <[email protected]> Reviewed-by: Eric Anholt <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5433>
* ci: Don't call renderdoc's ReplayController.Shutdown()Tomeu Vizoso2020-06-251-1/+0
| | | | | | | | | | If we do, Renderdoc will call eglDestroyContext twice, causing crashes within Mesa. Signed-off-by: Tomeu Vizoso <[email protected]> Acked-by: Alyssa Rosenzweig <[email protected]> Reviewed-by: Eric Anholt <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5433>
* turnip: implement VK_KHR_shader_draw_parametersJonathan Marek2020-06-255-74/+136
| | | | | | | | | | | Note: going by the blob, VFD_INDEX_OFFSET/FD_INSTANCE_START_OFFSET seem completely unused by indirect draws, so this changes them to only be set for non-indirect draws (and moves them to the vs_params draw state). Passes dEQP-VK.draw.shader_draw_parameters.* Signed-off-by: Jonathan Marek <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5635>
* freedreno/ir3: add support for load_draw_idJonathan Marek2020-06-254-4/+15
| | | | | | | | | | This is part of adding VK_KHR_shader_draw_parameters for turnip. IR3_DP_VTXID_BASE/IR3_DP_VTXCNT_MAX offsets are changed to match what CP_DRAW_INDIRECT_MULTI requires. Signed-off-by: Jonathan Marek <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5635>
* freedreno/registers: add CP_DRAW_INDIRECT_MULTIJonathan Marek2020-06-251-0/+32
| | | | | Signed-off-by: Jonathan Marek <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5635>
* gitlab-ci: add a list of expected failures for RADV/ACO on NAVI14Samuel Pitoiset2020-06-251-0/+21
| | | | | Signed-off-by: Samuel Pitoiset <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5647>
* radv: enable ACO by defaultDaniel Schürmann2020-06-257-19/+9
| | | | | | | No more dragons have been seen, caution is still required... Reviewed-by: Samuel Pitoiset <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5445>
* radv: change use_aco -> use_llvmDaniel Schürmann2020-06-258-49/+49
| | | | | | | We are about to make ACO the default backend. Reviewed-by: Samuel Pitoiset <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5445>
* radv: introduce RADV_DEBUG=llvm optionDaniel Schürmann2020-06-253-0/+8
| | | | | | | | This option enables the LLVM compiler backend to be used for shader compilation Reviewed-by: Samuel Pitoiset <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5445>
* zink: unify code for setting resource barriersMike Blumenkrantz2020-06-251-26/+20
| | | | | | | no functional changes, this code was just duplicated Reviewed-by: Erik Faye-Lund <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5615>
* radv: lower 64-bit dfloor on GFX6 for fixing precision issuesSamuel Pitoiset2020-06-253-5/+10
| | | | | | | | | | GFX6 doesn't support v_floor_f64 and the precision of v_fract_f64 which is used to implement 64-bit floor is less than what Vulkan requires. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Daniel Schürmann <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5609>
* radv: lower 64-bit drcp/dsqrt/drsq for fixing precision issuesSamuel Pitoiset2020-06-258-162/+16
| | | | | | | | | | | | | | The hardware precision of v_rcp_f64, v_sqrt_f64 and v_rsq_f64 is less than what Vulkan requires. This lowers using the Goldschmidt's algorithm to improve precision. Fixes dEQP-VK.glsl.builtin.precision_double.* on both compiler backends. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Daniel Schürmann <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5609>
* iris: Honor scanout requirement from DRIDanylo Piliaiev2020-06-251-1/+1
| | | | | | | | | | | | | | | | Translate PIPE_BIND_SCANOUT as ISL_SURF_USAGE_DISPLAY_BIT, instead of PIPE_BIND_DISPLAY_TARGET. PIPE_BIND_DISPLAY_TARGET isn't used for dri images and seem to be set only for fake winsys buffers (which aren't displayed). The trouble is that a fake buffer could be multisampled and we cannot have multisampled surface with display bit. Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2313 Signed-off-by: Danylo Piliaiev <[email protected]> Reviewed-by: Lionel Landwerlin <[email protected]> Reviewed-by: Eric Anholt <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4784>
* vulkan/overlay: fix crash on destroying NULL swapchainPavel Asyutchenko2020-06-251-0/+6
| | | | | | Cc: <[email protected]> Reviewed-by: Lionel Landwerlin <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5616>
* gitlab-ci: add parallel-rdp fossilsSamuel Pitoiset2020-06-251-1/+5
| | | | | | | | | | | | | https://github.com/Themaister/parallel-rdp These fossils contain very large and complex shaders. The small_*.foz files use 8/16-bit arithmetic. Only RADV uses Fossilize. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Andres Gomez <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5542>
* freedreno/ir3/ra: fix pre-color edge caseRob Clark2020-06-251-7/+3
| | | | | | | | | | | | | | | | Fixes a case where you have something like: aVecOutput.z = aScalarInput; In particular, skipping over things that are not the first component is wrong.. in the above case the input we need to precolor is the 3rd component. But we need to adjust the target register according to the offset. Fixes android.hardware.nativehardware.cts.AHardwareBufferNativeTests Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5601>
* turnip: disable early_z for VK_FORMAT_S8_UINTJonathan Marek2020-06-252-5/+7
| | | | | | | | | | This format doesn't have depth, and apparently having earlyz enabled can cause issues. Fixes at least these tests: dEQP-VK.renderpass.suballocation.multisample.s8_uint.samples_* Signed-off-by: Jonathan Marek <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5586>
* turnip: fix update_stencil_maskJonathan Marek2020-06-251-2/+2
| | | | | | | | | | | | | The previous value was not being cleared, resulting in some dynamic stencil state failures. Fixes these two tests: dEQP-VK.dynamic_state.ds_state.stencil_params_advanced dEQP-VK.dynamic_state.ds_state.stencil_params_basic_1 Fixes: 233610f8cf8d8810 ("turnip: refactor draw states and dynamic states") Signed-off-by: Jonathan Marek <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5586>
* turnip: fix empty scissor caseJonathan Marek2020-06-251-7/+11
| | | | | | | | | Fixes these two tests: dEQP-VK.draw.scissor.empty_dynamic_scissor_first_draw dEQP-VK.draw.scissor.empty_static_scissor Signed-off-by: Jonathan Marek <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5586>
* freedreno: handle batch flush in resource trackingRob Clark2020-06-251-4/+30
| | | | | | | | | | | | | | | In rare cases, we can get into situations where the tracking of read/ written resources triggers a flush of the current batch. To handle that, (1) take a reference to the current batch, so it doesn't disappear under us, and (2) check after resource tracking whether the current batch was flushed. If it is, we have to re-do the resource tracking, but since we have a fresh batch, it should not get flushed the second time around. Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3160 Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5634>
* freedreno: split out batch clear tracking helperRob Clark2020-06-251-15/+25
| | | | | Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5634>