summarylogtreecommitdiffstats
path: root/0001-spirv-radv-anv-implement-no-op-VK_GOOGLE_user_type.patch
diff options
context:
space:
mode:
authorJohn Schoenick2020-05-28 11:40:40 -0700
committerJohn Schoenick2020-05-28 11:57:51 -0700
commit4484299aaa68fbf2715fc11eff021177966b6b32 (patch)
treed91c7d9fa6fa117d22e9a96f896cde49010b530b /0001-spirv-radv-anv-implement-no-op-VK_GOOGLE_user_type.patch
parent674d0b353a620e7bc5fcc488704586db1c17f34d (diff)
downloadaur-4484299aaa68fbf2715fc11eff021177966b6b32.tar.gz
Include backported path of exile fix until ACO is rebase again
Diffstat (limited to '0001-spirv-radv-anv-implement-no-op-VK_GOOGLE_user_type.patch')
-rw-r--r--0001-spirv-radv-anv-implement-no-op-VK_GOOGLE_user_type.patch97
1 files changed, 97 insertions, 0 deletions
diff --git a/0001-spirv-radv-anv-implement-no-op-VK_GOOGLE_user_type.patch b/0001-spirv-radv-anv-implement-no-op-VK_GOOGLE_user_type.patch
new file mode 100644
index 000000000000..19b789e6d8b3
--- /dev/null
+++ b/0001-spirv-radv-anv-implement-no-op-VK_GOOGLE_user_type.patch
@@ -0,0 +1,97 @@
+From 50344bbb381511924b4d89877f9efada466304ba Mon Sep 17 00:00:00 2001
+From: Samuel Pitoiset <samuel.pitoiset@gmail.com>
+Date: Thu, 28 May 2020 10:21:27 +0200
+Subject: [PATCH 1/1] spirv,radv,anv: implement no-op VK_GOOGLE_user_type
+
+[ Rebased for mesa-aco repository ]
+
+This extension only allows HLSL shader compilers to optionally embed
+unambiguous type information which can be safely ignored by the driver.
+
+This fixes a crash with the recent Vulkan backend of Path Of Exile
+(it uses the extension without checking if it's supported).
+
+Cc: <mesa-stable@lists.freedesktop.org>
+Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
+Tested-by: Edmondo Tommasina <edmondo.tommasina@gmail.com>
+Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
+Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5237>
+---
+ docs/relnotes/new_features.txt | 1 +
+ src/amd/vulkan/radv_extensions.py | 1 +
+ src/compiler/spirv/spirv_to_nir.c | 5 +++++
+ src/compiler/spirv/vtn_variables.c | 1 +
+ src/intel/vulkan/anv_extensions.py | 1 +
+ 5 files changed, 9 insertions(+)
+
+diff --git a/docs/relnotes/new_features.txt b/docs/relnotes/new_features.txt
+index c2b424dec52..5352bbe4ba6 100644
+--- a/docs/relnotes/new_features.txt
++++ b/docs/relnotes/new_features.txt
+@@ -15,3 +15,4 @@ shaderInt16 for ACO on GFX9+
+ VK_KHR_shader_float16_int8 for ACO on GFX8+ (shaderFloat16 is still unsupported)
+ VK_EXT_robustness2 on Intel, RADV.
+ Add Rocket Lake (RKL) support on anvil and iris.
++VK_GOOGLE_user_type on ANV and RADV.
+diff --git a/src/amd/vulkan/radv_extensions.py b/src/amd/vulkan/radv_extensions.py
+index 4ea75a10d57..f1feb810bb4 100644
+--- a/src/amd/vulkan/radv_extensions.py
++++ b/src/amd/vulkan/radv_extensions.py
+@@ -172,6 +172,7 @@ EXTENSIONS = [
+ Extension('VK_AMD_shader_trinary_minmax', 1, True),
+ Extension('VK_GOOGLE_decorate_string', 1, True),
+ Extension('VK_GOOGLE_hlsl_functionality1', 1, True),
++ Extension('VK_GOOGLE_user_type', 1, True),
+ Extension('VK_NV_compute_shader_derivatives', 1, True),
+ ]
+
+diff --git a/src/compiler/spirv/spirv_to_nir.c b/src/compiler/spirv/spirv_to_nir.c
+index 2ea51707734..e6f49ed87a8 100644
+--- a/src/compiler/spirv/spirv_to_nir.c
++++ b/src/compiler/spirv/spirv_to_nir.c
+@@ -859,6 +859,7 @@ struct_member_decoration_cb(struct vtn_builder *b,
+ break;
+
+ case SpvDecorationUserSemantic:
++ case SpvDecorationUserTypeGOOGLE:
+ /* User semantic decorations can safely be ignored by the driver. */
+ break;
+
+@@ -1040,6 +1041,10 @@ type_decoration_cb(struct vtn_builder *b,
+ spirv_decoration_to_string(dec->decoration));
+ break;
+
++ case SpvDecorationUserTypeGOOGLE:
++ /* User semantic decorations can safely be ignored by the driver. */
++ break;
++
+ default:
+ vtn_fail_with_decoration("Unhandled decoration", dec->decoration);
+ }
+diff --git a/src/compiler/spirv/vtn_variables.c b/src/compiler/spirv/vtn_variables.c
+index 9a6ddc2db1e..00743d6552c 100644
+--- a/src/compiler/spirv/vtn_variables.c
++++ b/src/compiler/spirv/vtn_variables.c
+@@ -1652,6 +1652,7 @@ apply_var_decoration(struct vtn_builder *b,
+ break;
+
+ case SpvDecorationUserSemantic:
++ case SpvDecorationUserTypeGOOGLE:
+ /* User semantic decorations can safely be ignored by the driver. */
+ break;
+
+diff --git a/src/intel/vulkan/anv_extensions.py b/src/intel/vulkan/anv_extensions.py
+index 4760b984d35..b88f01088b8 100644
+--- a/src/intel/vulkan/anv_extensions.py
++++ b/src/intel/vulkan/anv_extensions.py
+@@ -173,6 +173,7 @@ EXTENSIONS = [
+ Extension('VK_ANDROID_native_buffer', 7, 'ANDROID'),
+ Extension('VK_GOOGLE_decorate_string', 1, True),
+ Extension('VK_GOOGLE_hlsl_functionality1', 1, True),
++ Extension('VK_GOOGLE_user_type', 1, True),
+ Extension('VK_INTEL_performance_query', 1, 'device->perf && device->perf->i915_perf_version >= 3'),
+ Extension('VK_INTEL_shader_integer_functions2', 1, 'device->info.gen >= 8'),
+ Extension('VK_NV_compute_shader_derivatives', 1, True),
+--
+2.26.2
+