mesa/src
Kenneth Graunke 21636ff9fa brw: Align and combine constant-offset UBO loads in NIR
The hope here is to replace our backend handling for loading whole
cachelines at a time from UBOs into NIR-based handling, which plays
nicely with the NIR load/store vectorizer.

Rounding down offsets to multiples of 64B allows us to globally CSE
UBO loads across basic blocks.  This is really useful.  However, blindly
rounding down the offset to a multiple of 64B can trigger anti-patterns
where...a single unaligned memory load could have hit all the necessary
data, but rounding it down split it into two loads.

By moving this to NIR, we gain more control of the interplay between
nir_opt_load_store_vectorize and this rebasing and CSE'ing.  The backend
can then simply load between nir_def_{first,last}_component_read() and
trust that our NIR has the loads blockified appropriately.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32888>
2025-01-10 22:44:09 +00:00
..
amd aco: use VOP3 v_mov_b16 if necessary 2025-01-10 15:05:00 +00:00
android_stub
asahi nir: pass a callback to nir_lower_robust_access 2025-01-08 15:59:05 +00:00
broadcom broadcom/ci: add ubsan jobs for broadcom drivers 2025-01-09 17:06:07 +00:00
c11 c11: use SPDX-License-Identifier header 2025-01-08 20:37:51 +00:00
compiler nir: Add a nir_def_first_component_read() helper 2025-01-10 22:44:09 +00:00
drm-shim
egl egl/wayland: fallback to implicit modifiers if advertised by compositor 2024-12-19 13:09:48 +00:00
etnaviv ci/etnaviv: drop failures caused by missing vertex attributes 2025-01-10 10:57:58 +00:00
freedreno freedreno/ci: Update a630-traces-restricted checksums 2025-01-09 14:05:15 +01:00
gallium svga: add svga_resource_create_with_modifiers() function 2025-01-10 21:15:12 +00:00
gbm Revert "gbm: mark surface buffers as explicit flushed" 2024-11-27 22:48:04 +00:00
getopt
gfxstream gfxstream: fix issues with VK1.4 build 2024-12-03 20:35:44 +00:00
glx glx: ignore zink check for has_explicit_modifiers and DRI3 on MacOS. 2024-12-13 00:39:16 +00:00
gtest
imagination pvr: use vk_descriptor_type_is_dynamic 2024-12-19 15:12:58 +00:00
imgui
intel brw: Align and combine constant-offset UBO loads in NIR 2025-01-10 22:44:09 +00:00
loader loader: Fix typo in __DRI_IMAGE_FORMAT_XBGR16161616 definition 2024-10-25 14:18:24 +00:00
mapi meson: remove selinux option 2024-10-21 01:14:35 +00:00
mesa mesa: use default params for clearbuffer functions 2025-01-09 15:48:10 +00:00
microsoft nir: remove redundant option linker_ignore_precision 2025-01-06 19:09:17 +00:00
nouveau nak: Add gpr_limit_from_local_size 2025-01-09 19:32:52 +00:00
panfrost pan/genxml: Switch __gen_unpack to macros 2025-01-10 18:27:27 +00:00
tool panvk: add u_trace perfetto support 2024-12-17 23:14:26 +00:00
util util: Add operator new[] to linear context helper declarations 2025-01-10 07:05:35 +00:00
virtio virgl: Update virgl_hw.h from virglrenderer 2025-01-07 13:15:46 +00:00
vulkan wsi: Fix wrong function name for lvp wsi metal surface 2025-01-10 09:27:02 +00:00
x11 meson: require dri3 modifiers 2024-09-06 17:34:17 +00:00
.clang-format nir: add helpers for precompiled shaders 2024-11-28 17:34:12 +00:00
meson.build meson: Include the loader subdir when building lavapipe 2025-01-10 01:24:11 +00:00