- Dec 27, 2023
-
-
Eric Engestrom authored
-
Eric Engestrom authored
-
We only need it for indirect draws. Improves performance on an i7-12700 and A770: - Piglit's drawoverhead base case +150.639% +/- 2.86933% (n=15). - gfxbench5 gl_driver2_off +19.7219% +/- 1.13778% (n=15) - SPECviewperf2020 catiav5test1 +1.6831% +/- 0.552052% (n=10). Cc: mesa-stable Reviewed-by: José Roberto de Souza <jose.souza@intel.com> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Part-of: <mesa/mesa!26806> (cherry picked from commit 55c26289)
-
Whenever we use a BO in a batch, we need to find its corresponding exec list entry, either to a) record that it's been used, b) update whether it's being written, c) check for cross-batch implicit dependencies. bo->index exists to accelerate these lookups. If a BO is used multiple times by a batch, bo->index is its location in the list. Because the field is global, and a BO can in theory be used concurrently by multiple contexts, we need to double-check whether it's still there. If not, we fall back to a linear search of all BOs in the list, looking to see if our index was simply wrong (but presumably right for another context). However, there's one glaringly obvious case that we missed here. If bo->index is -1, then it's wrong for /all/ contexts, and in fact implies that said BO has never been added to any exec list, ever. This is quite common in fact: a new BO, never been used before, say from the BO cache, or streaming uploaders, gets used for the first time. In this case we can simply conclude that it's not in the list and skip the linear walk through all buffers referenced by the batch. Improves performance on an i7-12700 and A770: - SPECviewperf2020 catiav5test1: 72.9214% +/- 0.312735% (n=45) Cc: mesa-stable Reviewed-by: José Roberto de Souza <jose.souza@intel.com> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Part-of: <mesa/mesa!26806> (cherry picked from commit d55b5d4a)
-
A value of -1 means that the buffer has never been used in an execbuf buffer list in any of our contexts. While setting this isn't critical, doing so will allow us to short-circuit some looping in the next patch. Cc: mesa-stable Reviewed-by: José Roberto de Souza <jose.souza@intel.com> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Part-of: <mesa/mesa!26806> (cherry picked from commit d178334d)
-
Eric Engestrom authored
-
- Dec 24, 2023
-
-
Cc: mesa-stable Signed-off-by: Tapani Pälli <tapani.palli@intel.com> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Part-of: <mesa/mesa!26754> (cherry picked from commit 9e88c711)
-
Fix initializer-overrides warnings. ../src/gallium/drivers/etnaviv/etnaviv_compiler.c:62:29: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides] 62 | .lower_extract_byte = true, | ^~~~ ../src/gallium/drivers/etnaviv/etnaviv_compiler.c:63:29: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides] 63 | .lower_extract_word = true, | ^~~~ Fixes: 9dc4ee91 ("etnaviv: lower (un)pack_{2x16,2x32}_split and extract_{byte,word}") Signed-off-by: Vinson Lee <vlee@freedesktop.org> Reviewed-by: Lucas Stach <l.stach@pengutronix.de> Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com> Part-of: <mesa/mesa!26773> (cherry picked from commit f5d08bdf)
-
Extension was enabled but required enums not. Fixes: 979bcb9f ("glsl: add EXT_clip_cull_distance support based on ARB_cull_distance") Signed-off-by: Tapani Pälli <tapani.palli@intel.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com> Part-of: <mesa/mesa!26688> (cherry picked from commit 629b15f4)
-
- Dec 22, 2023
-
-
Otherwise common/intel_gem.h may get included instead of common/i915/intel_gem.h when building in a different directory. Fixes: e050a00b ("intel/common: Move i915 files to i915 folder") Reviewed-by: José Roberto de Souza <jose.souza@intel.com> Part-of: <mesa/mesa!26784> (cherry picked from commit fbb9ce01)
-
Fixes: 7e74ee07 ("rusticl: silence clippy::arc-with-non-send-sync for now") Signed-off-by: Karol Herbst <kherbst@redhat.com> Part-of: <mesa/mesa!26780> (cherry picked from commit 9643671d)
-
Allows compilation with newer clippy Cc: mesa-stable Signed-off-by: Karol Herbst <kherbst@redhat.com> Part-of: <mesa/mesa!26764> (cherry picked from commit 7e74ee07)
-
Eric Engestrom authored
-
- Dec 20, 2023
-
-
This makes sure the record is fully initialized and fixes RGP crashes or missing shaders. Cc: mesa-stable Reviewed-by: Marek Olšák <marek.olsak@amd.com> Part-of: <mesa/mesa!26774> (cherry picked from commit af8e6c93)
-
The initial logic was to remember the place were SPI_SHADER_PGM_LO_* are written, then assume that we can get the register offset because the sequence would always be: PKT3_SET_SH_REG SPI_SHADER_PGM_LO_* register offset VA low 32 bits value <- reg_va_low_idx The problem is that this sequence isn't guaranteed, for instance we can get this instead: 0 c0067600 | 1 00000046 | 2 003ffffd | SPI_SHADER_PGM_RSRC3_VS 3 00000020 | SPI_SHADER_LATE_ALLOC_VS 4 * 00002080 | SPI_SHADER_PGM_LO_VS 5 00000080 | SPI_SHADER_PGM_HI_VS So the assert in si_state_draw.cpp would fail as well as the VA update logic. So instead remember which the SPI_SHADER_PGM_LO_* offset, and the low 32 bits of the VA in si_update_shaders. Fixes: 8034a714 ("radeonsi/sqtt: re-export shaders in a single bo") Reviewed-by: Marek Olšák <marek.olsak@amd.com> Part-of: <mesa/mesa!26774> (cherry picked from commit b55a2065)
-
This avoids hitting the asserts in ac_sqtt_finish. Fixes: 94ce6540 ("ac/sqtt: add helpers for initializing ac_thread_trace_data") Reviewed-by: Marek Olšák <marek.olsak@amd.com> Part-of: <mesa/mesa!26774> (cherry picked from commit e4d537fb)
-
It was missing in c3129b2b. Fixes: c3129b2b ("radeonsi: add a simple version of si_pm4_emit_state for non-shader states") Reviewed-by: Marek Olšák <marek.olsak@amd.com> Part-of: <mesa/mesa!26774> (cherry picked from commit 77098ec4)
-
Not expecting this to actually fix anything externally visible, but reduces some invalid usage when the resulting vector is not 16 elements long (e.g. the C/result matrix). Fixes: 9df4703f ("radv: Add cooperative matrix lowering.") Part-of: <mesa/mesa!26768> (cherry picked from commit 07ad6fd3)
-
Fixes: b90d1cfb ("rusticl/platform: add RUSTICL_FEATURES boilerplate") Fixes: ca1e9917 ("rusticl/program: allow dumping compilation logs through RUSTICL_DEBUG") Signed-off-by: Karol Herbst <kherbst@redhat.com> Part-of: <mesa/mesa!26764> (cherry picked from commit 382718e0)
-
Eric Engestrom authored
-
Reviewed-by: Jesse Natalie <jenatali@microsoft.com> Part-of: <mesa/mesa!26573> (cherry picked from commit 096e17b5)
-
Fixes: a8b86459 ("i965/fs: Optimize a * 1.0 -> a.") Closes: mesa/mesa#9570 Signed-off-by: Sviatoslav Peleshko <sviatoslav.peleshko@globallogic.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Part-of: <mesa/mesa!25710> (cherry picked from commit 8f8cde4c)
-
Testing negative iterations count makes no sense, and can cause issues when the unsigned type is used. Testing 0 iterations is already covered with will_break_on_first_iteration, so it can be skipped too. Fixes: 6772a17a ("nir: Add a loop analysis pass") Closes: mesa/mesa#9913 Signed-off-by: Sviatoslav Peleshko <sviatoslav.peleshko@globallogic.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Part-of: <mesa/mesa!26173> (cherry picked from commit a6459e0f)
-
When `MESA_LOADER_DRIVER_OVERRIDE` is set to `zink` and the display initialization fails, fallback to software rendering. The error was reported in #10123 and it can be reproduced with: $ MESA_LOADER_DRIVER_OVERRIDE=zink eglinfo `eglinfo` would crash in `dri2_display_release()` because of `assert(dri2_dpy->ref_count > 0)`. After bisecting the error to commit 8cd44b88 ("egl/glx: add autoloading for zink"), I found out that, before this change, the display was set to initialized even when `_eglDriver.Initialize(disp)` failed: disp->Options.Zink = env && !strcmp(env, "zink"); // disp->Options.Zink is true if (!_eglDriver.Initialize(disp)) { [...] // Zink initialization has failed at this point // However, success is set to true: bool success = disp->Options.Zink; if (!disp->Options.Zink && !getenv("GALLIUM_DRIVER")) { [...] } // Software initialization is ignored because success is true if (!success) { [...] } } // The display is set as initialized even though it shouldn't disp->Initialized = EGL_TRUE; Resolves: mesa/mesa#10123 Fixes: 8cd44b88 ("egl/glx: add autoloading for zink") Signed-off-by: José Expósito <jexposit@redhat.com> Part-of: <mesa/mesa!26184> (cherry picked from commit d913927f)
-
Fixes: 81c8e89f ("d3d12: Fix screen->winsys leak in d3d12_screen") Part-of: <mesa/mesa!26744> (cherry picked from commit 325fb6e2)
-
Avoids tons of WARNING: unknown fbconfig attribute from server: tag 0x8060 value 0x8063 messages with LIBGL_DEBUG=verbose. Fixes: e64ab3e4 ("glx: Delete support for GLX_OML_swap_method.") Part-of: <mesa/mesa!26685> (cherry picked from commit f0594915)
-
In contrast to __DRI_ATTRIB_SWAP_EXCHANGE, this is compatible with Mesa < 23.3 on the client side. Closes: mesa/mesa#10080 Fixes: e64ab3e4 ("glx: Delete support for GLX_OML_swap_method.") Part-of: <mesa/mesa!26685> (cherry picked from commit 9548f969)
-
This was missing from the FS stage primitive-id check. Also add usage of macro to avoid running any extra code on platforms where this WA would not apply. Fixes: 0f147240 ("iris: Implement Wa_14015297576") Signed-off-by: Tapani Pälli <tapani.palli@intel.com> Reviewed-by: José Roberto de Souza <jose.souza@intel.com> Part-of: <mesa/mesa!26709> (cherry picked from commit 82553774)
-
This got broken by the register conversion, this pass needs to be after all the others. Fixes: ce75c3c3 ("intel: Switch to intrinsic-based registers") Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Part-of: <mesa/mesa!26731> (cherry picked from commit f76f4be3)
-
Eric Engestrom authored
-
- Dec 17, 2023
-
-
Chain stored modifiers point to the mapping of the current feedback shmem of the surface. The surface tracked feedback mapping will be gone and replaced with new mapping during surface_dmabuf_feedback_done. There are two issues here: 1. One issue is that the existing mapping is closed before been used to compare against new modifiers in sets_of_modifiers_are_the_same. 2. The other issue is that when the chain is still optimal, the chain persists while the mapping is still replaced with the one from the new format table shmem. This change makes a deep copy of the modifiers to store in the chain to ensure the modifiers used for the current chain are immutable through the chain lifecycle. Cc: mesa-stable Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Leandro Ribeiro <leandro.ribeiro@collabora.com> Part-of: <mesa/mesa!26618> (cherry picked from commit ddf2ca4f)
-
Simply replace the correct rasterization stream enum Fixes: 9d0ed9cb ("vulkan: Add more dynamic rasterizer state") Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com> Part-of: <mesa/mesa!24872> (cherry picked from commit d8945dd5)
-
Anything that uses the platform defines in `vulkan_wsi_list` will need to be able to resole the includes they trigger, which are provided by `vulkan_wsi_deps`. Closes: mesa/mesa#10304 Cc: mesa-stable Part-of: <mesa/mesa!26715> (cherry picked from commit 8043e8c4)
-
Bad things happen when these aren't initialized. Fixes GPU hangs when loading Avatar: Frontiers of Pandora savegames. Cc: mesa-stable Part-of: <mesa/mesa!26712> (cherry picked from commit f9a394b7)
-
We set max subgroup size as 16 for 'UnrealEngine5.1', this improves a customer benchmark by 50% on A750. Cc: mesa-stable Signed-off-by: Tapani Pälli <tapani.palli@intel.com> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Part-of: <mesa/mesa!26385> (cherry picked from commit 012b6fbe)
-
Cc: mesa-stable Signed-off-by: Tapani Pälli <tapani.palli@intel.com> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Part-of: <mesa/mesa!26385> (cherry picked from commit 7ff8f79a)
-
Fixes: 39da1deb ("nir/lower_io: Add a bounds-checked 64-bit global address format") Reviewed-by: M Henning <drawoc@darkrefraction.com> Part-of: <mesa/mesa!26526> (cherry picked from commit 1cf1b9d7)
-
Got a error state on DG2 with a jump to secondary. The secondary is empty and padded with MI_NOOPs to workaround the CS prefetching. According to the error state, the return jump address from the secondary to the primary is 0x0. The ACTHD register value is 0x10, so it seems that the command streamer indeed jumped to 0x0 and hanged on a few dwords after that. The return address should have been set edited by a previous MI_STORE_DATA_IMM instruction. So it appears it did not complete in time for the command stream to catch it. On Gfx12+ this can happend if we do not set ForceWriteCompletionCheck. This change also takes the opportunity to remove the padding MI_NOOPs at the end of secondaries on Gfx12+ by using disabling the prefetching just before jumping into secondaries and reenabling it at the beginning of each secondary. Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Cc: mesa-stable Reviewed-by: Ivan Briano <ivan.briano@intel.com> Part-of: <mesa/mesa!26665> (cherry picked from commit 6a92af15)
-
Eric Engestrom authored
-
The native_display checks are incorrect and partially never executed due to native_display always being NULL. Fixes: 1efaa858 ("egl: Fix attrib_list[0] == EGL_NONE check") Signed-off-by: Robert Foss <rfoss@kernel.org> Reviewed-by: Adam Jackson <ajax@redhat.com> Part-of: <mesa/mesa!26131> (cherry picked from commit cda9980f)
-