mesa/src/amd/vulkan
Samuel Pitoiset 51ff50ef30 radv,aco: fix shifting input VGPRs for the LS VGPR init bug on GFX9
We were incorrectly shifting the input VGPRs for the instance ID
for chips affected by the LS VGPR init bug (ie. Vega10 and Raven).

When there is no HS threads, the hardware loads the LS VGPR
starting from VGPR 0, so they should be shifted by two.

This fixes some sort of vertex explosion with Squad, Visage, Barn
Finders and probably more titles that use tessellation. Note that
only Vega10 and Raven were affected by this bug.

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4129
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3311
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Tested-by: Diego Viola <diego.viola@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8694>
(cherry picked from commit bb8f87088c)
2021-01-25 10:07:15 -08:00
..
layers ac/sqtt: move rgp/sqtt def to ac 2021-01-07 10:09:57 +01:00
winsys radv/winsys: Fix offset in range merging. 2021-01-11 12:01:34 +00:00
.editorconfig amd: add .editorconfig 2017-08-29 01:08:58 +03:00
Android.mk android: radv: add libcutils shared dependency 2020-12-07 23:54:25 +01:00
Makefile.sources ac/radv: move radv_rgp.c to ac 2021-01-07 10:09:49 +01:00
meson.build wsi/x11: Always link against xcb-xrandr 2021-01-07 14:57:45 +01:00
radv_android.c radv/android: Remove unused variable 2020-08-05 18:08:07 +00:00
radv_check_va.py radv: add a Python script to check if a VA was ever valid 2020-12-30 08:40:21 +01:00
radv_cmd_buffer.c radv: flush L2 for images affected by the pipe misaligned issue on GFX10+ 2021-01-20 11:11:03 -08:00
radv_constants.h radv: Remove RANGE_SIZE usage 2020-05-05 00:28:00 +00:00
radv_cs.h radv: Fix emitting SQTT userdata. 2020-09-28 15:46:08 +00:00
radv_debug.c radv: dump VA ranges history when a GPU hang is detected 2020-12-30 08:40:19 +01:00
radv_debug.h radv: add RADV_DEBUG=invariantgeom 2021-01-12 15:11:49 +00:00
radv_descriptor_set.c radv: Implement VK_VALVE_mutable_descriptor_type. 2020-12-07 15:25:17 +00:00
radv_descriptor_set.h radv: Do not access set layout during vkCmdBindDescriptorSets. 2020-10-28 03:06:20 +00:00
radv_device.c radv,aco: don't use MUBUF for multi-channel loads on GFX8 with robustness2 2021-01-21 13:26:34 -08:00
radv_entrypoints_gen.py Switch from cElementTree to ElementTree. 2020-06-05 23:42:54 -07:00
radv_extensions.py radv: disable VK_EXT_sample_locations again on GFX10+ 2021-01-13 15:04:56 +00:00
radv_formats.c radv: mark VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT as unsupported on GFX6-7 2021-01-11 17:17:42 +00:00
radv_icd.py python: Specify the JSON separators 2018-07-05 12:52:38 +01:00
radv_image.c radv: Do not use a pipe offset for aliased sparse images. 2021-01-20 09:22:16 -08:00
radv_llvm_helper.cpp radv/gfx10: use the correct target machine for Wave32 2019-08-02 09:37:38 +02:00
radv_meta.c radv: implement VK_KHR_fragment_shading_rate 2020-12-14 16:22:38 +00:00
radv_meta.h radv: make sure FMASK compression is enabled for MSAA copies 2020-12-23 11:25:34 +00:00
radv_meta_blit.c radv: Add option to disable DCC in renderpasses without layout. 2020-12-21 18:32:24 +00:00
radv_meta_blit2d.c radv: Disable DCC explicitly for incompatible copies. 2020-12-21 18:32:24 +00:00
radv_meta_buffer.c radv: restore invalidating the vector cache for internal meta operations 2021-01-20 11:11:03 -08:00
radv_meta_bufimage.c radv: Disable DCC explicitly for incompatible copies. 2020-12-21 18:32:24 +00:00
radv_meta_clear.c radv: restore invalidating the vector cache for internal meta operations 2021-01-20 11:11:03 -08:00
radv_meta_copy.c radv: Disable DCC explicitly for incompatible copies. 2020-12-21 18:32:24 +00:00
radv_meta_decompress.c radv: Add option to disable DCC in renderpasses without layout. 2020-12-21 18:32:24 +00:00
radv_meta_fast_clear.c radv: restore invalidating the vector cache for internal meta operations 2021-01-20 11:11:03 -08:00
radv_meta_fmask_expand.c radv: Use access helpers for flushing with meta operations. 2021-01-13 16:27:19 +00:00
radv_meta_resolve.c radv: Use access helpers for flushing with meta operations. 2021-01-13 16:27:19 +00:00
radv_meta_resolve_cs.c radv: restore invalidating the vector cache for internal meta operations 2021-01-20 11:11:03 -08:00
radv_meta_resolve_fs.c radv: Use access helpers for flushing with meta operations. 2021-01-13 16:27:19 +00:00
radv_nir_lower_ycbcr_textures.c radv: use common nir_convert_ycbcr 2020-04-20 22:01:43 +00:00
radv_nir_to_llvm.c radv,aco: fix shifting input VGPRs for the LS VGPR init bug on GFX9 2021-01-25 10:07:15 -08:00
radv_pass.c radv: fix separate depth/stencil layout in render pass 2021-01-22 09:02:46 -08:00
radv_pipeline.c radv: vectorize 16bit instructions 2021-01-13 11:24:11 -08:00
radv_pipeline_cache.c radv: Replace pthread mutex with mtx_t 2020-12-02 11:27:01 +00:00
radv_private.h radv,aco: don't use MUBUF for multi-channel loads on GFX8 with robustness2 2021-01-21 13:26:34 -08:00
radv_query.c radv: fix a sync issue with geometry shader primitives query on GFX10+ 2021-01-21 13:26:36 -08:00
radv_radeon_winsys.h radv: Use VRAM for upload buffers if entire VRAM is CPU-visible. 2021-01-04 13:10:15 +00:00
radv_shader.c radv,aco: don't use MUBUF for multi-channel loads on GFX8 with robustness2 2021-01-21 13:26:34 -08:00
radv_shader.h radv,aco: don't use MUBUF for multi-channel loads on GFX8 with robustness2 2021-01-21 13:26:34 -08:00
radv_shader_args.c ac: unify shader arguments that are duplicated 2020-12-09 20:13:25 +00:00
radv_shader_args.h util+treewide: container_of() cleanup 2020-12-10 16:48:36 +00:00
radv_shader_helper.h radv/gfx10: use the correct target machine for Wave32 2019-08-02 09:37:38 +02:00
radv_shader_info.c nir,spirv: add sparse image loads 2021-01-06 20:36:38 +00:00
radv_sqtt.c radv: inhibit clock gating when tracing with SQTT 2021-01-22 09:01:42 -08:00
radv_util.c radv: report errors back to the application via VK_EXT_debug_report 2020-08-10 14:09:21 +02:00
radv_util.h
radv_wsi.c vulkan/wsi: add sw support. (v2) 2020-08-17 14:30:50 +10:00
radv_wsi_display.c radv: Fix asserts using assign instead of compare. 2020-10-03 01:04:28 +00:00
radv_wsi_wayland.c radv/wsi: Don't include wayland headers 2017-03-13 11:16:30 +00:00
radv_wsi_x11.c vulkan: drop always-true param 2018-10-26 18:33:11 +01:00
si_cmd_buffer.c radv: flush L2 metadata as part of CB/DB flush instead of CS_DONE on GFX9 2021-01-20 09:22:16 -08:00
vk_format.h radv: Wrap pragmas with __GNUC__ to fix MSVC 2020-12-02 11:27:01 +00:00
vk_format_layout.csv radv: Implement VK_EXT_4444_formats 2020-08-03 19:27:37 +01:00
vk_format_parse.py radv: Add logic for multisample format descriptions. 2019-04-25 19:56:20 +00:00
vk_format_table.py util: rename PIPE_ARCH_*_ENDIAN to UTIL_ARCH_*_ENDIAN 2019-11-05 16:39:55 +00:00
vulkan.sym radv: Add Android module info to linker script. 2021-01-12 20:17:52 +00:00