mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 00:58:05 +02:00
spirv,radv,anv: implement no-op VK_GOOGLE_user_type
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>
(cherry picked from commit 10c4a7cf59)
This commit is contained in:
parent
5618984b67
commit
434d2dc427
6 changed files with 10 additions and 1 deletions
|
|
@ -1102,7 +1102,7 @@
|
|||
"description": "spirv,radv,anv: implement no-op VK_GOOGLE_user_type",
|
||||
"nominated": true,
|
||||
"nomination_type": 0,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"master_sha": null,
|
||||
"because_sha": null
|
||||
},
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
VK_GOOGLE_user_type on ANV and RADV.
|
||||
|
|
@ -166,6 +166,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, 'device->rad_info.chip_class >= GFX8'),
|
||||
]
|
||||
|
||||
|
|
|
|||
|
|
@ -866,6 +866,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;
|
||||
|
||||
|
|
@ -1047,6 +1048,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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1677,6 +1677,7 @@ apply_var_decoration(struct vtn_builder *b,
|
|||
break;
|
||||
|
||||
case SpvDecorationUserSemantic:
|
||||
case SpvDecorationUserTypeGOOGLE:
|
||||
/* User semantic decorations can safely be ignored by the driver. */
|
||||
break;
|
||||
|
||||
|
|
|
|||
|
|
@ -171,6 +171,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),
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue