mesa/src
Kenneth Graunke cc5da81e31 isl: Set MOCS to uncached for Gfx12.0 blitter sources/destinations
We were accidentally leaving XY_BLOCK_COPY_BLT's Source and Destination
MOCS fields set to 0 (Error: Reserved for Non-Use) on Gfx12.0 systems.
This was causing assert fails in debug builds, since we try to ensure
that we don't do that.  In theory, MOCS 0 is supposed to be equivalent
to MOCS 2 (all the caching), but...we probably ought to use MOCS 3
(uncached).  Every Gfx12.5+ platform requires it, so although there
isn't a note about Gfx12.0 needing that, it's possible that it does.
We're currently only using the blitter for DRI PRIME blits on Gfx12.0,
anyway, and I think we're flushing all the caches regardless.

This bug was somewhat obscure to hit:
- You need a hybrid graphics system with Gfx12.0 and some other GPU
- You have to be using "reverse PRIME", i.e. rendering on the integrated
  GPU and displaying on the discrete one.  This is not the common case.
- You have to be using a debug build.

No observable performance delta in GfxBench5 Car Chase (an arbitrary
program) when rendering on Alderlake GT1 and displaying on an Arc A770.

Fixes: 194afe8416 ("anv/iris/blorp: use the right MOCS values for each engine")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Rohan Garg <rohan.garg@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28894>
(cherry picked from commit e6fb3ba037)
2024-04-25 16:50:27 +02:00
..
amd radv: fix image format properties with fragment shading rate usage 2024-04-25 16:50:26 +02:00
android_stub
asahi agx: set compact_arrays in compiler options 2024-04-12 18:43:48 +00:00
broadcom ci: uprev CTS to 1.3.8.2 2024-04-24 10:48:11 +00:00
c11
compiler nir/print: print io instr->name if available 2024-04-24 12:35:59 +00:00
drm-shim drm-shim: Add io region handling in mmap 2024-03-19 10:22:34 +00:00
egl dri: plumb a 'implicit' param through createNewScreen interfaces 2024-04-22 23:25:58 +00:00
etnaviv etnaviv: hwdb: Add VIP_V7 and NN_XYDP0 feature bits 2024-04-24 15:26:37 +00:00
freedreno freedreno/a7xx: Register updates from kgsl 2024-04-24 11:29:01 +00:00
gallium radeonsi: implement user_data_amd for 5, 6, and 7 components correctly 2024-04-24 19:17:10 +00:00
gbm gbm: plumb an 'implicit' param through device creation 2024-04-22 23:25:58 +00:00
getopt
glx glx: silence more implicit-load zink errors 2024-04-22 23:25:58 +00:00
gtest
imagination meson: add VK_DRIVER_FILES to devenv, alongside the old VK_ICD_FILENAMES 2024-04-02 18:08:52 +00:00
imgui
intel isl: Set MOCS to uncached for Gfx12.0 blitter sources/destinations 2024-04-25 16:50:27 +02:00
loader loader/wayland: Add named queue fallback 2024-02-28 11:01:31 +00:00
mapi treewide: Replace usage of macro DEBUG with MESA_DEBUG when possible 2024-03-22 18:22:34 +00:00
mesa mesa/st: don't use serialized_nir for cached shaders 2024-04-23 21:06:31 +00:00
microsoft microsoft/compiler: set compact_arrays in compiler options 2024-04-05 17:56:28 +00:00
nouveau nouveau: Fixes error: unused import: crate::nvh_classes_cl906f::* 2024-04-24 06:37:39 +00:00
panfrost vulkan: pass cmdbuf level to vk_command_buffer_ops::create() 2024-04-23 06:33:31 +00:00
tool pps: Config tweaks to avoid loosing traces 2024-03-25 19:49:50 +00:00
util util: import pipe_box and its helpers 2024-04-22 01:42:52 +00:00
virtio ci: uprev CTS to 1.3.8.2 2024-04-24 10:48:11 +00:00
vulkan vulkan: pass cmdbuf level to vk_command_buffer_ops::create() 2024-04-23 06:33:31 +00:00
.clang-format agx: add Braun-Hack spiller pass 2024-03-30 00:26:18 +00:00
meson.build loader/wayland: Add fallback wl_display_dispatch_queue_timeout 2024-02-27 13:10:13 +00:00