A SPIR-V module passed to vkCreateShaderModule
must conform to the
following rules:
Scope for execution must be limited to:
Scope for memory must be limited to:
OriginLowerLeft
execution mode must not be used; fragment
entry points must declare OriginUpperLeft
.
PixelCenterInteger
execution mode must not be used.
Pixels are always centered at half-integer coordinates.
Images
OpTypeImage
must declare a scalar 32-bit float or 32-bit integer
type for the “Sampled Type”.
(RelaxedPrecision
can be applied to a sampling instruction and to
the variable holding the result of a sampling instruction.)
OpSampledImage
must only consume an “Image” operand whose type
has its “Sampled” operand set to 1.
SubpassData
must be the
<id> of a constant vector (0,0), or if a layer coordinate is
used, must be a vector that was formed with constant 0 for the u
and v components.
OpTypeImage
is ignored.
Decorations
GLSLShared
and GLSLPacked
decorations must not be used.
Flat
, NoPerspective
, Sample
, and Centroid
decorations must not be used on variables with storage class other
than Input
or on variables used in the interface of non-fragment
shader entry points.
Patch
decoration must not be used on variables in the
interface of a vertex, geometry, or fragment shader stage’s entry
point.
OpTypeRuntimeArray
must only be used for the last member of an
OpTypeStruct
in the Uniform
storage class.
Compute Shaders
LocalSize
execution
mode or an object decorated with the WorkgroupSize
decoration
must be specified.