- Apr 01, 2020
-
-
Eric Engestrom authored
-
Eric Engestrom authored
-
The kernel driver requires immediate notification using a BindGBSurface command when a graphics coherent memory resource changes backing MOB, so that it can start dirty-tracking the new MOB. Since we always use graphics coherent memory for persistent memory, enqueue and flush a BindGBSurface commmand at map time rather than at unmap time. Since we're dealing with persistent memory, It's OK to flush while mapped. This fixes an issue with gnome-shell / Wayland which uses persistent memory together with discard maps when we advertise ARB_buffer_storage. XWayland clients will render incorrectly. Fixes: 71b43490 ("svga: Support ARB_buffer_storage") Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com> Reviewed-by: Neha Bhende <bhenden@vmware.com> Reviewed-by: Brian Paul <brianp@vmware.com> Reviewed-by: Reviewed-by: Roland Scheidegger <sroland@vmware.com> Part-of: <mesa/mesa!4399> (cherry picked from commit 46fdc288)
-
For example when the outputs are scalars but the inputs are struct members. Fixes: 26aa4609 ("nir: rewrite varying component packing") Reviewed-By: Timur Kristóf <timur.kristof@gmail.com> Tested-by: Marge Bot <mesa/mesa!4351> Part-of: <mesa/mesa!4351> (cherry picked from commit 0f4a8143)
-
Because the types etc. are required to logically match, we can just copy-propagate the guts of the vtn_value. This was causing issues with some new CTS tests that are doing an OpCopyObject of a sampler which is a special-cased type in spirv_to_nir. Of course, this is only a partial solution. Ideally, we've got a bit of work to do to make all the composite stuff able to handle all types including images, sampler, and combined image/samplers but this gets some CTS tests passing. Cc: mesa-stable@lists.freedesktop.org Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Acked-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com> Tested-by: Marge Bot <mesa/mesa!4375> Part-of: <mesa/mesa!4375> (cherry picked from commit 7a53e678)
-
Eric Engestrom authored
-
- Mar 31, 2020
-
-
If we have an allocation that's exactly the block size, we end up computing a new block size to allocate that's exactly the block size, add in the header, and then assert fail. When computing the block size, we need to account for the header. Fixes: 955127db "anv/allocator: Add support for large stream..." Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Part-of: <mesa/mesa!4336> (cherry picked from commit 63bec07e)
-
We have the code to do the lowering, we were just missing the boilerplate bits to make should_lower_int64_alu_instr return true. Fixes: 62d55f12 "nir: Wire up int64 lowering functions" Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Part-of: <mesa/mesa!4365> (cherry picked from commit 14a49f31)
-
Seems like no one ever depended on it to actually return false when fifo is empty. Fixes: 6e61d062 ("util: Add super simple fifo") Signed-off-by: Rob Clark <robdclark@chromium.org> Part-of: <mesa/mesa!4366> (cherry picked from commit ffd32266)
-
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Eric Anholt <eric@anholt.net> CC: <mesa-stable@lists.freedesktop.org> Tested-by: Marge Bot <mesa/mesa!4335> Part-of: <mesa/mesa!4335> (cherry picked from commit 1ef96589)
-
Insertions can modify entry->data. Seems to fix random Fossilize crashes. Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Reviewed-by: Eric Engestrom <eric@engestrom.ch> Reviewed-by: Eric Anholt <eric@anholt.net> CC: <mesa-stable@lists.freedesktop.org> Part-of: <mesa/mesa!4335> (cherry picked from commit d101ca3f)
-
Eric Engestrom authored
-
- Mar 30, 2020
-
-
Fixes: 7325f6ac ("vtn/opencl: add clz support") Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> Reviewed-by: Karol Herbst <kherbst@redhat.com> Part-of: <mesa/mesa!4318> (cherry picked from commit 4821ec6d)
-
This code produces warnings, so let's fix that. The problem is that casting a pointer to an integer of non-pointer-size triggers warnings on MSVC, and on 64-bit Windows unsigned long is 32-bit large. So let's instead use uintptr_t, which is exactly for these kinds of things. While we're at it, let's make the resulting index a plain "unsigned", which is the type this originated from before we started with this cast-dance. Fixes: 1a66ead1 ("pipebuffer, winsys/svga: Add functionality to update pb_validate_entry flags") Reviewed-by: Brian Paul <brianp@vmware.com> Part-of: <mesa/mesa!4297> (cherry picked from commit 079cb494)
-
64-bit VGPR constant copies can happen because of 64-bit constant copy propagation. Since this optimization is beneficial and more annoying to deal with in the optimizer, I've implemented 64-bit VGPR constant copies in handle_operands(). This also sets copy_operation::size correctly for 64-bit constant copies. Cc: 20.0 <mesa-stable@lists.freedesktop.org> Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Tested-by: Marge Bot <mesa/mesa!4260> Part-of: <mesa/mesa!4260> (cherry picked from commit 43918c9a)
-
bpermute only exists on GFX8+ and only with Wave32 on GFX10. Instead we have to use readlane with a waterfall loop to defeat the LLVM backend. This fixes DOOM Eternal which requires subgroup shuffle. Cc: <mesa-stable@lists.freedesktop.org> Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Tested-by: Marge Bot <mesa/mesa!4284> Part-of: <mesa/mesa!4284 > (cherry picked from commit 7ac8bb33) Squashed with: radv: Enable subgroup shuffle on GFX10 when ACO is used. Signed-off-by: Timur Kristóf <timur.kristof@gmail.com> Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Tested-by: Marge Bot <mesa/mesa!4159> Part-of: <mesa/mesa!4159> (cherry picked from commit cfa299ea)
-
Fixes: 1b658533 ("freedreno/ir3: extend liverange of arrays") Signed-off-by: Rob Clark <robdclark@chromium.org> Part-of: <mesa/mesa!4272> (cherry picked from commit d2cc92c7)
-
Unlike other stages TCS outputs not read by the TES cannot always be demoted to globals e.g. when they are read by other TCS invocations. We were not taking these outputs into account when packing which could result in other outputs being assigned to the same location. Here we make sure to gather information on these outputs and group them together when packing. This fixes rendering issues in QUBE 2 via Proton. Closes: #2653 Fixes: 26aa4609 ("nir: rewrite varying component packing") Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Tested-by: Marge Bot <mesa/mesa!4328> Part-of: <mesa/mesa!4328> (cherry picked from commit b5e00f5c)
-
Without this we can incorrectly end up marking things as making use of ARB_enhanced_layouts style packing. Cc: 19.3 20.0 <mesa-stable@lists.freedesktop.org> Reviewed-by: Dave Airlie <airlied@redhat.com> Part-of: <mesa/mesa!4328> (cherry picked from commit 8b9ebbcb)
-
Instead of emitting 1.0 / x which includes a slow division that LLVM doesn't always optimize even if the metadata is correctly set. No pipeline-db changes with VEGA10/LLVM 9. pipeline-db (VEGA10/LLVM 10): Totals from affected shaders: SGPRS: 6672 -> 6672 (0.00 %) VGPRS: 6652 -> 6652 (0.00 %) Spilled SGPRs: 0 -> 0 (0.00 %) Spilled VGPRs: 0 -> 0 (0.00 %) Code Size: 561780 -> 561692 (-0.02 %) bytes Max Waves: 1043 -> 1043 (0.00 %) pipeline-db (VEGA10/LLVM 11 - 92744f62478): Totals from affected shaders: SGPRS: 84608 -> 83768 (-0.99 %) VGPRS: 106768 -> 106636 (-0.12 %) Spilled SGPRs: 1625 -> 1713 (5.42 %) Spilled VGPRs: 0 -> 0 (0.00 %) Code Size: 10850936 -> 10726712 (-1.14 %) bytes Max Waves: 3152 -> 3180 (0.89 %) LLVM 11 (master) is more affected than previous versions, but based on the small impact with LLVM 9/10, I decided to emit it unconditionally. Cc: 20.0 <mesa-stable@lists.freedesktop.org> Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Reviewed-by: Marek Olšák <marek.olsak@amd.com> Tested-by: Marge Bot <mesa/mesa!4326> Part-of: <mesa/mesa!4326> (cherry picked from commit ba2ec1f3)
-
Instead of emitting 1.0 / sqrt(x) which includes a slow division that LLVM doesn't always optimize even if the metadata is correctly set. pipeline-db (VEGA10/LLVM 9): Totals from affected shaders: SGPRS: 16872 -> 16864 (-0.05 %) VGPRS: 15320 -> 15464 (0.94 %) Spilled SGPRs: 2021 -> 2133 (5.54 %) Code Size: 1915464 -> 1917476 (0.11 %) bytes Max Waves: 641 -> 639 (-0.31 %) pipeline-db (VEGA10/LLVM 10): Totals from affected shaders: SGPRS: 43936 -> 44120 (0.42 %) VGPRS: 41776 -> 41972 (0.47 %) Spilled SGPRs: 875 -> 875 (0.00 %) Code Size: 4468164 -> 4468120 (-0.00 %) bytes Max Waves: 2412 -> 2414 (0.08 %) pipeline-db (VEGA10/LLVM 11 - 92744f62478): Totals from affected shaders: SGPRS: 60096 -> 60096 (0.00 %) VGPRS: 63552 -> 63648 (0.15 %) Spilled SGPRs: 6135 -> 6117 (-0.29 %) Spilled VGPRs: 0 -> 0 (0.00 %) Code Size: 6252996 -> 6249772 (-0.05 %) bytes Max Waves: 2324 -> 2337 (0.56 %) LLVM 11 (master) is more affected than previous versions, but based on the small impact with LLVM 9/10, I decided to emit it unconditionally. Cc: 20.0 <mesa-stable@lists.freedesktop.org> Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Reviewed-by: Marek Olšák <marek.olsak@amd.com> Part-of: <mesa/mesa!4326> (cherry picked from commit d548384f)
-
Instead of emitting 1.0 / x which includes a slow division that LLVM doesn't always optimize even if the metadata is correctly set. pipeline-db (VEG10/LLVM 9): Totals from affected shaders: SGPRS: 50384 -> 50312 (-0.14 %) VGPRS: 42572 -> 42696 (0.29 %) Spilled SGPRs: 1372 -> 1372 (0.00 %) Code Size: 5692040 -> 5691428 (-0.01 %) bytes Max Waves: 3954 -> 3951 (-0.08 %) pipeline-db (VEG10/LLVM 10): Totals from affected shaders: SGPRS: 78512 -> 78464 (-0.06 %) VGPRS: 62408 -> 62484 (0.12 %) Spilled SGPRs: 1502 -> 1502 (0.00 %) Code Size: 8106188 -> 8103372 (-0.03 %) bytes Max Waves: 7759 -> 7753 (-0.08 %) pipeline-db (VEGA10/LLVM 11 - 92744f62478): Totals from affected shaders: SGPRS: 112760 -> 113232 (0.42 %) VGPRS: 111132 -> 110568 (-0.51 %) Spilled SGPRs: 5870 -> 5940 (1.19 %) Spilled VGPRs: 650 -> 652 (0.31 %) Code Size: 11887232 -> 11561744 (-2.74 %) bytes Max Waves: 8964 -> 9015 (0.57 %) LLVM 11 (master) is more affected than previous versions, but based on the small impact with LLVM 9/10, I decided to emit it unconditionally. Cc: 20.0 <mesa-stable@lists.freedesktop.org> Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Reviewed-by: Marek Olšák <marek.olsak@amd.com> Part-of: <mesa/mesa!4326> (cherry picked from commit 66426ce1)
-
This has been reported to fix a hang in Shadow of Mordor on Gen12. One of its compute shaders seems to cause an in-order exec_all dependency to be merged into an out-of-order SET dependency slot, which would prevent us from baking the SET dependency into the parent instruction, leading to an assert failure in emit_inst_dependencies() (Thanks to Rafael for noticing that). Prevent that by avoiding combination of in-order dependencies whenever that would cause a SET dependency to be demoted to a SYNC.NOP instruction. Fixes: e14529ff "intel/fs/gen12: Workaround data coherency issues due to broken NoMask control flow." Tested-by: Rafael Antognolli <rafael.antognolli@intel.com> Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com> (cherry picked from commit 36c155a0)
-
Patch changes also existing assert to not trigger when we have error types in assignment. v2: simplify, cleanup (Ian) Closes: mesa/mesa#2629 Fixes: d1fa69ed ("glsl: do not attempt assignment if operand type not parsed correctly") Signed-off-by: Tapani Pälli <tapani.palli@intel.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Tested-by: Marge Bot <mesa/mesa!4178> Part-of: <mesa/mesa!4178> (cherry picked from commit 0847fe6e)
-
Eric Engestrom authored
-
At least GC880 (iMX6S), GC2000 (iMX6Q) blobs do not emit the PE.ALPHA_COLOR_EXT0 and PE.ALPHA_COLOR_EXT1 into the command stream. The GCnano (STM32MP1) is not affected by this change either. This is because neither of these GPUs support the half-float feature. Emit PE.ALPHA_COLOR_EXT* in etnaviv only if half-float support is present in the GPU. This fixes all of the currently failing dEQPs in this group: dEQP-GLES2.functional.fragment_ops.blend.* Fixes: 76adf041 ("etnaviv: fix blend color on newer GPUs") Signed-off-by: Marek Vasut <marex@denx.de> Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com> Reviewed-by: Jonathan Marek <jonathan@marek.ca> Tested-by: Marge Bot <mesa/mesa!4277> Part-of: <mesa/mesa!4277> (cherry picked from commit 9e78f17b)
-
- Mar 26, 2020
-
-
Returning a void-value is nonsensical, and in this case it seems like a mistake. This eliminates a warning when building on MSVC. Fixes: fb04e5da ("gallium: add pipe_screen::finalize_nir") Reviewed-by: Brian Paul <brianp@vmware.com> Tested-by: Marge Bot <mesa/mesa!4297> Part-of: <mesa/mesa!4297> (cherry picked from commit 8c30b9d9)
-
Eric Engestrom authored
-
- Mar 25, 2020
-
-
Ref: Bspec 44455 Cc: <mesa-stable@lists.freedesktop.org> Signed-off-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> (cherry picked from commit f02ae698)
-
Ref: Bspec 44455 Cc: <mesa-stable@lists.freedesktop.org> Signed-off-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> (cherry picked from commit 1c6ef016)
-
Update following kernel : https://patchwork.freedesktop.org/patch/357921/ Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Bspec: 44455 Acked-by: Tapani Pälli <tapani.palli@intel.com> Reviewed-by: Scott D Phillips <scott.d.phillips@intel.com> Tested-by: Marge Bot <mesa/mesa!4248> Part-of: <mesa/mesa!4248> (cherry picked from commit 58deebe5)
-
Enabling a Vulkan extension doesn't mean that all features need to be implemented. DOOM Eternal crashes at launch if that ext is not supported but it doesn't matter if the features are enabled or not. Let's enable it like we did for VK_KHR_16bit_storage. Cc: 19.3 20.0 <mesa-stable@lists.freedesktop.org> Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Tested-by: Marge Bot <mesa/mesa!4299> Part-of: <mesa/mesa!4299> (cherry picked from commit 238e2ed2)
-
pipeline-db (Navi, ACO): Totals from affected shaders: SGPRS: 6432 -> 6432 (0.00 %) VGPRS: 11924 -> 11924 (0.00 %) Spilled SGPRs: 0 -> 0 (0.00 %) Spilled VGPRs: 0 -> 0 (0.00 %) Scratch size: 1596 -> 1596 (0.00 %) dwords per thread Code Size: 575524 -> 518620 (-9.89 %) bytes LDS: 12187 -> 12187 (0.00 %) blocks Max Waves: 2695 -> 2695 (0.00 %) Helps a few hundred Dark Souls 3 shaders. Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> CC: <mesa-stable@lists.freedesktop.org> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Tested-by: Marge Bot <mesa/mesa!4190> Part-of: <mesa/mesa!4190> (cherry picked from commit 9f4ba2d2)
-
reported by valgrind Cc: 19.3 20.0 <mesa-stable@lists.freedesktop.org> Reviewed-by: Rob Clark <robdclark@gmail.com> Tested-by: Marge Bot <mesa/mesa!4274> Part-of: <mesa/mesa!4274> (cherry picked from commit 719063d4)
-
Cc: <mesa-stable@lists.freedesktop.org> Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Tested-by: Marge Bot <mesa/mesa!4285> Part-of: <mesa/mesa!4285> (cherry picked from commit 17c7f4e3)
-
Fixes NIR such as: if (divergent) { a = sgpr() } else { break; } use(a) Previously we would have emitted: if (divergent) { a = sgpr() } if (!divergent) { break; } use(a) But "a" isn't available at it's use. Now we emit: if (divergent) { } if (!divergent) { break; } a = sgpr() use(a) pipeline-db (Navi): Totals from affected shaders: SGPRS: 1936 -> 1936 (0.00 %) VGPRS: 1264 -> 1264 (0.00 %) Spilled SGPRs: 0 -> 0 (0.00 %) Spilled VGPRs: 0 -> 0 (0.00 %) Scratch size: 0 -> 0 (0.00 %) dwords per thread Code Size: 159408 -> 159152 (-0.16 %) bytes LDS: 0 -> 0 (0.00 %) blocks Max Waves: 81 -> 81 (0.00 %) Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> CC: <mesa-stable@lists.freedesktop.org> Closes: mesa/mesa#2557 Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Tested-by: Marge Bot <mesa/mesa!3658> Part-of: <mesa/mesa!3658> (cherry picked from commit 9d56ed19)
-
The old code would have previously caught: loop { ... break } when it was meant to just catch: loop { if (...) break else break } Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> CC: <mesa-stable@lists.freedesktop.org> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Part-of: <mesa/mesa!3658> (cherry picked from commit 8d8c864b)
-
NIR removes most of this but undef instructions for loop header phis can remain. These were harmless because ACO would DCE them itself. Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> CC: <mesa-stable@lists.freedesktop.org> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Part-of: <mesa/mesa!3658> (cherry picked from commit 46e94fd8)
-
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> CC: <mesa-stable@lists.freedesktop.org> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Part-of: <mesa/mesa!3658> (cherry picked from commit f2c4878d)
-
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> CC: <mesa-stable@lists.freedesktop.org> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Part-of: <mesa/mesa!3658> (cherry picked from commit f1a2e1df)
-