- Mar 18, 2020
-
-
Dylan Baker authored
-
Dylan Baker authored
-
Faith Ekstrand authored
We've found in GL that an actual end-of-pipe sync is required before invalidating the aux tables and that a simple CS stall is insufficient. If we're about to modify the actual AUX table entries from the GPU, we should definitely make sure it's stopped dead before we do so. Cc: mesa-stable@lists.freedesktop.org Reviewed-by:
Rafael Antognolli <rafael.antognolli@intel.com> Tested-by: Marge Bot <mesa/mesa!4206> Part-of: <mesa/mesa!4206> (cherry picked from commit d60375cb)
-
An end of pipe sync seems to satisfy this restriction. It takes care of GPU hangs seen in dEQP-GLES31.functional.copy_image.* tests. Reviewed-by:
Jason Ekstrand <jason@jlekstrand.net> Tested-by: Marge Bot <mesa/mesa!4005> Part-of: <mesa/mesa!4005> (cherry picked from commit b4ddc613)
-
We can write the aux map address only once during the batch initialization, and then only invalidate it once we modify it. Reviewed-by:
Jason Ekstrand <jason@jlekstrand.net> Part-of: <mesa/mesa!4005> (cherry picked from commit a7de6f13)
-
Reviewed-by:
Jason Ekstrand <jason@jlekstrand.net> Part-of: <mesa/mesa!4005> (cherry picked from commit 43dc842c)
-
Faith Ekstrand authored
v2: Do end-of-pipe sync after clear depth stencil too (Jason). v3: Also do end-of-pipe sync before clear depth stencil too (Jason). Reviewed-by:
Rafael Antognolli <rafael.antognolli@intel.com> Part-of: <mesa/mesa!4005> (cherry picked from commit 3ca3050d)
-
Faith Ekstrand authored
Reviewed-by:
Rafael Antognolli <rafael.antognolli@intel.com> Part-of: <mesa/mesa!4005> (cherry picked from commit 2db47195)
-
Faith Ekstrand authored
Reviewed-by:
Rafael Antognolli <rafael.antognolli@intel.com> Part-of: <mesa/mesa!4005> (cherry picked from commit ac8d412b)
-
The shader module name is used to compute the pipeline key. The driver used to load the wrong pipelines because the shader names were similar. This should fix random failures of dEQP-VK.pipeline.depth_range_unrestricted.* Fixes: f11ea226 ("radv: fix a performance regression with graphics depth/stencil clears") Signed-off-by:
Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by:
Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Tested-by: Marge Bot <mesa/mesa!4216> Part-of: <mesa/mesa!4216> (cherry picked from commit 94e37859)
-
piglit/bin/arb_bindless_texture-limit -auto -fbo: Needed to deal with non-NULL dynamic_index without deref in tex instructions. piglit/bin/shader_runner tests/spec/arb_bindless_texture/execution/images/multiple-resident-images-reading.shader_test -auto: Need to deal with non-deref images in enter_waterfall_imae. Fixes: b83c9aca "amd/llvm: Fix divergent descriptor indexing. (v3)" Acked-by:
Marek Olšák <marek.olsak@amd.com> Reviewed-by:
Samuel Pitoiset <samuel.pitoiset@gmail.com> Tested-by: Marge Bot <mesa/mesa!4191> Part-of: <mesa/mesa!4191> (cherry picked from commit 8e4e2ced)
-
In Fedora 32 build was failing with meson-0.53.2-1.git88e40c7.fc32 and gcc-10.0.1-0.9.fc32.x86_64. Worked with meson-0.53.1-1 and same gcc. /usr/bin/ld: src/gallium/state_trackers/dri/libdri.a(dri2.c.o): in function `dri2_interop_export_object': /home/airlied/devel/mesa/mesa/build/../src/gallium/state_trackers/dri/dri2.c:1813: undefined reference to `st_finalize_texture' /usr/bin/ld: src/gallium/state_trackers/dri/libdri.a(dri_screen.c.o): in function `dri_init_screen_helper': /home/airlied/devel/mesa/mesa/build/../src/gallium/state_trackers/dri/dri_screen.c:580: undefined reference to `st_gl_api_create' Moving this around seems to fix it. Cc: mesa-stable@lists.freedesktop.org Reviewed-by:
Dylan Baker <dylan@pnwbakers.com> Tested-by: Marge Bot <mesa/mesa!4220> Part-of: <mesa/mesa!4220> (cherry picked from commit 040ce9a1)
-
Dylan Baker authored
-
- Mar 17, 2020
-
-
The Vulkan 1.2.134 spec update clarified when implicit subpass dependencies should be injected by the driver. They only make sense if automatic layout transitions are performed. This should fix a performance regression with RPCS3 (although they added a workaround for RADV since the regression has been found). Closes: mesa/mesa#2502 Fixes: e60de085 ("radv: handle missing implicit subpass dependencies") Signed-off-by:
Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by:
Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Tested-by: Marge Bot <mesa/mesa!4210> Part-of: <mesa/mesa!4210> (cherry picked from commit 46e8ba13)
-
Michel Dänzer authored
Instead of uint64_t. Fixes potentially writing beyond the end of the handles pointer array on 32-bit architectures (and copying all 0s instead of the computed pointer values to the array on big endian ones). Corresponding compiler warning: ../src/gallium/drivers/llvmpipe/lp_state_cs.c: In function ‘llvmpipe_set_global_binding’: ../src/gallium/drivers/llvmpipe/lp_state_cs.c:1312:12: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] 1312 | va = (uint64_t)((char *)lp_res->data + offset); | ^ Fixes: 264663d5 "gallivm/llvmpipe: add support for global operations." Reviewed-by:
Roland Scheidegger <sroland@vmware.com> Part-of: <mesa/mesa!4166> (cherry picked from commit 106bf59c)
-
Dylan Baker authored
-
- Mar 16, 2020
-
-
Jose Fonseca authored
All the stubs in src/compiler/glsl/glcpp/pp_standalone_scaffolding.c are duplicate symbols. They should only be used as replacement for Mesa functions when building glcpp and glsl standalone compilers, but in fact they are getting linked with Mesa. This change fixes this by moving the standalone stubs to a libglcpp_standalone target, that's only linked with the glcpp/glsl tools. Reviewed-by:
Dylan Baker <dylan@pnwbakers.com> Reviewed-by:
Neha Bhende <bhenden@vmware.com> Tested-by: Marge Bot <mesa/mesa!4186> Part-of: <mesa/mesa!4186> (cherry picked from commit f6dad10d)
-
Danylo Piliaiev authored
../src/mesa/state_tracker/st_cb_texture.c:1719:57: runtime error: signed integer overflow: 203489280 * 16 cannot be represented in type 'int' Fixes: 21ca322e Signed-off-by:
Danylo Piliaiev <danylo.piliaiev@globallogic.com> Reviewed-by:
Marek Olšák <marek.olsak@amd.com> Tested-by: Marge Bot <mesa/mesa!4185> Part-of: <mesa/mesa!4185> (cherry picked from commit 51b1b102)
-
Dylan Baker authored
-
- Mar 13, 2020
-
-
Bas Nieuwenhuizen authored
There are multiple LLVM passes that very much move the intrinsic using the descriptor outside of the loop, defeating the entire point of creating the loop. Defeat the optimizer by splitting the break into a separate if-statement and putting an optimization barrier on the bool in between. v2: Move from a callback based system to begin/end loop. This does not make it significantly less intrusive but is a bit nicer with all the extra struct and callback stubs. v3: Deal with non-divergent values in divergent path. Closes: mesa/mesa#2160 Fixes: 028ce527 "radv: Add non-uniform indexing lowering." Reviewed-by:
Samuel Pitoiset <samuel.pitoiset@gmail.com> (cherry picked from commit b83c9aca) Tested-by: Marge Bot <mesa/mesa!4171> Part-of: <mesa/mesa!4171>
-
Dylan Baker authored
-
Marek Olšák authored
With the live shader cache, equivalent shaders can be backed by the same CSO. This breaks the logic that identifies whether the shader being deleted is bound. For example, having shaders A and B, you can bind shader A and delete shader B. Deleting shader B will unbind shader A if they are equivalent. Pierre-Eric figured out the root cause for this issue. Fixes: 0db74f47 - radeonsi: use the live shader cache Closes: #2596 Acked-by:
Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Tested-by: Marge Bot <mesa/mesa!4078> Part-of: <mesa/mesa!4078> (cherry picked from commit 2dc30042)
-
Danylo Piliaiev authored
Fixes: 67b32190 Closes: mesa/mesa#2619 Signed-off-by:
Danylo Piliaiev <danylo.piliaiev@globallogic.com> Reviewed-by:
Timothy Arceri <tarceri@itsqueeze.com> Tested-by: Marge Bot <mesa/mesa!4146> Part-of: <mesa/mesa!4146> (cherry picked from commit 1305b932)
-
Emma Anholt authored
We were wasting 4s on waiting for expected-not-to-appear files to show up on every test. Using timeouts in test code is error-prone anyway, as our shared runners may be busy on other jobs. Fixes: 50989f87 ("util/disk_cache: use a thread queue to write to shader cache") Link: mesa/mesa#2505 Reviewed-by:
Timothy Arceri <tarceri@itsqueeze.com> Tested-by: Marge Bot <mesa/mesa!4140> Part-of: <mesa/mesa!4140> (cherry picked from commit d0a52432)
-
This will lower dynamic quad broadcasts into something that both LLVM and ACO can understand. On hardware which supports shuffles, they are lowered to shuffle, on older hardware (GFX6-7) they will get lowered to constant quad broadcasts. Fixes dEQP-VK.subgroups.quad.*.subgroupquadbroadcast_nonconst_* Cc: mesa-stable@lists.freedesktop.org Signed-off-by:
Timur Kristóf <timur.kristof@gmail.com> Reviewed-by:
Samuel Pitoiset <samuel.pitoiset@gmail.com> Tested-by: Marge Bot <mesa/mesa!4147> Part-of: <mesa/mesa!4147> (cherry picked from commit 967eb232)
-
Some hardware doesn't support subgroup shuffle, and on such hardware it makes no sense to lower quad broadcasts to shuffle. Instead, let's lower them to four const quad broadcasts, paired with bcsel instructions. Cc: mesa-stable@lists.freedesktop.org Signed-off-by:
Timur Kristóf <timur.kristof@gmail.com> Reviewed-by:
Jason Ekstrand <jason@jlekstrand.net> Reviewed-by:
Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <mesa/mesa!4147> (cherry picked from commit ec16535b)
-
Eric Engestrom authored
Fixes: 86079447 ("scripts: Add a gen_release_notes.py script") Signed-off-by:
Eric Engestrom <eric@engestrom.ch> Reviewed-by:
Dylan Baker <dylan@pnwbakers.com> Part-of: <mesa/mesa!4113> (cherry picked from commit 64af6b3b)
-
Otherwise, LLVM optimizes it but it's actually incorrect. Fixes: 0f45d4dc ("ac: add ac_build_readlane without optimization barrier") Signed-off-by:
Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by:
Marek Olšák <marek.olsak@amd.com> Tested-by: Marge Bot <mesa/mesa!3585> Part-of: <mesa/mesa!3585> (cherry picked from commit cc320ef9)
-
Eric Engestrom authored
Fixes: f5433e4d ("vulkan/wsi: Add modifiers support to wsi_create_native_image") Signed-off-by:
Eric Engestrom <eric@engestrom.ch> Reviewed-by:
Jason Ekstrand <jason@jlekstrand.net> Tested-by: Marge Bot <mesa/mesa!4137> Part-of: <mesa/mesa!4137> (cherry picked from commit 1fa259b0)
-
Dylan Baker authored
-
- Mar 11, 2020
-
-
Some dependencies were missing on android causing a build failure. (cherry picked from commit d8bae10b) Signed-off-by:
John Stultz <john.stultz@linaro.org> Tested-by: Marge Bot <mesa/mesa!4151> Part-of: <mesa/mesa!4151>
-
The generation of a6xx-pack.xml.h was missing in the android build scripts leading to a build failure. Signed-off-by:
Martin Fuzzey <martin.fuzzey@flowbird.group> (cherry picked from commit fad99243) Signed-off-by:
John Stultz <john.stultz@linaro.org> Part-of: <mesa/mesa!4151>
-
The freedreno gen_header.py script now only works under python3. It contains a "print()" call which prints a blank line under python3 but prints "()" under python2.7. However the Android build currently uses python2. This leads to incorrect code generation and a later build error. .../STATIC_LIBRARIES/libfreedreno_registers_intermediates/registers/adreno_common.xml.h:163:2: error: expected identifier or '(' () Fix this by adding MESA_PYTHON3 and using it for the freedreno scripts. Signed-off-by:
Martin Fuzzey <martin.fuzzey@flowbird.group> (cherry picked from commit cad400a5) Signed-off-by:
John Stultz <john.stultz@linaro.org> Part-of: <mesa/mesa!4151>
-
- Mar 10, 2020
-
-
Cc: mesa-stable@lists.freedesktop.org Reviewed-by:
Lionel Landwerlin <lionel.g.landwerlin@intel.com> Tested-by: Marge Bot <mesa/mesa!4135> Part-of: <mesa/mesa!4135> (cherry picked from commit af68b0d3)
-
Cc: mesa-stable@lists.freedesktop.org Reviewed-by:
Lionel Landwerlin <lionel.g.landwerlin@intel.com> Part-of: <mesa/mesa!4135> (cherry picked from commit 34d2637f)
-
Fixes: 2c07e03b ("freedreno: allow ctx->batch to be NULL") Signed-off-by:
Rob Clark <robdclark@chromium.org> Part-of: <mesa/mesa!4071> (cherry picked from commit b3efa2a4)
-
Eric Engestrom authored
-
The current workaround for this hardware bug involved marking the ADD instruction used to initialize the address register as NoMask on Gen12, which was based on the assumption that the problem was caused by a hardware bug affecting the application of the execution mask to the address register write. However that doesn't seem to be the case: The address register write was working correctly, the real problem leading to hangs on TGL is that the indirect addressing logic is unable to deal with garbage values in the address register (e.g. misaligned offsets), even for channels which are currently inactive due to non-uniform control flow. The current workaround isn't able to avoid that situation in general, since the result of the NoMask ADD instruction for a dead channel is calculated based on the corresponding (dead) component of the indirect_byte_offset source, which would still be undefined in the likely case that the source was initialized under control flow itself. This would lead to hangs whenever MOV_INDIRECT was used under non-uniform control flow in some scenarios like a tessellation shader from GFXBench5/gl_4 (AKA Car Chase) on TGL. In addition I've managed to reproduce the same issue on earlier platforms by initializing the whole address register with garbage before the ADD instruction, so this seems to be a long-standing issue we have avoided mostly by luck. This patch fixes the problem and applies the workaround to all platforms, since even when the hardware is able to deal with garbage address values without hanging there might be a significant performance cost from reading random GRF registers due to the useless extra EU cycles spent fetching registers for dead channels and due to the potential for unintended serialization with respect to other random instructions that could be executed in parallel, which may have had a cost of the order of hundreds of cycles in the worst case scenario. Fixes: f93dfb50 "intel/fs: Write the address register with NoMask for MOV_INDIRECT" Tested-by:
Rafael Antognolli <rafael.antognolli@intel.com> Reviewed-by:
Jason Ekstrand <jason@jlekstrand.net> (cherry picked from commit 45d4665d)
-
../src/gallium/state_trackers/nine/nine_ff.c:129:28: error: initializing 'struct nine_ff_vs_key *' with an expression of type 'const void *' discards qualifiers [-Werror,-Wincompatible-pointer-types-discards-qualifiers] struct nine_ff_vs_key *vs = key; ^ ~~~ ../src/gallium/state_trackers/nine/nine_ff.c:145:28: error: initializing 'struct nine_ff_ps_key *' with an expression of type 'const void *' discards qualifiers [-Werror,-Wincompatible-pointer-types-discards-qualifiers] struct nine_ff_ps_key *ps = key; ^ ~~~ Fixes: fdd96578 ("nine: Add state tracker nine for Direct3D9 (v3)") Signed-off-by:
Vinson Lee <vlee@freedesktop.org> Reviewed-by:
Andre Heider <a.heider@gmail.com> Tested-by: Marge Bot <mesa/mesa!4015> Part-of: <mesa/mesa!4015> (cherry picked from commit 5ffa6eab)
-
Fixes: 8db00a51 - radeonsi/gfx10: implement NGG culling for 4x wave32 subgroups Acked-by:
Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Part-of: <mesa/mesa!4079> (cherry picked from commit fc65df56)
-