spirv: Don't accept CPacked decoration on struct members

CPacked decoration is only allowed on struct definitions, not struct
members.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6472>
This commit is contained in:
Boris Brezillon
2020-06-23 12:49:23 +02:00
committed by Marge Bot
parent bcfeead5f3
commit 938d6ceb83

View File

@@ -1041,6 +1041,7 @@ struct_member_decoration_cb(struct vtn_builder *b,
case SpvDecorationLinkageAttributes:
case SpvDecorationNoContraction:
case SpvDecorationInputAttachmentIndex:
case SpvDecorationCPacked:
vtn_warn("Decoration not allowed on struct members: %s",
spirv_decoration_to_string(dec->decoration));
break;
@@ -1050,14 +1051,6 @@ struct_member_decoration_cb(struct vtn_builder *b,
/* This is handled later by var_decoration_cb in vtn_variables.c */
break;
case SpvDecorationCPacked:
if (b->shader->info.stage != MESA_SHADER_KERNEL)
vtn_warn("Decoration only allowed for CL-style kernels: %s",
spirv_decoration_to_string(dec->decoration));
else
ctx->type->packed = true;
break;
case SpvDecorationSaturatedConversion:
case SpvDecorationFuncParamAttr:
case SpvDecorationFPRoundingMode: