Mesa (master): spirv: Add a guard for OpTypeForwardPointer storage classes
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Fri Nov 6 00:40:26 UTC 2020
Module: Mesa
Branch: master
Commit: 2bef02696d40843eee714a619757a1ce87504a95
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2bef02696d40843eee714a619757a1ce87504a95
Author: Jason Ekstrand <jason at jlekstrand.net>
Date: Wed Nov 4 12:31:41 2020 -0600
spirv: Add a guard for OpTypeForwardPointer storage classes
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira at intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6479>
---
src/compiler/spirv/spirv_to_nir.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/compiler/spirv/spirv_to_nir.c b/src/compiler/spirv/spirv_to_nir.c
index f400c3237dd..c22f2b285df 100644
--- a/src/compiler/spirv/spirv_to_nir.c
+++ b/src/compiler/spirv/spirv_to_nir.c
@@ -1518,6 +1518,12 @@ vtn_handle_type(struct vtn_builder *b, SpvOp opcode,
SpvStorageClass storage_class = w[2];
+ vtn_fail_if(opcode == SpvOpTypeForwardPointer &&
+ b->shader->info.stage != MESA_SHADER_KERNEL &&
+ storage_class != SpvStorageClassPhysicalStorageBuffer,
+ "OpTypeForwardPointer is only allowed in Vulkan with "
+ "the PhysicalStorageBuffer storage class");
+
if (val->value_type == vtn_value_type_invalid) {
val->value_type = vtn_value_type_type;
val->type = rzalloc(b, struct vtn_type);
More information about the mesa-commit
mailing list