radv: Corruption in "The Surge 2"
image: https://steamcommunity.com/sharedfiles/filedetails/?id=2195556386
commit af81486a8cde4dec2a695884b93b282c1710d8bd (HEAD)
Author: Jason Ekstrand <jason@jlekstrand.net>
Date: Thu May 28 18:32:01 2020 -0500
spirv: Simplify our handling of NonUniform
The original implementation of SPV_EXT_descriptor_indexing was extremely
paranoid about the NonUniform qualifier, trying to fetch it from every
possible location and propagate it through access chains etc. However,
the Vulkan spec is quite nice to us on this and has very strict rules
for where the NonUniform decoration has to be placed. For image and
texture operations, we can search for the decoration on the spot when we
process the image or texture op. For pointers, we continue putting it
on the pointer but we don't bother trying to do anything silly like
propagate it through casts.
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5278>
I realize there is a glslang bug open for the behavior (https://github.com/KhronosGroup/glslang/issues/2357), but we actually have games using this and we should avoid regressing them.
"Detroit become human" also uses descriptor indexing, so could potentially be impacted (haven't tested yet)
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information