Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/KhronosGroup/SPIRV-Cross.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans-Kristian Arntzen <post@arntzen-software.no>2022-01-05 16:51:36 +0300
committerHans-Kristian Arntzen <post@arntzen-software.no>2022-01-05 16:56:01 +0300
commitfe8848a6f240acf00fd8decb94c44c81174271e3 (patch)
tree7a76d17b72d212f17003ae13063a3ecc613023a0
parent9c0b74f73b13b39258f06580e8670305372c8102 (diff)
Roll dependencies.
-rwxr-xr-xcheckout_glslang_spirv_tools.sh6
-rw-r--r--reference/opt/shaders-hlsl/asm/frag/line-directive.line.asm.frag2
-rw-r--r--reference/opt/shaders-hlsl/asm/frag/pack-and-unpack-uint2.fxconly.nofxc.sm60.asm.frag15
-rw-r--r--reference/opt/shaders-hlsl/frag/array-lut-no-loop-variable.frag9
-rw-r--r--reference/opt/shaders-hlsl/frag/no-return2.frag10
-rw-r--r--reference/opt/shaders-hlsl/frag/nonuniform-qualifier.nonuniformresource.sm51.frag38
-rw-r--r--reference/opt/shaders-hlsl/frag/unary-enclose.frag3
-rw-r--r--reference/opt/shaders-hlsl/frag/unorm-snorm-packing.frag8
-rw-r--r--reference/opt/shaders-hlsl/vert/return-array.vert3
-rw-r--r--reference/opt/shaders-msl/asm/frag/line-directive.line.asm.frag2
-rw-r--r--reference/opt/shaders-msl/asm/frag/op-image-sampled-image.asm.frag2
-rw-r--r--reference/opt/shaders-msl/comp/ray-query.spv14.vk.ios.msl24.comp10
-rw-r--r--reference/opt/shaders-msl/frag/packed-expression-vector-shuffle.frag8
-rw-r--r--reference/opt/shaders-ue4/asm/tesc/hs-incorrect-base-type.invalid.asm.tesc (renamed from reference/shaders-ue4/asm/tesc/hs-incorrect-base-type.asm.tesc)0
-rw-r--r--reference/opt/shaders-ue4/asm/tesc/hs-input-array-access.invalid.asm.tesc (renamed from reference/shaders-ue4/asm/tesc/hs-input-array-access.asm.tesc)0
-rw-r--r--reference/opt/shaders-ue4/asm/tesc/hs-texcoord-array.invalid.asm.tesc (renamed from reference/shaders-ue4/asm/tesc/hs-texcoord-array.asm.tesc)0
-rw-r--r--reference/opt/shaders-ue4/asm/tesc/tess-factor-must-be-threadgroup.invalid.asm.tesc (renamed from reference/shaders-ue4/asm/tesc/tess-factor-must-be-threadgroup.asm.tesc)0
-rw-r--r--reference/opt/shaders/asm/frag/line-directive.line.asm.frag2
-rw-r--r--reference/opt/shaders/asm/frag/pack-and-unpack-uint2.asm.frag3
-rw-r--r--reference/opt/shaders/frag/texel-fetch-offset.frag2
-rw-r--r--reference/opt/shaders/geom/geometry-passthrough.geom5
-rw-r--r--reference/opt/shaders/vulkan/comp/buffer-reference-base-alignment-promote.nocompat.vk.comp.vk1
-rw-r--r--reference/opt/shaders/vulkan/comp/buffer-reference.nocompat.vk.comp.vk14
-rw-r--r--reference/opt/shaders/vulkan/comp/ray-query.nocompat.spv14.vk.comp.vk10
-rw-r--r--reference/opt/shaders/vulkan/frag/nonuniform-qualifier.vk.nocompat.frag.vk20
-rw-r--r--reference/shaders-hlsl-no-opt/vert/flatten-matrix-input.flatten-matrix-vertex-input.vert13
-rw-r--r--reference/shaders-hlsl/frag/nonuniform-qualifier.nonuniformresource.sm51.frag56
-rw-r--r--reference/shaders-hlsl/frag/unorm-snorm-packing.frag8
-rw-r--r--reference/shaders-msl-no-opt/comp/bitcast-16bit-2.invalid.comp12
-rw-r--r--reference/shaders-msl-no-opt/vert/functions_nested.vert3
-rw-r--r--reference/shaders-msl/comp/ray-query.spv14.vk.ios.msl24.comp23
-rw-r--r--reference/shaders-msl/frag/packed-expression-vector-shuffle.frag4
-rw-r--r--reference/shaders-no-opt/comp/bitcast-16bit-2.invalid.comp12
-rw-r--r--reference/shaders-ue4/asm/tesc/hs-incorrect-base-type.invalid.asm.tesc (renamed from reference/opt/shaders-ue4/asm/tesc/hs-incorrect-base-type.asm.tesc)6
-rw-r--r--reference/shaders-ue4/asm/tesc/hs-input-array-access.invalid.asm.tesc (renamed from reference/opt/shaders-ue4/asm/tesc/hs-input-array-access.asm.tesc)6
-rw-r--r--reference/shaders-ue4/asm/tesc/hs-texcoord-array.invalid.asm.tesc (renamed from reference/opt/shaders-ue4/asm/tesc/hs-texcoord-array.asm.tesc)6
-rw-r--r--reference/shaders-ue4/asm/tesc/tess-factor-must-be-threadgroup.invalid.asm.tesc (renamed from reference/opt/shaders-ue4/asm/tesc/tess-factor-must-be-threadgroup.asm.tesc)4
-rw-r--r--reference/shaders/vulkan/comp/ray-query.nocompat.spv14.vk.comp.vk23
-rw-r--r--reference/shaders/vulkan/frag/nonuniform-qualifier.vk.nocompat.frag.vk42
-rw-r--r--shaders-hlsl/frag/nonuniform-qualifier.nonuniformresource.sm51.frag6
-rw-r--r--shaders-ue4/asm/tesc/hs-incorrect-base-type.invalid.asm.tesc (renamed from shaders-ue4/asm/tesc/hs-incorrect-base-type.asm.tesc)0
-rw-r--r--shaders-ue4/asm/tesc/hs-input-array-access.invalid.asm.tesc (renamed from shaders-ue4/asm/tesc/hs-input-array-access.asm.tesc)0
-rw-r--r--shaders-ue4/asm/tesc/hs-texcoord-array.invalid.asm.tesc (renamed from shaders-ue4/asm/tesc/hs-texcoord-array.asm.tesc)0
-rw-r--r--shaders-ue4/asm/tesc/tess-factor-must-be-threadgroup.invalid.asm.tesc (renamed from shaders-ue4/asm/tesc/tess-factor-must-be-threadgroup.asm.tesc)0
-rw-r--r--spirv.h320
-rw-r--r--spirv.hpp320
46 files changed, 835 insertions, 202 deletions
diff --git a/checkout_glslang_spirv_tools.sh b/checkout_glslang_spirv_tools.sh
index 24a74fba..f318d9ab 100755
--- a/checkout_glslang_spirv_tools.sh
+++ b/checkout_glslang_spirv_tools.sh
@@ -2,9 +2,9 @@
# Copyright 2016-2021 The Khronos Group Inc.
# SPDX-License-Identifier: Apache-2.0
-GLSLANG_REV=3de5cfe50edecd001e6d703555284d9b10b3dd57
-SPIRV_TOOLS_REV=f3ccb633dfd7c5de1f9f0a2d2e9d7a25f2478206
-SPIRV_HEADERS_REV=f027d53ded7e230e008d37c8b47ede7cd308e19d
+GLSLANG_REV=df609a01b386001e367709086c58529c48028d1e
+SPIRV_TOOLS_REV=75e53b9f685830ac42242cf0c46cc9af523bd0df
+SPIRV_HEADERS_REV=b8047fbe45f426f5918fadc67e8408f5b108c3c9
PROTOCOL=https
if [ -d external/glslang ]; then
diff --git a/reference/opt/shaders-hlsl/asm/frag/line-directive.line.asm.frag b/reference/opt/shaders-hlsl/asm/frag/line-directive.line.asm.frag
index 7fb40355..4a1cf2ee 100644
--- a/reference/opt/shaders-hlsl/asm/frag/line-directive.line.asm.frag
+++ b/reference/opt/shaders-hlsl/asm/frag/line-directive.line.asm.frag
@@ -70,8 +70,6 @@ void frag_main()
#line 42 "test.frag"
FragColor += (10.0f + vColor);
#line 43 "test.frag"
-#line 42 "test.frag"
-#line 43 "test.frag"
if (FragColor < 100.0f)
{
}
diff --git a/reference/opt/shaders-hlsl/asm/frag/pack-and-unpack-uint2.fxconly.nofxc.sm60.asm.frag b/reference/opt/shaders-hlsl/asm/frag/pack-and-unpack-uint2.fxconly.nofxc.sm60.asm.frag
index 0841b7ca..358773b2 100644
--- a/reference/opt/shaders-hlsl/asm/frag/pack-and-unpack-uint2.fxconly.nofxc.sm60.asm.frag
+++ b/reference/opt/shaders-hlsl/asm/frag/pack-and-unpack-uint2.fxconly.nofxc.sm60.asm.frag
@@ -5,22 +5,9 @@ struct SPIRV_Cross_Output
float4 FragColor : SV_Target0;
};
-uint64_t spvPackUint2x32(uint2 value)
-{
- return (uint64_t(value.y) << 32) | uint64_t(value.x);
-}
-
-uint2 spvUnpackUint2x32(uint64_t value)
-{
- uint2 Unpacked;
- Unpacked.x = uint(value & 0xffffffff);
- Unpacked.y = uint(value >> 32);
- return Unpacked;
-}
-
void frag_main()
{
- uint2 unpacked = spvUnpackUint2x32(spvPackUint2x32(uint2(18u, 52u)));
+ uint2 unpacked = uint2(18u, 52u);
FragColor = float4(float(unpacked.x), float(unpacked.y), 1.0f, 1.0f);
}
diff --git a/reference/opt/shaders-hlsl/frag/array-lut-no-loop-variable.frag b/reference/opt/shaders-hlsl/frag/array-lut-no-loop-variable.frag
index 3adf7d98..38f416fb 100644
--- a/reference/opt/shaders-hlsl/frag/array-lut-no-loop-variable.frag
+++ b/reference/opt/shaders-hlsl/frag/array-lut-no-loop-variable.frag
@@ -1,12 +1,6 @@
static const float _17[5] = { 1.0f, 2.0f, 3.0f, 4.0f, 5.0f };
static float4 FragColor;
-static float4 v0;
-
-struct SPIRV_Cross_Input
-{
- float4 v0 : TEXCOORD0;
-};
struct SPIRV_Cross_Output
{
@@ -24,9 +18,8 @@ void frag_main()
}
}
-SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input)
+SPIRV_Cross_Output main()
{
- v0 = stage_input.v0;
frag_main();
SPIRV_Cross_Output stage_output;
stage_output.FragColor = FragColor;
diff --git a/reference/opt/shaders-hlsl/frag/no-return2.frag b/reference/opt/shaders-hlsl/frag/no-return2.frag
index e9d7bbc8..3b50282f 100644
--- a/reference/opt/shaders-hlsl/frag/no-return2.frag
+++ b/reference/opt/shaders-hlsl/frag/no-return2.frag
@@ -1,16 +1,8 @@
-static float4 vColor;
-
-struct SPIRV_Cross_Input
-{
- float4 vColor : TEXCOORD0;
-};
-
void frag_main()
{
}
-void main(SPIRV_Cross_Input stage_input)
+void main()
{
- vColor = stage_input.vColor;
frag_main();
}
diff --git a/reference/opt/shaders-hlsl/frag/nonuniform-qualifier.nonuniformresource.sm51.frag b/reference/opt/shaders-hlsl/frag/nonuniform-qualifier.nonuniformresource.sm51.frag
index f1b6bfaf..6685ef9c 100644
--- a/reference/opt/shaders-hlsl/frag/nonuniform-qualifier.nonuniformresource.sm51.frag
+++ b/reference/opt/shaders-hlsl/frag/nonuniform-qualifier.nonuniformresource.sm51.frag
@@ -74,24 +74,30 @@ void frag_main()
float2 _136 = _136_tmp.xx;
float _143_tmp = uCombinedSamplers[NonUniformResourceIndex(_49)].CalculateLevelOfDetail(_uCombinedSamplers_sampler[NonUniformResourceIndex(_49)], vUV);
float2 _143 = _143_tmp.xx;
- float2 _149 = FragColor.xy + (_136 + _143);
- FragColor = float4(_149.x, _149.y, FragColor.z, FragColor.w);
- int _157;
- spvTextureSize(uSamplers[NonUniformResourceIndex(_65)], 0u, _157);
- FragColor.x += float(int(_157));
- int _174;
- spvTextureSize(uSamplersMS[NonUniformResourceIndex(_65)], 0u, _174);
- FragColor.y += float(int(_174));
- uint _185_dummy_parameter;
- float2 _189 = FragColor.xy + float2(int2(spvTextureSize(uSamplers[NonUniformResourceIndex(_65)], uint(0), _185_dummy_parameter)));
- FragColor = float4(_189.x, _189.y, FragColor.z, FragColor.w);
+ float4 _147 = FragColor;
+ float2 _149 = _147.xy + (_136 + _143);
+ FragColor.x = _149.x;
+ FragColor.y = _149.y;
+ int _160;
+ spvTextureSize(uSamplers[NonUniformResourceIndex(_65)], 0u, _160);
+ FragColor.x += float(int(_160));
+ int _176;
+ spvTextureSize(uSamplersMS[NonUniformResourceIndex(_65)], 0u, _176);
+ FragColor.y += float(int(_176));
+ uint _187_dummy_parameter;
+ float4 _189 = FragColor;
+ float2 _191 = _189.xy + float2(int2(spvTextureSize(uSamplers[NonUniformResourceIndex(_65)], uint(0), _187_dummy_parameter)));
+ FragColor.x = _191.x;
+ FragColor.y = _191.y;
FragColor += uImages[NonUniformResourceIndex(_83)][_111].xxxx;
- uint _212_dummy_parameter;
- float2 _216 = FragColor.xy + float2(int2(spvImageSize(uImages[NonUniformResourceIndex(_65)], _212_dummy_parameter)));
- FragColor = float4(_216.x, _216.y, FragColor.z, FragColor.w);
+ uint _216_dummy_parameter;
+ float4 _218 = FragColor;
+ float2 _220 = _218.xy + float2(int2(spvImageSize(uImages[NonUniformResourceIndex(_65)], _216_dummy_parameter)));
+ FragColor.x = _220.x;
+ FragColor.y = _220.y;
uImages[NonUniformResourceIndex(_88)][_111] = 50.0f.x;
- uint _242;
- InterlockedAdd(uImagesU32[NonUniformResourceIndex(_100)][_111], 40u, _242);
+ uint _248;
+ InterlockedAdd(uImagesU32[NonUniformResourceIndex(_100)][_111], 40u, _248);
}
SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input)
diff --git a/reference/opt/shaders-hlsl/frag/unary-enclose.frag b/reference/opt/shaders-hlsl/frag/unary-enclose.frag
index 348b91c1..85419ef1 100644
--- a/reference/opt/shaders-hlsl/frag/unary-enclose.frag
+++ b/reference/opt/shaders-hlsl/frag/unary-enclose.frag
@@ -1,11 +1,9 @@
static float4 FragColor;
static float4 vIn;
-static int4 vIn1;
struct SPIRV_Cross_Input
{
float4 vIn : TEXCOORD0;
- nointerpolation int4 vIn1 : TEXCOORD1;
};
struct SPIRV_Cross_Output
@@ -21,7 +19,6 @@ void frag_main()
SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input)
{
vIn = stage_input.vIn;
- vIn1 = stage_input.vIn1;
frag_main();
SPIRV_Cross_Output stage_output;
stage_output.FragColor = FragColor;
diff --git a/reference/opt/shaders-hlsl/frag/unorm-snorm-packing.frag b/reference/opt/shaders-hlsl/frag/unorm-snorm-packing.frag
index 0dd9ed3f..95786b93 100644
--- a/reference/opt/shaders-hlsl/frag/unorm-snorm-packing.frag
+++ b/reference/opt/shaders-hlsl/frag/unorm-snorm-packing.frag
@@ -82,9 +82,11 @@ void frag_main()
FP32Out = spvUnpackUnorm4x8(UNORM8);
FP32Out = spvUnpackSnorm4x8(SNORM8);
float2 _21 = spvUnpackUnorm2x16(UNORM16);
- FP32Out = float4(_21.x, _21.y, FP32Out.z, FP32Out.w);
- float2 _26 = spvUnpackSnorm2x16(SNORM16);
- FP32Out = float4(_26.x, _26.y, FP32Out.z, FP32Out.w);
+ FP32Out.x = _21.x;
+ FP32Out.y = _21.y;
+ float2 _31 = spvUnpackSnorm2x16(SNORM16);
+ FP32Out.x = _31.x;
+ FP32Out.y = _31.y;
UNORM8Out = spvPackUnorm4x8(FP32);
SNORM8Out = spvPackSnorm4x8(FP32);
UNORM16Out = spvPackUnorm2x16(FP32.xy);
diff --git a/reference/opt/shaders-hlsl/vert/return-array.vert b/reference/opt/shaders-hlsl/vert/return-array.vert
index bd157556..be11c3f1 100644
--- a/reference/opt/shaders-hlsl/vert/return-array.vert
+++ b/reference/opt/shaders-hlsl/vert/return-array.vert
@@ -1,10 +1,8 @@
static float4 gl_Position;
-static float4 vInput0;
static float4 vInput1;
struct SPIRV_Cross_Input
{
- float4 vInput0 : TEXCOORD0;
float4 vInput1 : TEXCOORD1;
};
@@ -20,7 +18,6 @@ void vert_main()
SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input)
{
- vInput0 = stage_input.vInput0;
vInput1 = stage_input.vInput1;
vert_main();
SPIRV_Cross_Output stage_output;
diff --git a/reference/opt/shaders-msl/asm/frag/line-directive.line.asm.frag b/reference/opt/shaders-msl/asm/frag/line-directive.line.asm.frag
index 3634499f..27b7d477 100644
--- a/reference/opt/shaders-msl/asm/frag/line-directive.line.asm.frag
+++ b/reference/opt/shaders-msl/asm/frag/line-directive.line.asm.frag
@@ -73,8 +73,6 @@ fragment main0_out main0(main0_in in [[stage_in]])
#line 42 "test.frag"
out.FragColor += (10.0 + in.vColor);
#line 43 "test.frag"
-#line 42 "test.frag"
-#line 43 "test.frag"
if (out.FragColor < 100.0)
{
}
diff --git a/reference/opt/shaders-msl/asm/frag/op-image-sampled-image.asm.frag b/reference/opt/shaders-msl/asm/frag/op-image-sampled-image.asm.frag
index 45f0ca52..807fde3f 100644
--- a/reference/opt/shaders-msl/asm/frag/op-image-sampled-image.asm.frag
+++ b/reference/opt/shaders-msl/asm/frag/op-image-sampled-image.asm.frag
@@ -16,7 +16,7 @@ struct main0_out
fragment main0_out main0(constant push_cb& _19 [[buffer(0)]], texture2d<float> t0 [[texture(0)]], sampler dummy_sampler [[sampler(0)]])
{
main0_out out = {};
- out.o0 = t0.read(uint2(as_type<int2>(_19.cb0[0u].zw)) + uint2(int2(-1, -2)), as_type<int>(0.0));
+ out.o0 = t0.read(uint2(as_type<int2>(_19.cb0[0u].zw)) + uint2(int2(-1, -2)), 0);
return out;
}
diff --git a/reference/opt/shaders-msl/comp/ray-query.spv14.vk.ios.msl24.comp b/reference/opt/shaders-msl/comp/ray-query.spv14.vk.ios.msl24.comp
index 3e86c56a..0a94deb5 100644
--- a/reference/opt/shaders-msl/comp/ray-query.spv14.vk.ios.msl24.comp
+++ b/reference/opt/shaders-msl/comp/ray-query.spv14.vk.ios.msl24.comp
@@ -42,10 +42,10 @@ kernel void main0(constant Params& _18 [[buffer(1)]], acceleration_structure<ins
int _96 = q2[1].get_candidate_geometry_id();
int _97 = q.get_committed_primitive_id();
float2 _100 = q2[0].get_candidate_triangle_barycentric_coord();
- bool _103 = q.is_committed_triangle_front_facing();
- float3 _104 = q.get_candidate_ray_direction();
- float3 _106 = q2[0].get_committed_ray_origin();
- float4x3 _110 = q.get_candidate_object_to_world_transform();
- float4x3 _112 = q2[1].get_committed_world_to_object_transform();
+ bool _107 = q.is_committed_triangle_front_facing();
+ float3 _108 = q.get_candidate_ray_direction();
+ float3 _110 = q2[0].get_committed_ray_origin();
+ float4x3 _114 = q.get_candidate_object_to_world_transform();
+ float4x3 _116 = q2[1].get_committed_world_to_object_transform();
}
diff --git a/reference/opt/shaders-msl/frag/packed-expression-vector-shuffle.frag b/reference/opt/shaders-msl/frag/packed-expression-vector-shuffle.frag
index dd319af5..388f5381 100644
--- a/reference/opt/shaders-msl/frag/packed-expression-vector-shuffle.frag
+++ b/reference/opt/shaders-msl/frag/packed-expression-vector-shuffle.frag
@@ -17,7 +17,13 @@ struct main0_out
fragment main0_out main0(constant UBO& _15 [[buffer(0)]])
{
main0_out out = {};
- out.FragColor = float4(_15.color[0], _15.color[1], _15.color[2], float4(1.0).w);
+ float4 _36 = float4(1.0);
+ _36.x = _15.color[0];
+ float4 _38 = _36;
+ _38.y = _15.color[1];
+ float4 _40 = _38;
+ _40.z = _15.color[2];
+ out.FragColor = _40;
return out;
}
diff --git a/reference/shaders-ue4/asm/tesc/hs-incorrect-base-type.asm.tesc b/reference/opt/shaders-ue4/asm/tesc/hs-incorrect-base-type.invalid.asm.tesc
index 2748b497..2748b497 100644
--- a/reference/shaders-ue4/asm/tesc/hs-incorrect-base-type.asm.tesc
+++ b/reference/opt/shaders-ue4/asm/tesc/hs-incorrect-base-type.invalid.asm.tesc
diff --git a/reference/shaders-ue4/asm/tesc/hs-input-array-access.asm.tesc b/reference/opt/shaders-ue4/asm/tesc/hs-input-array-access.invalid.asm.tesc
index 6aadcefe..6aadcefe 100644
--- a/reference/shaders-ue4/asm/tesc/hs-input-array-access.asm.tesc
+++ b/reference/opt/shaders-ue4/asm/tesc/hs-input-array-access.invalid.asm.tesc
diff --git a/reference/shaders-ue4/asm/tesc/hs-texcoord-array.asm.tesc b/reference/opt/shaders-ue4/asm/tesc/hs-texcoord-array.invalid.asm.tesc
index 8c8ebf55..8c8ebf55 100644
--- a/reference/shaders-ue4/asm/tesc/hs-texcoord-array.asm.tesc
+++ b/reference/opt/shaders-ue4/asm/tesc/hs-texcoord-array.invalid.asm.tesc
diff --git a/reference/shaders-ue4/asm/tesc/tess-factor-must-be-threadgroup.asm.tesc b/reference/opt/shaders-ue4/asm/tesc/tess-factor-must-be-threadgroup.invalid.asm.tesc
index 04f5a1d3..04f5a1d3 100644
--- a/reference/shaders-ue4/asm/tesc/tess-factor-must-be-threadgroup.asm.tesc
+++ b/reference/opt/shaders-ue4/asm/tesc/tess-factor-must-be-threadgroup.invalid.asm.tesc
diff --git a/reference/opt/shaders/asm/frag/line-directive.line.asm.frag b/reference/opt/shaders/asm/frag/line-directive.line.asm.frag
index 4c108eda..4682d79e 100644
--- a/reference/opt/shaders/asm/frag/line-directive.line.asm.frag
+++ b/reference/opt/shaders/asm/frag/line-directive.line.asm.frag
@@ -63,8 +63,6 @@ void main()
#line 42 "test.frag"
FragColor += (10.0 + vColor);
#line 43 "test.frag"
-#line 42 "test.frag"
-#line 43 "test.frag"
if (FragColor < 100.0)
{
}
diff --git a/reference/opt/shaders/asm/frag/pack-and-unpack-uint2.asm.frag b/reference/opt/shaders/asm/frag/pack-and-unpack-uint2.asm.frag
index 6d81fa61..f2a2a40f 100644
--- a/reference/opt/shaders/asm/frag/pack-and-unpack-uint2.asm.frag
+++ b/reference/opt/shaders/asm/frag/pack-and-unpack-uint2.asm.frag
@@ -1,11 +1,10 @@
#version 450
-#extension GL_ARB_gpu_shader_int64 : require
layout(location = 0) out vec4 FragColor;
void main()
{
- uvec2 unpacked = unpackUint2x32(packUint2x32(uvec2(18u, 52u)));
+ uvec2 unpacked = uvec2(18u, 52u);
FragColor = vec4(float(unpacked.x), float(unpacked.y), 1.0, 1.0);
}
diff --git a/reference/opt/shaders/frag/texel-fetch-offset.frag b/reference/opt/shaders/frag/texel-fetch-offset.frag
index 416f764d..520b4ee8 100644
--- a/reference/opt/shaders/frag/texel-fetch-offset.frag
+++ b/reference/opt/shaders/frag/texel-fetch-offset.frag
@@ -8,7 +8,7 @@ layout(location = 0) out vec4 FragColor;
void main()
{
- mediump ivec2 _22 = ivec2(gl_FragCoord.xy);
+ ivec2 _22 = ivec2(gl_FragCoord.xy);
FragColor = texelFetchOffset(uTexture, _22, 0, ivec2(1));
FragColor += texelFetchOffset(uTexture, _22, 0, ivec2(-1, 1));
}
diff --git a/reference/opt/shaders/geom/geometry-passthrough.geom b/reference/opt/shaders/geom/geometry-passthrough.geom
index d0d8806a..afbd6623 100644
--- a/reference/opt/shaders/geom/geometry-passthrough.geom
+++ b/reference/opt/shaders/geom/geometry-passthrough.geom
@@ -2,11 +2,6 @@
#extension GL_NV_geometry_shader_passthrough : require
layout(triangles) in;
-layout(passthrough) in gl_PerVertex
-{
- vec4 gl_Position;
-} gl_in[];
-
layout(passthrough, location = 0) in VertexBlock
{
int a;
diff --git a/reference/opt/shaders/vulkan/comp/buffer-reference-base-alignment-promote.nocompat.vk.comp.vk b/reference/opt/shaders/vulkan/comp/buffer-reference-base-alignment-promote.nocompat.vk.comp.vk
index a5a66b19..1808beec 100644
--- a/reference/opt/shaders/vulkan/comp/buffer-reference-base-alignment-promote.nocompat.vk.comp.vk
+++ b/reference/opt/shaders/vulkan/comp/buffer-reference-base-alignment-promote.nocompat.vk.comp.vk
@@ -23,6 +23,7 @@ layout(push_constant, std430) uniform Push
void main()
{
+ uint v = _15.bar.b;
uint _31 = atomicAdd(_15.bar.a, _15.bar.b);
}
diff --git a/reference/opt/shaders/vulkan/comp/buffer-reference.nocompat.vk.comp.vk b/reference/opt/shaders/vulkan/comp/buffer-reference.nocompat.vk.comp.vk
index de0964b1..1ec204b0 100644
--- a/reference/opt/shaders/vulkan/comp/buffer-reference.nocompat.vk.comp.vk
+++ b/reference/opt/shaders/vulkan/comp/buffer-reference.nocompat.vk.comp.vk
@@ -19,17 +19,31 @@ layout(set = 0, binding = 0, std430) restrict buffer LinkedList
void main()
{
+ Node _45;
Node _114;
if (gl_WorkGroupID.x < 4u)
{
+ _45 = _50.head1;
_114 = _50.head1;
}
else
{
+ _45 = _50.head2;
_114 = _50.head2;
}
+ restrict Node n = _114;
+ Node param = _114.next;
+ Node param_1 = _50.head1;
+ Node param_2 = _50.head2;
_114.next.value = _50.head1.value + _50.head2.value;
+ Node param_4 = _50.head1;
+ Node param_3 = _50.head1;
+ n = _50.head1;
+ int v = _50.head2.value;
_50.head1.value = 20;
_50.head1.value = _50.head2.value * 10;
+ uint64_t _98 = uint64_t(_50.head2.next);
+ uint64_t uptr = _98;
+ Node unode = Node(_98);
}
diff --git a/reference/opt/shaders/vulkan/comp/ray-query.nocompat.spv14.vk.comp.vk b/reference/opt/shaders/vulkan/comp/ray-query.nocompat.spv14.vk.comp.vk
index dcd37387..eda045dc 100644
--- a/reference/opt/shaders/vulkan/comp/ray-query.nocompat.spv14.vk.comp.vk
+++ b/reference/opt/shaders/vulkan/comp/ray-query.nocompat.spv14.vk.comp.vk
@@ -43,10 +43,10 @@ void main()
int _99 = rayQueryGetIntersectionGeometryIndexEXT(q2[1], bool(0));
int _100 = rayQueryGetIntersectionPrimitiveIndexEXT(q, bool(1));
vec2 _103 = rayQueryGetIntersectionBarycentricsEXT(q2[0], bool(0));
- bool _106 = rayQueryGetIntersectionFrontFaceEXT(q, bool(1));
- vec3 _107 = rayQueryGetIntersectionObjectRayDirectionEXT(q, bool(0));
- vec3 _109 = rayQueryGetIntersectionObjectRayOriginEXT(q2[0], bool(1));
- mat4x3 _113 = rayQueryGetIntersectionObjectToWorldEXT(q, bool(0));
- mat4x3 _115 = rayQueryGetIntersectionWorldToObjectEXT(q2[1], bool(1));
+ bool _110 = rayQueryGetIntersectionFrontFaceEXT(q, bool(1));
+ vec3 _111 = rayQueryGetIntersectionObjectRayDirectionEXT(q, bool(0));
+ vec3 _113 = rayQueryGetIntersectionObjectRayOriginEXT(q2[0], bool(1));
+ mat4x3 _117 = rayQueryGetIntersectionObjectToWorldEXT(q, bool(0));
+ mat4x3 _119 = rayQueryGetIntersectionWorldToObjectEXT(q2[1], bool(1));
}
diff --git a/reference/opt/shaders/vulkan/frag/nonuniform-qualifier.vk.nocompat.frag.vk b/reference/opt/shaders/vulkan/frag/nonuniform-qualifier.vk.nocompat.frag.vk
index 74e375fd..891ed232 100644
--- a/reference/opt/shaders/vulkan/frag/nonuniform-qualifier.vk.nocompat.frag.vk
+++ b/reference/opt/shaders/vulkan/frag/nonuniform-qualifier.vk.nocompat.frag.vk
@@ -43,16 +43,22 @@ void main()
FragColor = texelFetch(uSamplers[nonuniformEXT(_49)], _111, 0);
int _116 = vIndex + 100;
uint _122 = atomicAdd(ssbos[_116].counter, 100u);
- vec2 _149 = FragColor.xy + (textureQueryLod(nonuniformEXT(sampler2D(uSamplers[_22], uSamps[_32])), vUV) + textureQueryLod(uCombinedSamplers[nonuniformEXT(_49)], vUV));
- FragColor = vec4(_149.x, _149.y, FragColor.z, FragColor.w);
+ vec4 _147 = FragColor;
+ vec2 _149 = _147.xy + (textureQueryLod(nonuniformEXT(sampler2D(uSamplers[_22], uSamps[_32])), vUV) + textureQueryLod(uCombinedSamplers[nonuniformEXT(_49)], vUV));
+ FragColor.x = _149.x;
+ FragColor.y = _149.y;
FragColor.x += float(textureQueryLevels(uSamplers[nonuniformEXT(_65)]));
FragColor.y += float(textureSamples(uSamplersMS[nonuniformEXT(_65)]));
- vec2 _189 = FragColor.xy + vec2(textureSize(uSamplers[nonuniformEXT(_65)], 0));
- FragColor = vec4(_189.x, _189.y, FragColor.z, FragColor.w);
+ vec4 _189 = FragColor;
+ vec2 _191 = _189.xy + vec2(textureSize(uSamplers[nonuniformEXT(_65)], 0));
+ FragColor.x = _191.x;
+ FragColor.y = _191.y;
FragColor += imageLoad(uImages[nonuniformEXT(_83)], _111);
- vec2 _216 = FragColor.xy + vec2(imageSize(uImages[nonuniformEXT(_65)]));
- FragColor = vec4(_216.x, _216.y, FragColor.z, FragColor.w);
+ vec4 _218 = FragColor;
+ vec2 _220 = _218.xy + vec2(imageSize(uImages[nonuniformEXT(_65)]));
+ FragColor.x = _220.x;
+ FragColor.y = _220.y;
imageStore(uImages[nonuniformEXT(_88)], _111, vec4(50.0));
- uint _242 = imageAtomicAdd(uImagesU32[nonuniformEXT(_100)], _111, 40u);
+ uint _248 = imageAtomicAdd(uImagesU32[nonuniformEXT(_100)], _111, 40u);
}
diff --git a/reference/shaders-hlsl-no-opt/vert/flatten-matrix-input.flatten-matrix-vertex-input.vert b/reference/shaders-hlsl-no-opt/vert/flatten-matrix-input.flatten-matrix-vertex-input.vert
index 906b0edd..d76b24fc 100644
--- a/reference/shaders-hlsl-no-opt/vert/flatten-matrix-input.flatten-matrix-vertex-input.vert
+++ b/reference/shaders-hlsl-no-opt/vert/flatten-matrix-input.flatten-matrix-vertex-input.vert
@@ -26,10 +26,15 @@ struct SPIRV_Cross_Output
void vert_main()
{
gl_Position = mul(v, m4);
- float3 _37 = gl_Position.xyz + mul(v.xyz, m3);
- gl_Position = float4(_37.x, _37.y, _37.z, gl_Position.w);
- float2 _52 = gl_Position.xy + mul(v.xy, m2);
- gl_Position = float4(_52.x, _52.y, gl_Position.z, gl_Position.w);
+ float4 _35 = gl_Position;
+ float3 _37 = _35.xyz + mul(v.xyz, m3);
+ gl_Position.x = _37.x;
+ gl_Position.y = _37.y;
+ gl_Position.z = _37.z;
+ float4 _56 = gl_Position;
+ float2 _58 = _56.xy + mul(v.xy, m2);
+ gl_Position.x = _58.x;
+ gl_Position.y = _58.y;
}
SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input)
diff --git a/reference/shaders-hlsl/frag/nonuniform-qualifier.nonuniformresource.sm51.frag b/reference/shaders-hlsl/frag/nonuniform-qualifier.nonuniformresource.sm51.frag
index 93f24d9a..cd5a6eee 100644
--- a/reference/shaders-hlsl/frag/nonuniform-qualifier.nonuniformresource.sm51.frag
+++ b/reference/shaders-hlsl/frag/nonuniform-qualifier.nonuniformresource.sm51.frag
@@ -77,31 +77,37 @@ void frag_main()
float _143_tmp = uCombinedSamplers[NonUniformResourceIndex(_139)].CalculateLevelOfDetail(_uCombinedSamplers_sampler[NonUniformResourceIndex(_139)], vUV);
float2 _143 = _143_tmp.xx;
queried += _143;
- float2 _149 = FragColor.xy + queried;
- FragColor = float4(_149.x, _149.y, FragColor.z, FragColor.w);
- int _154 = i + 20;
- int _157;
- spvTextureSize(uSamplers[NonUniformResourceIndex(_154)], 0u, _157);
- FragColor.x += float(int(_157));
- int _170 = i + 20;
- int _174;
- spvTextureSize(uSamplersMS[NonUniformResourceIndex(_170)], 0u, _174);
- FragColor.y += float(int(_174));
- int _182 = i + 20;
- uint _185_dummy_parameter;
- float2 _189 = FragColor.xy + float2(int2(spvTextureSize(uSamplers[NonUniformResourceIndex(_182)], uint(0), _185_dummy_parameter)));
- FragColor = float4(_189.x, _189.y, FragColor.z, FragColor.w);
- int _198 = i + 50;
- FragColor += uImages[NonUniformResourceIndex(_198)][int2(vUV)].xxxx;
- int _209 = i + 20;
- uint _212_dummy_parameter;
- float2 _216 = FragColor.xy + float2(int2(spvImageSize(uImages[NonUniformResourceIndex(_209)], _212_dummy_parameter)));
- FragColor = float4(_216.x, _216.y, FragColor.z, FragColor.w);
- int _221 = i + 60;
- uImages[NonUniformResourceIndex(_221)][int2(vUV)] = 50.0f.x;
- int _234 = i + 70;
- uint _242;
- InterlockedAdd(uImagesU32[NonUniformResourceIndex(_234)][int2(vUV)], 40u, _242);
+ float4 _147 = FragColor;
+ float2 _149 = _147.xy + queried;
+ FragColor.x = _149.x;
+ FragColor.y = _149.y;
+ int _157 = i + 20;
+ int _160;
+ spvTextureSize(uSamplers[NonUniformResourceIndex(_157)], 0u, _160);
+ FragColor.x += float(int(_160));
+ int _172 = i + 20;
+ int _176;
+ spvTextureSize(uSamplersMS[NonUniformResourceIndex(_172)], 0u, _176);
+ FragColor.y += float(int(_176));
+ int _184 = i + 20;
+ uint _187_dummy_parameter;
+ float4 _189 = FragColor;
+ float2 _191 = _189.xy + float2(int2(spvTextureSize(uSamplers[NonUniformResourceIndex(_184)], uint(0), _187_dummy_parameter)));
+ FragColor.x = _191.x;
+ FragColor.y = _191.y;
+ int _202 = i + 50;
+ FragColor += uImages[NonUniformResourceIndex(_202)][int2(vUV)].xxxx;
+ int _213 = i + 20;
+ uint _216_dummy_parameter;
+ float4 _218 = FragColor;
+ float2 _220 = _218.xy + float2(int2(spvImageSize(uImages[NonUniformResourceIndex(_213)], _216_dummy_parameter)));
+ FragColor.x = _220.x;
+ FragColor.y = _220.y;
+ int _227 = i + 60;
+ uImages[NonUniformResourceIndex(_227)][int2(vUV)] = 50.0f.x;
+ int _240 = i + 70;
+ uint _248;
+ InterlockedAdd(uImagesU32[NonUniformResourceIndex(_240)][int2(vUV)], 40u, _248);
}
SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input)
diff --git a/reference/shaders-hlsl/frag/unorm-snorm-packing.frag b/reference/shaders-hlsl/frag/unorm-snorm-packing.frag
index 0dd9ed3f..95786b93 100644
--- a/reference/shaders-hlsl/frag/unorm-snorm-packing.frag
+++ b/reference/shaders-hlsl/frag/unorm-snorm-packing.frag
@@ -82,9 +82,11 @@ void frag_main()
FP32Out = spvUnpackUnorm4x8(UNORM8);
FP32Out = spvUnpackSnorm4x8(SNORM8);
float2 _21 = spvUnpackUnorm2x16(UNORM16);
- FP32Out = float4(_21.x, _21.y, FP32Out.z, FP32Out.w);
- float2 _26 = spvUnpackSnorm2x16(SNORM16);
- FP32Out = float4(_26.x, _26.y, FP32Out.z, FP32Out.w);
+ FP32Out.x = _21.x;
+ FP32Out.y = _21.y;
+ float2 _31 = spvUnpackSnorm2x16(SNORM16);
+ FP32Out.x = _31.x;
+ FP32Out.y = _31.y;
UNORM8Out = spvPackUnorm4x8(FP32);
SNORM8Out = spvPackSnorm4x8(FP32);
UNORM16Out = spvPackUnorm2x16(FP32.xy);
diff --git a/reference/shaders-msl-no-opt/comp/bitcast-16bit-2.invalid.comp b/reference/shaders-msl-no-opt/comp/bitcast-16bit-2.invalid.comp
index 815599cf..fa65e3bb 100644
--- a/reference/shaders-msl-no-opt/comp/bitcast-16bit-2.invalid.comp
+++ b/reference/shaders-msl-no-opt/comp/bitcast-16bit-2.invalid.comp
@@ -23,9 +23,13 @@ constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u);
kernel void main0(device SSBO1& _21 [[buffer(0)]], device SSBO0& _29 [[buffer(1)]], constant UBO& _40 [[buffer(2)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]])
{
uint ident = gl_GlobalInvocationID.x;
- short2 _47 = as_type<short2>(((device int*)&_29.inputs[ident])[0u]) + as_type<short2>(_40.const0.xy);
- _21.outputs[ident] = short4(_47.x, _47.y, _21.outputs[ident].z, _21.outputs[ident].w);
- short2 _66 = short2(as_type<ushort2>(uint(((device int*)&_29.inputs[ident])[1u])) - as_type<ushort2>(_40.const0.zw));
- _21.outputs[ident] = short4(_21.outputs[ident].x, _21.outputs[ident].y, _66.x, _66.y);
+ int _33 = ((device int*)&_29.inputs[ident])[0u];
+ short2 _47 = as_type<short2>(_33) + as_type<short2>(_40.const0.xy);
+ ((device short*)&_21.outputs[ident])[0u] = _47.x;
+ ((device short*)&_21.outputs[ident])[1u] = _47.y;
+ int _57 = ((device int*)&_29.inputs[ident])[1u];
+ short2 _67 = short2(as_type<ushort2>(uint(_57)) - as_type<ushort2>(_40.const0.zw));
+ ((device short*)&_21.outputs[ident])[2u] = _67.x;
+ ((device short*)&_21.outputs[ident])[3u] = _67.y;
}
diff --git a/reference/shaders-msl-no-opt/vert/functions_nested.vert b/reference/shaders-msl-no-opt/vert/functions_nested.vert
index 5345a3c1..8809dbd0 100644
--- a/reference/shaders-msl-no-opt/vert/functions_nested.vert
+++ b/reference/shaders-msl-no-opt/vert/functions_nested.vert
@@ -169,7 +169,8 @@ void vs_adjust(thread float4& dst_reg0, thread float4& dst_reg1, thread float4&
tmp0.y = float4(dot(float4(in_pos.xyz, 1.0), v_309.vc[5])).y;
tmp0.z = float4(dot(float4(in_pos.xyz, 1.0), v_309.vc[6])).z;
float4 tmp1;
- tmp1 = float4(in_tc0.xy.x, in_tc0.xy.y, tmp1.z, tmp1.w);
+ tmp1.x = in_tc0.xy.x;
+ tmp1.y = in_tc0.xy.y;
tmp1.z = v_309.vc[15].x;
dst_reg7.y = float4(dot(float4(tmp1.xyz, 1.0), v_309.vc[8])).y;
dst_reg7.x = float4(dot(float4(tmp1.xyz, 1.0), v_309.vc[7])).x;
diff --git a/reference/shaders-msl/comp/ray-query.spv14.vk.ios.msl24.comp b/reference/shaders-msl/comp/ray-query.spv14.vk.ios.msl24.comp
index fdee9d6c..64c993d4 100644
--- a/reference/shaders-msl/comp/ray-query.spv14.vk.ios.msl24.comp
+++ b/reference/shaders-msl/comp/ray-query.spv14.vk.ios.msl24.comp
@@ -55,16 +55,17 @@ kernel void main0(constant Params& _18 [[buffer(1)]], acceleration_structure<ins
int _97 = q.get_committed_primitive_id();
ival = _97;
float2 _100 = q2[0].get_candidate_triangle_barycentric_coord();
- fvals = float3(_100.x, _100.y, fvals.z);
- bool _103 = q.is_committed_triangle_front_facing();
- res = _103;
- float3 _104 = q.get_candidate_ray_direction();
- fvals = _104;
- float3 _106 = q2[0].get_committed_ray_origin();
- fvals = _106;
- float4x3 _110 = q.get_candidate_object_to_world_transform();
- float4x3 matrices = _110;
- float4x3 _112 = q2[1].get_committed_world_to_object_transform();
- matrices = _112;
+ fvals.x = _100.x;
+ fvals.y = _100.y;
+ bool _107 = q.is_committed_triangle_front_facing();
+ res = _107;
+ float3 _108 = q.get_candidate_ray_direction();
+ fvals = _108;
+ float3 _110 = q2[0].get_committed_ray_origin();
+ fvals = _110;
+ float4x3 _114 = q.get_candidate_object_to_world_transform();
+ float4x3 matrices = _114;
+ float4x3 _116 = q2[1].get_committed_world_to_object_transform();
+ matrices = _116;
}
diff --git a/reference/shaders-msl/frag/packed-expression-vector-shuffle.frag b/reference/shaders-msl/frag/packed-expression-vector-shuffle.frag
index dc894742..2ed36935 100644
--- a/reference/shaders-msl/frag/packed-expression-vector-shuffle.frag
+++ b/reference/shaders-msl/frag/packed-expression-vector-shuffle.frag
@@ -18,7 +18,9 @@ fragment main0_out main0(constant UBO& _15 [[buffer(0)]])
{
main0_out out = {};
float4 f = float4(1.0);
- f = float4(_15.color[0], _15.color[1], _15.color[2], f.w);
+ f.x = _15.color[0];
+ f.y = _15.color[1];
+ f.z = _15.color[2];
out.FragColor = f;
return out;
}
diff --git a/reference/shaders-no-opt/comp/bitcast-16bit-2.invalid.comp b/reference/shaders-no-opt/comp/bitcast-16bit-2.invalid.comp
index 78a12552..fb733ff3 100644
--- a/reference/shaders-no-opt/comp/bitcast-16bit-2.invalid.comp
+++ b/reference/shaders-no-opt/comp/bitcast-16bit-2.invalid.comp
@@ -33,9 +33,13 @@ layout(binding = 2, std140) uniform UBO
void main()
{
uint ident = gl_GlobalInvocationID.x;
- i16vec2 _47 = unpackInt2x16(_29.inputs[ident].x) + float16BitsToInt16(_40.const0.xy);
- _21.outputs[ident] = i16vec4(_47.x, _47.y, _21.outputs[ident].z, _21.outputs[ident].w);
- i16vec2 _66 = i16vec2(unpackUint2x16(uint(_29.inputs[ident].y)) - float16BitsToUint16(_40.const0.zw));
- _21.outputs[ident] = i16vec4(_21.outputs[ident].x, _21.outputs[ident].y, _66.x, _66.y);
+ int _33 = _29.inputs[ident].x;
+ i16vec2 _47 = unpackInt2x16(_33) + float16BitsToInt16(_40.const0.xy);
+ _21.outputs[ident].x = _47.x;
+ _21.outputs[ident].y = _47.y;
+ int _57 = _29.inputs[ident].y;
+ i16vec2 _67 = i16vec2(unpackUint2x16(uint(_57)) - float16BitsToUint16(_40.const0.zw));
+ _21.outputs[ident].z = _67.x;
+ _21.outputs[ident].w = _67.y;
}
diff --git a/reference/opt/shaders-ue4/asm/tesc/hs-incorrect-base-type.asm.tesc b/reference/shaders-ue4/asm/tesc/hs-incorrect-base-type.invalid.asm.tesc
index ad66d550..2748b497 100644
--- a/reference/opt/shaders-ue4/asm/tesc/hs-incorrect-base-type.asm.tesc
+++ b/reference/shaders-ue4/asm/tesc/hs-incorrect-base-type.invalid.asm.tesc
@@ -263,7 +263,7 @@ struct type_StructuredBuffer_v4float
float4 _m0[1];
};
-constant float4 _602 = {};
+constant float4 _142 = {};
struct main0_out
{
@@ -328,7 +328,7 @@ kernel void main0(main0_in in [[stage_in]], constant type_View& View [[buffer(0)
float4 _328 = float4(param_var_I[_313].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz, 0.0);
float4 _336 = float4(param_var_I[_315].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz, 0.0);
float4 _344 = float4(param_var_I[_316].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz, 0.0);
- spvUnsafeArray<float4, 3> _392 = spvUnsafeArray<float4, 3>({ param_var_I[gl_InvocationID].Position, ((((float4(2.0) * param_var_I[gl_InvocationID].Position) + param_var_I[_313].Position) - (float4(dot(param_var_I[_313].Position - param_var_I[gl_InvocationID].Position, _301)) * _301)) + (((float4(2.0) * param_var_I[_315].Position) + param_var_I[_316].Position) - (float4(dot(param_var_I[_316].Position - param_var_I[_315].Position, _336)) * _336))) * float4(0.16666667163372039794921875), ((((float4(2.0) * param_var_I[_313].Position) + param_var_I[gl_InvocationID].Position) - (float4(dot(param_var_I[gl_InvocationID].Position - param_var_I[_313].Position, _328)) * _328)) + (((float4(2.0) * param_var_I[_316].Position) + param_var_I[_315].Position) - (float4(dot(param_var_I[_315].Position - param_var_I[_316].Position, _344)) * _344))) * float4(0.16666667163372039794921875) });
+ spvUnsafeArray<float4, 3> _392 = spvUnsafeArray<float4, 3>({ param_var_I[gl_InvocationID].Position, (((((float4(2.0) * param_var_I[gl_InvocationID].Position) + param_var_I[_313].Position) - (float4(dot(param_var_I[_313].Position - param_var_I[gl_InvocationID].Position, _301)) * _301)) * float4(0.3333333432674407958984375)) + ((((float4(2.0) * param_var_I[_315].Position) + param_var_I[_316].Position) - (float4(dot(param_var_I[_316].Position - param_var_I[_315].Position, _336)) * _336)) * float4(0.3333333432674407958984375))) * float4(0.5), (((((float4(2.0) * param_var_I[_313].Position) + param_var_I[gl_InvocationID].Position) - (float4(dot(param_var_I[gl_InvocationID].Position - param_var_I[_313].Position, _328)) * _328)) * float4(0.3333333432674407958984375)) + ((((float4(2.0) * param_var_I[_316].Position) + param_var_I[_315].Position) - (float4(dot(param_var_I[_315].Position - param_var_I[_316].Position, _344)) * _344)) * float4(0.3333333432674407958984375))) * float4(0.5) });
gl_out[gl_InvocationID].out_var_TEXCOORD10_centroid = param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld0;
gl_out[gl_InvocationID].out_var_TEXCOORD11_centroid = param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2;
gl_out[gl_InvocationID].out_var_COLOR0 = param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.Color;
@@ -346,7 +346,7 @@ kernel void main0(main0_in in [[stage_in]], constant type_View& View [[buffer(0)
if (gl_InvocationID == 0u)
{
float4 _450 = (((((temp_var_hullMainRetVal[0u].WorldPosition[1] + temp_var_hullMainRetVal[0u].WorldPosition[2]) + temp_var_hullMainRetVal[1u].WorldPosition[1]) + temp_var_hullMainRetVal[1u].WorldPosition[2]) + temp_var_hullMainRetVal[2u].WorldPosition[1]) + temp_var_hullMainRetVal[2u].WorldPosition[2]) * float4(0.16666667163372039794921875);
- float4 _463 = _602;
+ float4 _463 = _142;
_463.x = 0.5 * (temp_var_hullMainRetVal[1u].TessellationMultiplier + temp_var_hullMainRetVal[2u].TessellationMultiplier);
float4 _469 = _463;
_469.y = 0.5 * (temp_var_hullMainRetVal[2u].TessellationMultiplier + temp_var_hullMainRetVal[0u].TessellationMultiplier);
diff --git a/reference/opt/shaders-ue4/asm/tesc/hs-input-array-access.asm.tesc b/reference/shaders-ue4/asm/tesc/hs-input-array-access.invalid.asm.tesc
index 23d82864..6aadcefe 100644
--- a/reference/opt/shaders-ue4/asm/tesc/hs-input-array-access.asm.tesc
+++ b/reference/shaders-ue4/asm/tesc/hs-input-array-access.invalid.asm.tesc
@@ -304,7 +304,7 @@ struct type_Primitive
float4 Primitive_CustomPrimitiveData[4];
};
-constant float4 _613 = {};
+constant float4 _140 = {};
struct main0_out
{
@@ -391,7 +391,7 @@ kernel void main0(main0_in in [[stage_in]], constant type_View& View [[buffer(0)
float4 _336 = float4(param_var_I[_254].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz, 0.0);
float4 _344 = float4(param_var_I[_256].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz, 0.0);
float4 _352 = float4(param_var_I[_257].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz, 0.0);
- spvUnsafeArray<float4, 3> _402 = spvUnsafeArray<float4, 3>({ param_var_I[gl_InvocationID].Position, ((((float4(2.0) * param_var_I[gl_InvocationID].Position) + param_var_I[_254].Position) - (float4(dot(param_var_I[_254].Position - param_var_I[gl_InvocationID].Position, _247)) * _247)) + (((float4(2.0) * param_var_I[_256].Position) + param_var_I[_257].Position) - (float4(dot(param_var_I[_257].Position - param_var_I[_256].Position, _344)) * _344))) * float4(0.16666667163372039794921875), ((((float4(2.0) * param_var_I[_254].Position) + param_var_I[gl_InvocationID].Position) - (float4(dot(param_var_I[gl_InvocationID].Position - param_var_I[_254].Position, _336)) * _336)) + (((float4(2.0) * param_var_I[_257].Position) + param_var_I[_256].Position) - (float4(dot(param_var_I[_256].Position - param_var_I[_257].Position, _352)) * _352))) * float4(0.16666667163372039794921875) });
+ spvUnsafeArray<float4, 3> _402 = spvUnsafeArray<float4, 3>({ param_var_I[gl_InvocationID].Position, (((((float4(2.0) * param_var_I[gl_InvocationID].Position) + param_var_I[_254].Position) - (float4(dot(param_var_I[_254].Position - param_var_I[gl_InvocationID].Position, _247)) * _247)) * float4(0.3333333432674407958984375)) + ((((float4(2.0) * param_var_I[_256].Position) + param_var_I[_257].Position) - (float4(dot(param_var_I[_257].Position - param_var_I[_256].Position, _344)) * _344)) * float4(0.3333333432674407958984375))) * float4(0.5), (((((float4(2.0) * param_var_I[_254].Position) + param_var_I[gl_InvocationID].Position) - (float4(dot(param_var_I[gl_InvocationID].Position - param_var_I[_254].Position, _336)) * _336)) * float4(0.3333333432674407958984375)) + ((((float4(2.0) * param_var_I[_257].Position) + param_var_I[_256].Position) - (float4(dot(param_var_I[_256].Position - param_var_I[_257].Position, _352)) * _352)) * float4(0.3333333432674407958984375))) * float4(0.5) });
gl_out[gl_InvocationID].out_var_TEXCOORD10_centroid = param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld0;
gl_out[gl_InvocationID].out_var_TEXCOORD11_centroid = param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2;
gl_out[gl_InvocationID].out_var_VS_To_DS_Position = param_var_I[gl_InvocationID].Position;
@@ -414,7 +414,7 @@ kernel void main0(main0_in in [[stage_in]], constant type_View& View [[buffer(0)
if (gl_InvocationID == 0u)
{
float4 _461 = (((((temp_var_hullMainRetVal[0u].WorldPosition[1] + temp_var_hullMainRetVal[0u].WorldPosition[2]) + temp_var_hullMainRetVal[1u].WorldPosition[1]) + temp_var_hullMainRetVal[1u].WorldPosition[2]) + temp_var_hullMainRetVal[2u].WorldPosition[1]) + temp_var_hullMainRetVal[2u].WorldPosition[2]) * float4(0.16666667163372039794921875);
- float4 _474 = _613;
+ float4 _474 = _140;
_474.x = 0.5 * (temp_var_hullMainRetVal[1u].TessellationMultiplier + temp_var_hullMainRetVal[2u].TessellationMultiplier);
float4 _480 = _474;
_480.y = 0.5 * (temp_var_hullMainRetVal[2u].TessellationMultiplier + temp_var_hullMainRetVal[0u].TessellationMultiplier);
diff --git a/reference/opt/shaders-ue4/asm/tesc/hs-texcoord-array.asm.tesc b/reference/shaders-ue4/asm/tesc/hs-texcoord-array.invalid.asm.tesc
index 247fc011..8c8ebf55 100644
--- a/reference/opt/shaders-ue4/asm/tesc/hs-texcoord-array.asm.tesc
+++ b/reference/shaders-ue4/asm/tesc/hs-texcoord-array.invalid.asm.tesc
@@ -286,7 +286,7 @@ struct type_Primitive
float4 Primitive_CustomPrimitiveData[4];
};
-constant float4 _537 = {};
+constant float4 _127 = {};
struct main0_out
{
@@ -343,7 +343,7 @@ kernel void main0(main0_in in [[stage_in]], constant type_View& View [[buffer(0)
float4 _269 = float4(param_var_I[_254].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz, 0.0);
float4 _277 = float4(param_var_I[_256].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz, 0.0);
float4 _285 = float4(param_var_I[_257].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz, 0.0);
- spvUnsafeArray<float4, 3> _333 = spvUnsafeArray<float4, 3>({ param_var_I[gl_InvocationID].Position, ((((float4(2.0) * param_var_I[gl_InvocationID].Position) + param_var_I[_254].Position) - (float4(dot(param_var_I[_254].Position - param_var_I[gl_InvocationID].Position, _247)) * _247)) + (((float4(2.0) * param_var_I[_256].Position) + param_var_I[_257].Position) - (float4(dot(param_var_I[_257].Position - param_var_I[_256].Position, _277)) * _277))) * float4(0.16666667163372039794921875), ((((float4(2.0) * param_var_I[_254].Position) + param_var_I[gl_InvocationID].Position) - (float4(dot(param_var_I[gl_InvocationID].Position - param_var_I[_254].Position, _269)) * _269)) + (((float4(2.0) * param_var_I[_257].Position) + param_var_I[_256].Position) - (float4(dot(param_var_I[_256].Position - param_var_I[_257].Position, _285)) * _285))) * float4(0.16666667163372039794921875) });
+ spvUnsafeArray<float4, 3> _333 = spvUnsafeArray<float4, 3>({ param_var_I[gl_InvocationID].Position, (((((float4(2.0) * param_var_I[gl_InvocationID].Position) + param_var_I[_254].Position) - (float4(dot(param_var_I[_254].Position - param_var_I[gl_InvocationID].Position, _247)) * _247)) * float4(0.3333333432674407958984375)) + ((((float4(2.0) * param_var_I[_256].Position) + param_var_I[_257].Position) - (float4(dot(param_var_I[_257].Position - param_var_I[_256].Position, _277)) * _277)) * float4(0.3333333432674407958984375))) * float4(0.5), (((((float4(2.0) * param_var_I[_254].Position) + param_var_I[gl_InvocationID].Position) - (float4(dot(param_var_I[gl_InvocationID].Position - param_var_I[_254].Position, _269)) * _269)) * float4(0.3333333432674407958984375)) + ((((float4(2.0) * param_var_I[_257].Position) + param_var_I[_256].Position) - (float4(dot(param_var_I[_256].Position - param_var_I[_257].Position, _285)) * _285)) * float4(0.3333333432674407958984375))) * float4(0.5) });
gl_out[gl_InvocationID].out_var_TEXCOORD10_centroid = param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld0;
gl_out[gl_InvocationID].out_var_TEXCOORD11_centroid = param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2;
gl_out[gl_InvocationID].out_var_COLOR0 = param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.Color;
@@ -358,7 +358,7 @@ kernel void main0(main0_in in [[stage_in]], constant type_View& View [[buffer(0)
if (gl_InvocationID == 0u)
{
float4 _385 = (((((temp_var_hullMainRetVal[0u].WorldPosition[1] + temp_var_hullMainRetVal[0u].WorldPosition[2]) + temp_var_hullMainRetVal[1u].WorldPosition[1]) + temp_var_hullMainRetVal[1u].WorldPosition[2]) + temp_var_hullMainRetVal[2u].WorldPosition[1]) + temp_var_hullMainRetVal[2u].WorldPosition[2]) * float4(0.16666667163372039794921875);
- float4 _398 = _537;
+ float4 _398 = _127;
_398.x = 0.5 * (temp_var_hullMainRetVal[1u].TessellationMultiplier + temp_var_hullMainRetVal[2u].TessellationMultiplier);
float4 _404 = _398;
_404.y = 0.5 * (temp_var_hullMainRetVal[2u].TessellationMultiplier + temp_var_hullMainRetVal[0u].TessellationMultiplier);
diff --git a/reference/opt/shaders-ue4/asm/tesc/tess-factor-must-be-threadgroup.asm.tesc b/reference/shaders-ue4/asm/tesc/tess-factor-must-be-threadgroup.invalid.asm.tesc
index 13ea8bb7..04f5a1d3 100644
--- a/reference/opt/shaders-ue4/asm/tesc/tess-factor-must-be-threadgroup.asm.tesc
+++ b/reference/shaders-ue4/asm/tesc/tess-factor-must-be-threadgroup.invalid.asm.tesc
@@ -115,7 +115,7 @@ struct type_Material
float4 Material_ScalarExpressions[1];
};
-constant float4 _182 = {};
+constant float4 _88 = {};
struct main0_out
{
@@ -160,7 +160,7 @@ kernel void main0(main0_in in [[stage_in]], constant type_Primitive& Primitive [
threadgroup_barrier(mem_flags::mem_device | mem_flags::mem_threadgroup);
if (gl_InvocationID == 0u)
{
- float4 _154 = _182;
+ float4 _154 = _88;
_154.x = 0.5 * (temp_var_hullMainRetVal[1u].TessellationMultiplier + temp_var_hullMainRetVal[2u].TessellationMultiplier);
float4 _160 = _154;
_160.y = 0.5 * (temp_var_hullMainRetVal[2u].TessellationMultiplier + temp_var_hullMainRetVal[0u].TessellationMultiplier);
diff --git a/reference/shaders/vulkan/comp/ray-query.nocompat.spv14.vk.comp.vk b/reference/shaders/vulkan/comp/ray-query.nocompat.spv14.vk.comp.vk
index 0232f3dc..fbe5e3d9 100644
--- a/reference/shaders/vulkan/comp/ray-query.nocompat.spv14.vk.comp.vk
+++ b/reference/shaders/vulkan/comp/ray-query.nocompat.spv14.vk.comp.vk
@@ -56,16 +56,17 @@ void main()
int _100 = rayQueryGetIntersectionPrimitiveIndexEXT(q, bool(1));
ival = _100;
vec2 _103 = rayQueryGetIntersectionBarycentricsEXT(q2[0], bool(0));
- fvals = vec3(_103.x, _103.y, fvals.z);
- bool _106 = rayQueryGetIntersectionFrontFaceEXT(q, bool(1));
- res = _106;
- vec3 _107 = rayQueryGetIntersectionObjectRayDirectionEXT(q, bool(0));
- fvals = _107;
- vec3 _109 = rayQueryGetIntersectionObjectRayOriginEXT(q2[0], bool(1));
- fvals = _109;
- mat4x3 _113 = rayQueryGetIntersectionObjectToWorldEXT(q, bool(0));
- mat4x3 matrices = _113;
- mat4x3 _115 = rayQueryGetIntersectionWorldToObjectEXT(q2[1], bool(1));
- matrices = _115;
+ fvals.x = _103.x;
+ fvals.y = _103.y;
+ bool _110 = rayQueryGetIntersectionFrontFaceEXT(q, bool(1));
+ res = _110;
+ vec3 _111 = rayQueryGetIntersectionObjectRayDirectionEXT(q, bool(0));
+ fvals = _111;
+ vec3 _113 = rayQueryGetIntersectionObjectRayOriginEXT(q2[0], bool(1));
+ fvals = _113;
+ mat4x3 _117 = rayQueryGetIntersectionObjectToWorldEXT(q, bool(0));
+ mat4x3 matrices = _117;
+ mat4x3 _119 = rayQueryGetIntersectionWorldToObjectEXT(q2[1], bool(1));
+ matrices = _119;
}
diff --git a/reference/shaders/vulkan/frag/nonuniform-qualifier.vk.nocompat.frag.vk b/reference/shaders/vulkan/frag/nonuniform-qualifier.vk.nocompat.frag.vk
index bd46cb1f..9a7862a4 100644
--- a/reference/shaders/vulkan/frag/nonuniform-qualifier.vk.nocompat.frag.vk
+++ b/reference/shaders/vulkan/frag/nonuniform-qualifier.vk.nocompat.frag.vk
@@ -46,23 +46,29 @@ void main()
vec2 queried = textureQueryLod(nonuniformEXT(sampler2D(uSamplers[i + 10], uSamps[i + 40])), vUV);
int _139 = i + 10;
queried += textureQueryLod(uCombinedSamplers[nonuniformEXT(_139)], vUV);
- vec2 _149 = FragColor.xy + queried;
- FragColor = vec4(_149.x, _149.y, FragColor.z, FragColor.w);
- int _154 = i + 20;
- FragColor.x += float(textureQueryLevels(uSamplers[nonuniformEXT(_154)]));
- int _170 = i + 20;
- FragColor.y += float(textureSamples(uSamplersMS[nonuniformEXT(_170)]));
- int _182 = i + 20;
- vec2 _189 = FragColor.xy + vec2(textureSize(uSamplers[nonuniformEXT(_182)], 0));
- FragColor = vec4(_189.x, _189.y, FragColor.z, FragColor.w);
- int _198 = i + 50;
- FragColor += imageLoad(uImages[nonuniformEXT(_198)], ivec2(vUV));
- int _209 = i + 20;
- vec2 _216 = FragColor.xy + vec2(imageSize(uImages[nonuniformEXT(_209)]));
- FragColor = vec4(_216.x, _216.y, FragColor.z, FragColor.w);
- int _221 = i + 60;
- imageStore(uImages[nonuniformEXT(_221)], ivec2(vUV), vec4(50.0));
- int _234 = i + 70;
- uint _242 = imageAtomicAdd(uImagesU32[nonuniformEXT(_234)], ivec2(vUV), 40u);
+ vec4 _147 = FragColor;
+ vec2 _149 = _147.xy + queried;
+ FragColor.x = _149.x;
+ FragColor.y = _149.y;
+ int _157 = i + 20;
+ FragColor.x += float(textureQueryLevels(uSamplers[nonuniformEXT(_157)]));
+ int _172 = i + 20;
+ FragColor.y += float(textureSamples(uSamplersMS[nonuniformEXT(_172)]));
+ int _184 = i + 20;
+ vec4 _189 = FragColor;
+ vec2 _191 = _189.xy + vec2(textureSize(uSamplers[nonuniformEXT(_184)], 0));
+ FragColor.x = _191.x;
+ FragColor.y = _191.y;
+ int _202 = i + 50;
+ FragColor += imageLoad(uImages[nonuniformEXT(_202)], ivec2(vUV));
+ int _213 = i + 20;
+ vec4 _218 = FragColor;
+ vec2 _220 = _218.xy + vec2(imageSize(uImages[nonuniformEXT(_213)]));
+ FragColor.x = _220.x;
+ FragColor.y = _220.y;
+ int _227 = i + 60;
+ imageStore(uImages[nonuniformEXT(_227)], ivec2(vUV), vec4(50.0));
+ int _240 = i + 70;
+ uint _248 = imageAtomicAdd(uImagesU32[nonuniformEXT(_240)], ivec2(vUV), 40u);
}
diff --git a/shaders-hlsl/frag/nonuniform-qualifier.nonuniformresource.sm51.frag b/shaders-hlsl/frag/nonuniform-qualifier.nonuniformresource.sm51.frag
index 4ab82e9f..35373279 100644
--- a/shaders-hlsl/frag/nonuniform-qualifier.nonuniformresource.sm51.frag
+++ b/shaders-hlsl/frag/nonuniform-qualifier.nonuniformresource.sm51.frag
@@ -6,9 +6,9 @@ layout(set = 0, binding = 0) uniform texture2D uSamplers[];
layout(set = 1, binding = 0) uniform texture2DMS uSamplersMS[];
layout(set = 2, binding = 4) uniform sampler2D uCombinedSamplers[];
layout(set = 3, binding = 1) uniform sampler uSamps[];
-layout(set = 4, location = 0) flat in int vIndex;
-layout(set = 5, location = 1) in vec2 vUV;
-layout(set = 6, location = 0) out vec4 FragColor;
+layout(location = 0) flat in int vIndex;
+layout(location = 1) in vec2 vUV;
+layout(location = 0) out vec4 FragColor;
layout(r32f, set = 7, binding = 5) uniform image2D uImages[];
layout(r32ui, set = 8, binding = 5) uniform uimage2D uImagesU32[];
diff --git a/shaders-ue4/asm/tesc/hs-incorrect-base-type.asm.tesc b/shaders-ue4/asm/tesc/hs-incorrect-base-type.invalid.asm.tesc
index 4c70e14c..4c70e14c 100644
--- a/shaders-ue4/asm/tesc/hs-incorrect-base-type.asm.tesc
+++ b/shaders-ue4/asm/tesc/hs-incorrect-base-type.invalid.asm.tesc
diff --git a/shaders-ue4/asm/tesc/hs-input-array-access.asm.tesc b/shaders-ue4/asm/tesc/hs-input-array-access.invalid.asm.tesc
index a146896b..a146896b 100644
--- a/shaders-ue4/asm/tesc/hs-input-array-access.asm.tesc
+++ b/shaders-ue4/asm/tesc/hs-input-array-access.invalid.asm.tesc
diff --git a/shaders-ue4/asm/tesc/hs-texcoord-array.asm.tesc b/shaders-ue4/asm/tesc/hs-texcoord-array.invalid.asm.tesc
index 1a9b95e0..1a9b95e0 100644
--- a/shaders-ue4/asm/tesc/hs-texcoord-array.asm.tesc
+++ b/shaders-ue4/asm/tesc/hs-texcoord-array.invalid.asm.tesc
diff --git a/shaders-ue4/asm/tesc/tess-factor-must-be-threadgroup.asm.tesc b/shaders-ue4/asm/tesc/tess-factor-must-be-threadgroup.invalid.asm.tesc
index 98216e79..98216e79 100644
--- a/shaders-ue4/asm/tesc/tess-factor-must-be-threadgroup.asm.tesc
+++ b/shaders-ue4/asm/tesc/tess-factor-must-be-threadgroup.invalid.asm.tesc
diff --git a/spirv.h b/spirv.h
index 949f1980..c15736e2 100644
--- a/spirv.h
+++ b/spirv.h
@@ -53,12 +53,12 @@
typedef unsigned int SpvId;
-#define SPV_VERSION 0x10500
-#define SPV_REVISION 4
+#define SPV_VERSION 0x10600
+#define SPV_REVISION 1
static const unsigned int SpvMagicNumber = 0x07230203;
-static const unsigned int SpvVersion = 0x00010500;
-static const unsigned int SpvRevision = 4;
+static const unsigned int SpvVersion = 0x00010600;
+static const unsigned int SpvRevision = 1;
static const unsigned int SpvOpCodeMask = 0xffff;
static const unsigned int SpvWordCountShift = 16;
@@ -69,6 +69,7 @@ typedef enum SpvSourceLanguage_ {
SpvSourceLanguageOpenCL_C = 3,
SpvSourceLanguageOpenCL_CPP = 4,
SpvSourceLanguageHLSL = 5,
+ SpvSourceLanguageCPP_for_OpenCL = 6,
SpvSourceLanguageMax = 0x7fffffff,
} SpvSourceLanguage;
@@ -154,6 +155,7 @@ typedef enum SpvExecutionMode_ {
SpvExecutionModeSubgroupsPerWorkgroupId = 37,
SpvExecutionModeLocalSizeId = 38,
SpvExecutionModeLocalSizeHintId = 39,
+ SpvExecutionModeSubgroupUniformControlFlowKHR = 4421,
SpvExecutionModePostDepthCoverage = 4446,
SpvExecutionModeDenormPreserve = 4459,
SpvExecutionModeDenormFlushToZero = 4460,
@@ -172,10 +174,16 @@ typedef enum SpvExecutionMode_ {
SpvExecutionModeSampleInterlockUnorderedEXT = 5369,
SpvExecutionModeShadingRateInterlockOrderedEXT = 5370,
SpvExecutionModeShadingRateInterlockUnorderedEXT = 5371,
+ SpvExecutionModeSharedLocalMemorySizeINTEL = 5618,
+ SpvExecutionModeRoundingModeRTPINTEL = 5620,
+ SpvExecutionModeRoundingModeRTNINTEL = 5621,
+ SpvExecutionModeFloatingPointModeALTINTEL = 5622,
+ SpvExecutionModeFloatingPointModeIEEEINTEL = 5623,
SpvExecutionModeMaxWorkgroupSizeINTEL = 5893,
SpvExecutionModeMaxWorkDimINTEL = 5894,
SpvExecutionModeNoGlobalOffsetINTEL = 5895,
SpvExecutionModeNumSIMDWorkitemsINTEL = 5896,
+ SpvExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,
SpvExecutionModeMax = 0x7fffffff,
} SpvExecutionMode;
@@ -208,6 +216,8 @@ typedef enum SpvStorageClass_ {
SpvStorageClassPhysicalStorageBuffer = 5349,
SpvStorageClassPhysicalStorageBufferEXT = 5349,
SpvStorageClassCodeSectionINTEL = 5605,
+ SpvStorageClassDeviceOnlyINTEL = 5936,
+ SpvStorageClassHostOnlyINTEL = 5937,
SpvStorageClassMax = 0x7fffffff,
} SpvStorageClass;
@@ -347,6 +357,8 @@ typedef enum SpvImageOperandsShift_ {
SpvImageOperandsVolatileTexelKHRShift = 11,
SpvImageOperandsSignExtendShift = 12,
SpvImageOperandsZeroExtendShift = 13,
+ SpvImageOperandsNontemporalShift = 14,
+ SpvImageOperandsOffsetsShift = 16,
SpvImageOperandsMax = 0x7fffffff,
} SpvImageOperandsShift;
@@ -370,6 +382,8 @@ typedef enum SpvImageOperandsMask_ {
SpvImageOperandsVolatileTexelKHRMask = 0x00000800,
SpvImageOperandsSignExtendMask = 0x00001000,
SpvImageOperandsZeroExtendMask = 0x00002000,
+ SpvImageOperandsNontemporalMask = 0x00004000,
+ SpvImageOperandsOffsetsMask = 0x00010000,
} SpvImageOperandsMask;
typedef enum SpvFPFastMathModeShift_ {
@@ -378,6 +392,8 @@ typedef enum SpvFPFastMathModeShift_ {
SpvFPFastMathModeNSZShift = 2,
SpvFPFastMathModeAllowRecipShift = 3,
SpvFPFastMathModeFastShift = 4,
+ SpvFPFastMathModeAllowContractFastINTELShift = 16,
+ SpvFPFastMathModeAllowReassocINTELShift = 17,
SpvFPFastMathModeMax = 0x7fffffff,
} SpvFPFastMathModeShift;
@@ -388,6 +404,8 @@ typedef enum SpvFPFastMathModeMask_ {
SpvFPFastMathModeNSZMask = 0x00000004,
SpvFPFastMathModeAllowRecipMask = 0x00000008,
SpvFPFastMathModeFastMask = 0x00000010,
+ SpvFPFastMathModeAllowContractFastINTELMask = 0x00010000,
+ SpvFPFastMathModeAllowReassocINTELMask = 0x00020000,
} SpvFPFastMathModeMask;
typedef enum SpvFPRoundingMode_ {
@@ -401,6 +419,7 @@ typedef enum SpvFPRoundingMode_ {
typedef enum SpvLinkageType_ {
SpvLinkageTypeExport = 0,
SpvLinkageTypeImport = 1,
+ SpvLinkageTypeLinkOnceODR = 2,
SpvLinkageTypeMax = 0x7fffffff,
} SpvLinkageType;
@@ -481,6 +500,7 @@ typedef enum SpvDecoration_ {
SpvDecorationPerPrimitiveNV = 5271,
SpvDecorationPerViewNV = 5272,
SpvDecorationPerTaskNV = 5273,
+ SpvDecorationPerVertexKHR = 5285,
SpvDecorationPerVertexNV = 5285,
SpvDecorationNonUniform = 5300,
SpvDecorationNonUniformEXT = 5300,
@@ -488,12 +508,26 @@ typedef enum SpvDecoration_ {
SpvDecorationRestrictPointerEXT = 5355,
SpvDecorationAliasedPointer = 5356,
SpvDecorationAliasedPointerEXT = 5356,
+ SpvDecorationBindlessSamplerNV = 5398,
+ SpvDecorationBindlessImageNV = 5399,
+ SpvDecorationBoundSamplerNV = 5400,
+ SpvDecorationBoundImageNV = 5401,
+ SpvDecorationSIMTCallINTEL = 5599,
SpvDecorationReferencedIndirectlyINTEL = 5602,
+ SpvDecorationClobberINTEL = 5607,
+ SpvDecorationSideEffectsINTEL = 5608,
+ SpvDecorationVectorComputeVariableINTEL = 5624,
+ SpvDecorationFuncParamIOKindINTEL = 5625,
+ SpvDecorationVectorComputeFunctionINTEL = 5626,
+ SpvDecorationStackCallINTEL = 5627,
+ SpvDecorationGlobalVariableOffsetINTEL = 5628,
SpvDecorationCounterBuffer = 5634,
SpvDecorationHlslCounterBufferGOOGLE = 5634,
SpvDecorationHlslSemanticGOOGLE = 5635,
SpvDecorationUserSemantic = 5635,
SpvDecorationUserTypeGOOGLE = 5636,
+ SpvDecorationFunctionRoundingModeINTEL = 5822,
+ SpvDecorationFunctionDenormModeINTEL = 5823,
SpvDecorationRegisterINTEL = 5825,
SpvDecorationMemoryINTEL = 5826,
SpvDecorationNumbanksINTEL = 5827,
@@ -506,6 +540,18 @@ typedef enum SpvDecoration_ {
SpvDecorationMergeINTEL = 5834,
SpvDecorationBankBitsINTEL = 5835,
SpvDecorationForcePow2DepthINTEL = 5836,
+ SpvDecorationBurstCoalesceINTEL = 5899,
+ SpvDecorationCacheSizeINTEL = 5900,
+ SpvDecorationDontStaticallyCoalesceINTEL = 5901,
+ SpvDecorationPrefetchINTEL = 5902,
+ SpvDecorationStallEnableINTEL = 5905,
+ SpvDecorationFuseLoopsInFunctionINTEL = 5907,
+ SpvDecorationBufferLocationINTEL = 5921,
+ SpvDecorationIOPipeStorageINTEL = 5944,
+ SpvDecorationFunctionFloatingPointModeINTEL = 6080,
+ SpvDecorationSingleElementVectorINTEL = 6085,
+ SpvDecorationVectorComputeCallableFunctionINTEL = 6087,
+ SpvDecorationMediaBlockIOINTEL = 6140,
SpvDecorationMax = 0x7fffffff,
} SpvDecoration;
@@ -590,7 +636,9 @@ typedef enum SpvBuiltIn_ {
SpvBuiltInLayerPerViewNV = 5279,
SpvBuiltInMeshViewCountNV = 5280,
SpvBuiltInMeshViewIndicesNV = 5281,
+ SpvBuiltInBaryCoordKHR = 5286,
SpvBuiltInBaryCoordNV = 5286,
+ SpvBuiltInBaryCoordNoPerspKHR = 5287,
SpvBuiltInBaryCoordNoPerspNV = 5287,
SpvBuiltInFragSizeEXT = 5292,
SpvBuiltInFragmentSizeNV = 5292,
@@ -621,6 +669,7 @@ typedef enum SpvBuiltIn_ {
SpvBuiltInHitTNV = 5332,
SpvBuiltInHitKindKHR = 5333,
SpvBuiltInHitKindNV = 5333,
+ SpvBuiltInCurrentRayTimeNV = 5334,
SpvBuiltInIncomingRayFlagsKHR = 5351,
SpvBuiltInIncomingRayFlagsNV = 5351,
SpvBuiltInRayGeometryIndexKHR = 5352,
@@ -660,6 +709,7 @@ typedef enum SpvLoopControlShift_ {
SpvLoopControlLoopCoalesceINTELShift = 20,
SpvLoopControlMaxInterleavingINTELShift = 21,
SpvLoopControlSpeculatedIterationsINTELShift = 22,
+ SpvLoopControlNoFusionINTELShift = 23,
SpvLoopControlMax = 0x7fffffff,
} SpvLoopControlShift;
@@ -681,6 +731,7 @@ typedef enum SpvLoopControlMask_ {
SpvLoopControlLoopCoalesceINTELMask = 0x00100000,
SpvLoopControlMaxInterleavingINTELMask = 0x00200000,
SpvLoopControlSpeculatedIterationsINTELMask = 0x00400000,
+ SpvLoopControlNoFusionINTELMask = 0x00800000,
} SpvLoopControlMask;
typedef enum SpvFunctionControlShift_ {
@@ -688,6 +739,7 @@ typedef enum SpvFunctionControlShift_ {
SpvFunctionControlDontInlineShift = 1,
SpvFunctionControlPureShift = 2,
SpvFunctionControlConstShift = 3,
+ SpvFunctionControlOptNoneINTELShift = 16,
SpvFunctionControlMax = 0x7fffffff,
} SpvFunctionControlShift;
@@ -697,6 +749,7 @@ typedef enum SpvFunctionControlMask_ {
SpvFunctionControlDontInlineMask = 0x00000002,
SpvFunctionControlPureMask = 0x00000004,
SpvFunctionControlConstMask = 0x00000008,
+ SpvFunctionControlOptNoneINTELMask = 0x00010000,
} SpvFunctionControlMask;
typedef enum SpvMemorySemanticsShift_ {
@@ -877,9 +930,13 @@ typedef enum SpvCapability_ {
SpvCapabilityGroupNonUniformQuad = 68,
SpvCapabilityShaderLayer = 69,
SpvCapabilityShaderViewportIndex = 70,
+ SpvCapabilityUniformDecoration = 71,
SpvCapabilityFragmentShadingRateKHR = 4422,
SpvCapabilitySubgroupBallotKHR = 4423,
SpvCapabilityDrawParameters = 4427,
+ SpvCapabilityWorkgroupMemoryExplicitLayoutKHR = 4428,
+ SpvCapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR = 4429,
+ SpvCapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR = 4430,
SpvCapabilitySubgroupVoteKHR = 4431,
SpvCapabilityStorageBuffer16BitAccess = 4433,
SpvCapabilityStorageUniformBufferBlock16 = 4433,
@@ -922,6 +979,7 @@ typedef enum SpvCapability_ {
SpvCapabilityFragmentFullyCoveredEXT = 5265,
SpvCapabilityMeshShadingNV = 5266,
SpvCapabilityImageFootprintNV = 5282,
+ SpvCapabilityFragmentBarycentricKHR = 5284,
SpvCapabilityFragmentBarycentricNV = 5284,
SpvCapabilityComputeDerivativeGroupQuadsNV = 5288,
SpvCapabilityFragmentDensityEXT = 5291,
@@ -952,6 +1010,7 @@ typedef enum SpvCapability_ {
SpvCapabilityStorageTexelBufferArrayNonUniformIndexing = 5312,
SpvCapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
SpvCapabilityRayTracingNV = 5340,
+ SpvCapabilityRayTracingMotionBlurNV = 5341,
SpvCapabilityVulkanMemoryModel = 5345,
SpvCapabilityVulkanMemoryModelKHR = 5345,
SpvCapabilityVulkanMemoryModelDeviceScope = 5346,
@@ -965,26 +1024,62 @@ typedef enum SpvCapability_ {
SpvCapabilityFragmentShaderShadingRateInterlockEXT = 5372,
SpvCapabilityShaderSMBuiltinsNV = 5373,
SpvCapabilityFragmentShaderPixelInterlockEXT = 5378,
+ SpvCapabilityDemoteToHelperInvocation = 5379,
SpvCapabilityDemoteToHelperInvocationEXT = 5379,
+ SpvCapabilityBindlessTextureNV = 5390,
SpvCapabilitySubgroupShuffleINTEL = 5568,
SpvCapabilitySubgroupBufferBlockIOINTEL = 5569,
SpvCapabilitySubgroupImageBlockIOINTEL = 5570,
SpvCapabilitySubgroupImageMediaBlockIOINTEL = 5579,
+ SpvCapabilityRoundToInfinityINTEL = 5582,
+ SpvCapabilityFloatingPointModeINTEL = 5583,
SpvCapabilityIntegerFunctions2INTEL = 5584,
SpvCapabilityFunctionPointersINTEL = 5603,
SpvCapabilityIndirectReferencesINTEL = 5604,
+ SpvCapabilityAsmINTEL = 5606,
+ SpvCapabilityAtomicFloat32MinMaxEXT = 5612,
+ SpvCapabilityAtomicFloat64MinMaxEXT = 5613,
+ SpvCapabilityAtomicFloat16MinMaxEXT = 5616,
+ SpvCapabilityVectorComputeINTEL = 5617,
+ SpvCapabilityVectorAnyINTEL = 5619,
+ SpvCapabilityExpectAssumeKHR = 5629,
SpvCapabilitySubgroupAvcMotionEstimationINTEL = 5696,
SpvCapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697,
SpvCapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698,
+ SpvCapabilityVariableLengthArrayINTEL = 5817,
+ SpvCapabilityFunctionFloatControlINTEL = 5821,
SpvCapabilityFPGAMemoryAttributesINTEL = 5824,
+ SpvCapabilityFPFastMathModeINTEL = 5837,
+ SpvCapabilityArbitraryPrecisionIntegersINTEL = 5844,
+ SpvCapabilityArbitraryPrecisionFloatingPointINTEL = 5845,
SpvCapabilityUnstructuredLoopControlsINTEL = 5886,
SpvCapabilityFPGALoopControlsINTEL = 5888,
SpvCapabilityKernelAttributesINTEL = 5892,
SpvCapabilityFPGAKernelAttributesINTEL = 5897,
+ SpvCapabilityFPGAMemoryAccessesINTEL = 5898,
+ SpvCapabilityFPGAClusterAttributesINTEL = 5904,
+ SpvCapabilityLoopFuseINTEL = 5906,
+ SpvCapabilityFPGABufferLocationINTEL = 5920,
+ SpvCapabilityArbitraryPrecisionFixedPointINTEL = 5922,
+ SpvCapabilityUSMStorageClassesINTEL = 5935,
+ SpvCapabilityIOPipesINTEL = 5943,
SpvCapabilityBlockingPipesINTEL = 5945,
SpvCapabilityFPGARegINTEL = 5948,
+ SpvCapabilityDotProductInputAll = 6016,
+ SpvCapabilityDotProductInputAllKHR = 6016,
+ SpvCapabilityDotProductInput4x8Bit = 6017,
+ SpvCapabilityDotProductInput4x8BitKHR = 6017,
+ SpvCapabilityDotProductInput4x8BitPacked = 6018,
+ SpvCapabilityDotProductInput4x8BitPackedKHR = 6018,
+ SpvCapabilityDotProduct = 6019,
+ SpvCapabilityDotProductKHR = 6019,
+ SpvCapabilityBitInstructions = 6025,
SpvCapabilityAtomicFloat32AddEXT = 6033,
SpvCapabilityAtomicFloat64AddEXT = 6034,
+ SpvCapabilityLongConstantCompositeINTEL = 6089,
+ SpvCapabilityOptNoneINTEL = 6094,
+ SpvCapabilityAtomicFloat16AddEXT = 6095,
+ SpvCapabilityDebugInfoModuleINTEL = 6114,
SpvCapabilityMax = 0x7fffffff,
} SpvCapability;
@@ -1051,6 +1146,44 @@ typedef enum SpvFragmentShadingRateMask_ {
SpvFragmentShadingRateHorizontal4PixelsMask = 0x00000008,
} SpvFragmentShadingRateMask;
+typedef enum SpvFPDenormMode_ {
+ SpvFPDenormModePreserve = 0,
+ SpvFPDenormModeFlushToZero = 1,
+ SpvFPDenormModeMax = 0x7fffffff,
+} SpvFPDenormMode;
+
+typedef enum SpvFPOperationMode_ {
+ SpvFPOperationModeIEEE = 0,
+ SpvFPOperationModeALT = 1,
+ SpvFPOperationModeMax = 0x7fffffff,
+} SpvFPOperationMode;
+
+typedef enum SpvQuantizationModes_ {
+ SpvQuantizationModesTRN = 0,
+ SpvQuantizationModesTRN_ZERO = 1,
+ SpvQuantizationModesRND = 2,
+ SpvQuantizationModesRND_ZERO = 3,
+ SpvQuantizationModesRND_INF = 4,
+ SpvQuantizationModesRND_MIN_INF = 5,
+ SpvQuantizationModesRND_CONV = 6,
+ SpvQuantizationModesRND_CONV_ODD = 7,
+ SpvQuantizationModesMax = 0x7fffffff,
+} SpvQuantizationModes;
+
+typedef enum SpvOverflowModes_ {
+ SpvOverflowModesWRAP = 0,
+ SpvOverflowModesSAT = 1,
+ SpvOverflowModesSAT_ZERO = 2,
+ SpvOverflowModesSAT_SYM = 3,
+ SpvOverflowModesMax = 0x7fffffff,
+} SpvOverflowModes;
+
+typedef enum SpvPackedVectorFormat_ {
+ SpvPackedVectorFormatPackedVectorFormat4x8Bit = 0,
+ SpvPackedVectorFormatPackedVectorFormat4x8BitKHR = 0,
+ SpvPackedVectorFormatMax = 0x7fffffff,
+} SpvPackedVectorFormat;
+
typedef enum SpvOp_ {
SpvOpNop = 0,
SpvOpUndef = 1,
@@ -1408,6 +1541,18 @@ typedef enum SpvOp_ {
SpvOpConvertUToAccelerationStructureKHR = 4447,
SpvOpIgnoreIntersectionKHR = 4448,
SpvOpTerminateRayKHR = 4449,
+ SpvOpSDot = 4450,
+ SpvOpSDotKHR = 4450,
+ SpvOpUDot = 4451,
+ SpvOpUDotKHR = 4451,
+ SpvOpSUDot = 4452,
+ SpvOpSUDotKHR = 4452,
+ SpvOpSDotAccSat = 4453,
+ SpvOpSDotAccSatKHR = 4453,
+ SpvOpUDotAccSat = 4454,
+ SpvOpUDotAccSatKHR = 4454,
+ SpvOpSUDotAccSat = 4455,
+ SpvOpSUDotAccSatKHR = 4455,
SpvOpTypeRayQueryKHR = 4472,
SpvOpRayQueryInitializeKHR = 4473,
SpvOpRayQueryTerminateKHR = 4474,
@@ -1434,6 +1579,8 @@ typedef enum SpvOp_ {
SpvOpIgnoreIntersectionNV = 5335,
SpvOpTerminateRayNV = 5336,
SpvOpTraceNV = 5337,
+ SpvOpTraceMotionNV = 5338,
+ SpvOpTraceRayMotionNV = 5339,
SpvOpTypeAccelerationStructureKHR = 5341,
SpvOpTypeAccelerationStructureNV = 5341,
SpvOpExecuteCallableNV = 5344,
@@ -1444,8 +1591,16 @@ typedef enum SpvOp_ {
SpvOpCooperativeMatrixLengthNV = 5362,
SpvOpBeginInvocationInterlockEXT = 5364,
SpvOpEndInvocationInterlockEXT = 5365,
+ SpvOpDemoteToHelperInvocation = 5380,
SpvOpDemoteToHelperInvocationEXT = 5380,
SpvOpIsHelperInvocationEXT = 5381,
+ SpvOpConvertUToImageNV = 5391,
+ SpvOpConvertUToSamplerNV = 5392,
+ SpvOpConvertImageToUNV = 5393,
+ SpvOpConvertSamplerToUNV = 5394,
+ SpvOpConvertUToSampledImageNV = 5395,
+ SpvOpConvertSampledImageToUNV = 5396,
+ SpvOpSamplerImageAddressingModeNV = 5397,
SpvOpSubgroupShuffleINTEL = 5571,
SpvOpSubgroupShuffleDownINTEL = 5572,
SpvOpSubgroupShuffleUpINTEL = 5573,
@@ -1470,8 +1625,15 @@ typedef enum SpvOp_ {
SpvOpUSubSatINTEL = 5596,
SpvOpIMul32x16INTEL = 5597,
SpvOpUMul32x16INTEL = 5598,
- SpvOpFunctionPointerINTEL = 5600,
+ SpvOpConstantFunctionPointerINTEL = 5600,
SpvOpFunctionPointerCallINTEL = 5601,
+ SpvOpAsmTargetINTEL = 5609,
+ SpvOpAsmINTEL = 5610,
+ SpvOpAsmCallINTEL = 5611,
+ SpvOpAtomicFMinEXT = 5614,
+ SpvOpAtomicFMaxEXT = 5615,
+ SpvOpAssumeTrueKHR = 5630,
+ SpvOpExpectKHR = 5631,
SpvOpDecorateString = 5632,
SpvOpDecorateStringGOOGLE = 5632,
SpvOpMemberDecorateString = 5633,
@@ -1594,7 +1756,64 @@ typedef enum SpvOp_ {
SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
SpvOpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
+ SpvOpVariableLengthArrayINTEL = 5818,
+ SpvOpSaveMemoryINTEL = 5819,
+ SpvOpRestoreMemoryINTEL = 5820,
+ SpvOpArbitraryFloatSinCosPiINTEL = 5840,
+ SpvOpArbitraryFloatCastINTEL = 5841,
+ SpvOpArbitraryFloatCastFromIntINTEL = 5842,
+ SpvOpArbitraryFloatCastToIntINTEL = 5843,
+ SpvOpArbitraryFloatAddINTEL = 5846,
+ SpvOpArbitraryFloatSubINTEL = 5847,
+ SpvOpArbitraryFloatMulINTEL = 5848,
+ SpvOpArbitraryFloatDivINTEL = 5849,
+ SpvOpArbitraryFloatGTINTEL = 5850,
+ SpvOpArbitraryFloatGEINTEL = 5851,
+ SpvOpArbitraryFloatLTINTEL = 5852,
+ SpvOpArbitraryFloatLEINTEL = 5853,
+ SpvOpArbitraryFloatEQINTEL = 5854,
+ SpvOpArbitraryFloatRecipINTEL = 5855,
+ SpvOpArbitraryFloatRSqrtINTEL = 5856,
+ SpvOpArbitraryFloatCbrtINTEL = 5857,
+ SpvOpArbitraryFloatHypotINTEL = 5858,
+ SpvOpArbitraryFloatSqrtINTEL = 5859,
+ SpvOpArbitraryFloatLogINTEL = 5860,
+ SpvOpArbitraryFloatLog2INTEL = 5861,
+ SpvOpArbitraryFloatLog10INTEL = 5862,
+ SpvOpArbitraryFloatLog1pINTEL = 5863,
+ SpvOpArbitraryFloatExpINTEL = 5864,
+ SpvOpArbitraryFloatExp2INTEL = 5865,
+ SpvOpArbitraryFloatExp10INTEL = 5866,
+ SpvOpArbitraryFloatExpm1INTEL = 5867,
+ SpvOpArbitraryFloatSinINTEL = 5868,
+ SpvOpArbitraryFloatCosINTEL = 5869,
+ SpvOpArbitraryFloatSinCosINTEL = 5870,
+ SpvOpArbitraryFloatSinPiINTEL = 5871,
+ SpvOpArbitraryFloatCosPiINTEL = 5872,
+ SpvOpArbitraryFloatASinINTEL = 5873,
+ SpvOpArbitraryFloatASinPiINTEL = 5874,
+ SpvOpArbitraryFloatACosINTEL = 5875,
+ SpvOpArbitraryFloatACosPiINTEL = 5876,
+ SpvOpArbitraryFloatATanINTEL = 5877,
+ SpvOpArbitraryFloatATanPiINTEL = 5878,
+ SpvOpArbitraryFloatATan2INTEL = 5879,
+ SpvOpArbitraryFloatPowINTEL = 5880,
+ SpvOpArbitraryFloatPowRINTEL = 5881,
+ SpvOpArbitraryFloatPowNINTEL = 5882,
SpvOpLoopControlINTEL = 5887,
+ SpvOpFixedSqrtINTEL = 5923,
+ SpvOpFixedRecipINTEL = 5924,
+ SpvOpFixedRsqrtINTEL = 5925,
+ SpvOpFixedSinINTEL = 5926,
+ SpvOpFixedCosINTEL = 5927,
+ SpvOpFixedSinCosINTEL = 5928,
+ SpvOpFixedSinPiINTEL = 5929,
+ SpvOpFixedCosPiINTEL = 5930,
+ SpvOpFixedSinCosPiINTEL = 5931,
+ SpvOpFixedLogINTEL = 5932,
+ SpvOpFixedExpINTEL = 5933,
+ SpvOpPtrCastToCrossWorkgroupINTEL = 5934,
+ SpvOpCrossWorkgroupCastToPtrINTEL = 5938,
SpvOpReadPipeBlockingINTEL = 5946,
SpvOpWritePipeBlockingINTEL = 5947,
SpvOpFPGARegINTEL = 5949,
@@ -1616,6 +1835,10 @@ typedef enum SpvOp_ {
SpvOpRayQueryGetIntersectionObjectToWorldKHR = 6031,
SpvOpRayQueryGetIntersectionWorldToObjectKHR = 6032,
SpvOpAtomicFAddEXT = 6035,
+ SpvOpTypeBufferSurfaceINTEL = 6086,
+ SpvOpTypeStructContinuedINTEL = 6090,
+ SpvOpConstantCompositeContinuedINTEL = 6091,
+ SpvOpSpecConstantCompositeContinuedINTEL = 6092,
SpvOpMax = 0x7fffffff,
} SpvOp;
@@ -1980,6 +2203,12 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
case SpvOpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break;
case SpvOpIgnoreIntersectionKHR: *hasResult = false; *hasResultType = false; break;
case SpvOpTerminateRayKHR: *hasResult = false; *hasResultType = false; break;
+ case SpvOpSDot: *hasResult = true; *hasResultType = true; break;
+ case SpvOpUDot: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSUDot: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSDotAccSat: *hasResult = true; *hasResultType = true; break;
+ case SpvOpUDotAccSat: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSUDotAccSat: *hasResult = true; *hasResultType = true; break;
case SpvOpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
case SpvOpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
case SpvOpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
@@ -2005,6 +2234,8 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
case SpvOpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
case SpvOpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
case SpvOpTraceNV: *hasResult = false; *hasResultType = false; break;
+ case SpvOpTraceMotionNV: *hasResult = false; *hasResultType = false; break;
+ case SpvOpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
case SpvOpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
case SpvOpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
case SpvOpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
@@ -2014,8 +2245,15 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
case SpvOpCooperativeMatrixLengthNV: *hasResult = true; *hasResultType = true; break;
case SpvOpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
case SpvOpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
- case SpvOpDemoteToHelperInvocationEXT: *hasResult = false; *hasResultType = false; break;
+ case SpvOpDemoteToHelperInvocation: *hasResult = false; *hasResultType = false; break;
case SpvOpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break;
+ case SpvOpConvertUToImageNV: *hasResult = true; *hasResultType = true; break;
+ case SpvOpConvertUToSamplerNV: *hasResult = true; *hasResultType = true; break;
+ case SpvOpConvertImageToUNV: *hasResult = true; *hasResultType = true; break;
+ case SpvOpConvertSamplerToUNV: *hasResult = true; *hasResultType = true; break;
+ case SpvOpConvertUToSampledImageNV: *hasResult = true; *hasResultType = true; break;
+ case SpvOpConvertSampledImageToUNV: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSamplerImageAddressingModeNV: *hasResult = false; *hasResultType = false; break;
case SpvOpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;
@@ -2040,8 +2278,15 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
case SpvOpUSubSatINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
- case SpvOpFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpConstantFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpAsmTargetINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpAsmINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpAsmCallINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpAtomicFMinEXT: *hasResult = true; *hasResultType = true; break;
+ case SpvOpAtomicFMaxEXT: *hasResult = true; *hasResultType = true; break;
+ case SpvOpAssumeTrueKHR: *hasResult = false; *hasResultType = false; break;
+ case SpvOpExpectKHR: *hasResult = true; *hasResultType = true; break;
case SpvOpDecorateString: *hasResult = false; *hasResultType = false; break;
case SpvOpMemberDecorateString: *hasResult = false; *hasResultType = false; break;
case SpvOpVmeImageINTEL: *hasResult = true; *hasResultType = true; break;
@@ -2162,7 +2407,64 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
case SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break;
+ case SpvOpArbitraryFloatSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatCastINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatCastFromIntINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatCastToIntINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatAddINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatSubINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatMulINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatDivINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatGTINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatGEINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatLTINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatLEINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatEQINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatRecipINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatRSqrtINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatCbrtINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatHypotINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatSqrtINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatLogINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatLog2INTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatLog10INTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatLog1pINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatExpINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatExp2INTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatExp10INTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatExpm1INTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatSinINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatCosINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatSinCosINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatSinPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatASinINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatASinPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatACosINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatACosPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatATanINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatATanPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatATan2INTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatPowINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatPowRINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatPowNINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpLoopControlINTEL: *hasResult = false; *hasResultType = false; break;
+ case SpvOpFixedSqrtINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFixedRecipINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFixedRsqrtINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFixedSinINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFixedCosINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFixedSinCosINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFixedSinPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFixedCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFixedSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFixedLogINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFixedExpINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpWritePipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpFPGARegINTEL: *hasResult = true; *hasResultType = true; break;
@@ -2184,6 +2486,10 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
case SpvOpRayQueryGetIntersectionObjectToWorldKHR: *hasResult = true; *hasResultType = true; break;
case SpvOpRayQueryGetIntersectionWorldToObjectKHR: *hasResult = true; *hasResultType = true; break;
case SpvOpAtomicFAddEXT: *hasResult = true; *hasResultType = true; break;
+ case SpvOpTypeBufferSurfaceINTEL: *hasResult = true; *hasResultType = false; break;
+ case SpvOpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
+ case SpvOpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
+ case SpvOpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
}
}
#endif /* SPV_ENABLE_UTILITY_CODE */
diff --git a/spirv.hpp b/spirv.hpp
index 43dd2aae..3d500ebb 100644
--- a/spirv.hpp
+++ b/spirv.hpp
@@ -49,12 +49,12 @@ namespace spv {
typedef unsigned int Id;
-#define SPV_VERSION 0x10500
-#define SPV_REVISION 4
+#define SPV_VERSION 0x10600
+#define SPV_REVISION 1
static const unsigned int MagicNumber = 0x07230203;
-static const unsigned int Version = 0x00010500;
-static const unsigned int Revision = 4;
+static const unsigned int Version = 0x00010600;
+static const unsigned int Revision = 1;
static const unsigned int OpCodeMask = 0xffff;
static const unsigned int WordCountShift = 16;
@@ -65,6 +65,7 @@ enum SourceLanguage {
SourceLanguageOpenCL_C = 3,
SourceLanguageOpenCL_CPP = 4,
SourceLanguageHLSL = 5,
+ SourceLanguageCPP_for_OpenCL = 6,
SourceLanguageMax = 0x7fffffff,
};
@@ -150,6 +151,7 @@ enum ExecutionMode {
ExecutionModeSubgroupsPerWorkgroupId = 37,
ExecutionModeLocalSizeId = 38,
ExecutionModeLocalSizeHintId = 39,
+ ExecutionModeSubgroupUniformControlFlowKHR = 4421,
ExecutionModePostDepthCoverage = 4446,
ExecutionModeDenormPreserve = 4459,
ExecutionModeDenormFlushToZero = 4460,
@@ -168,10 +170,16 @@ enum ExecutionMode {
ExecutionModeSampleInterlockUnorderedEXT = 5369,
ExecutionModeShadingRateInterlockOrderedEXT = 5370,
ExecutionModeShadingRateInterlockUnorderedEXT = 5371,
+ ExecutionModeSharedLocalMemorySizeINTEL = 5618,
+ ExecutionModeRoundingModeRTPINTEL = 5620,
+ ExecutionModeRoundingModeRTNINTEL = 5621,
+ ExecutionModeFloatingPointModeALTINTEL = 5622,
+ ExecutionModeFloatingPointModeIEEEINTEL = 5623,
ExecutionModeMaxWorkgroupSizeINTEL = 5893,
ExecutionModeMaxWorkDimINTEL = 5894,
ExecutionModeNoGlobalOffsetINTEL = 5895,
ExecutionModeNumSIMDWorkitemsINTEL = 5896,
+ ExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,
ExecutionModeMax = 0x7fffffff,
};
@@ -204,6 +212,8 @@ enum StorageClass {
StorageClassPhysicalStorageBuffer = 5349,
StorageClassPhysicalStorageBufferEXT = 5349,
StorageClassCodeSectionINTEL = 5605,
+ StorageClassDeviceOnlyINTEL = 5936,
+ StorageClassHostOnlyINTEL = 5937,
StorageClassMax = 0x7fffffff,
};
@@ -343,6 +353,8 @@ enum ImageOperandsShift {
ImageOperandsVolatileTexelKHRShift = 11,
ImageOperandsSignExtendShift = 12,
ImageOperandsZeroExtendShift = 13,
+ ImageOperandsNontemporalShift = 14,
+ ImageOperandsOffsetsShift = 16,
ImageOperandsMax = 0x7fffffff,
};
@@ -366,6 +378,8 @@ enum ImageOperandsMask {
ImageOperandsVolatileTexelKHRMask = 0x00000800,
ImageOperandsSignExtendMask = 0x00001000,
ImageOperandsZeroExtendMask = 0x00002000,
+ ImageOperandsNontemporalMask = 0x00004000,
+ ImageOperandsOffsetsMask = 0x00010000,
};
enum FPFastMathModeShift {
@@ -374,6 +388,8 @@ enum FPFastMathModeShift {
FPFastMathModeNSZShift = 2,
FPFastMathModeAllowRecipShift = 3,
FPFastMathModeFastShift = 4,
+ FPFastMathModeAllowContractFastINTELShift = 16,
+ FPFastMathModeAllowReassocINTELShift = 17,
FPFastMathModeMax = 0x7fffffff,
};
@@ -384,6 +400,8 @@ enum FPFastMathModeMask {
FPFastMathModeNSZMask = 0x00000004,
FPFastMathModeAllowRecipMask = 0x00000008,
FPFastMathModeFastMask = 0x00000010,
+ FPFastMathModeAllowContractFastINTELMask = 0x00010000,
+ FPFastMathModeAllowReassocINTELMask = 0x00020000,
};
enum FPRoundingMode {
@@ -397,6 +415,7 @@ enum FPRoundingMode {
enum LinkageType {
LinkageTypeExport = 0,
LinkageTypeImport = 1,
+ LinkageTypeLinkOnceODR = 2,
LinkageTypeMax = 0x7fffffff,
};
@@ -477,6 +496,7 @@ enum Decoration {
DecorationPerPrimitiveNV = 5271,
DecorationPerViewNV = 5272,
DecorationPerTaskNV = 5273,
+ DecorationPerVertexKHR = 5285,
DecorationPerVertexNV = 5285,
DecorationNonUniform = 5300,
DecorationNonUniformEXT = 5300,
@@ -484,12 +504,26 @@ enum Decoration {
DecorationRestrictPointerEXT = 5355,
DecorationAliasedPointer = 5356,
DecorationAliasedPointerEXT = 5356,
+ DecorationBindlessSamplerNV = 5398,
+ DecorationBindlessImageNV = 5399,
+ DecorationBoundSamplerNV = 5400,
+ DecorationBoundImageNV = 5401,
+ DecorationSIMTCallINTEL = 5599,
DecorationReferencedIndirectlyINTEL = 5602,
+ DecorationClobberINTEL = 5607,
+ DecorationSideEffectsINTEL = 5608,
+ DecorationVectorComputeVariableINTEL = 5624,
+ DecorationFuncParamIOKindINTEL = 5625,
+ DecorationVectorComputeFunctionINTEL = 5626,
+ DecorationStackCallINTEL = 5627,
+ DecorationGlobalVariableOffsetINTEL = 5628,
DecorationCounterBuffer = 5634,
DecorationHlslCounterBufferGOOGLE = 5634,
DecorationHlslSemanticGOOGLE = 5635,
DecorationUserSemantic = 5635,
DecorationUserTypeGOOGLE = 5636,
+ DecorationFunctionRoundingModeINTEL = 5822,
+ DecorationFunctionDenormModeINTEL = 5823,
DecorationRegisterINTEL = 5825,
DecorationMemoryINTEL = 5826,
DecorationNumbanksINTEL = 5827,
@@ -502,6 +536,18 @@ enum Decoration {
DecorationMergeINTEL = 5834,
DecorationBankBitsINTEL = 5835,
DecorationForcePow2DepthINTEL = 5836,
+ DecorationBurstCoalesceINTEL = 5899,
+ DecorationCacheSizeINTEL = 5900,
+ DecorationDontStaticallyCoalesceINTEL = 5901,
+ DecorationPrefetchINTEL = 5902,
+ DecorationStallEnableINTEL = 5905,
+ DecorationFuseLoopsInFunctionINTEL = 5907,
+ DecorationBufferLocationINTEL = 5921,
+ DecorationIOPipeStorageINTEL = 5944,
+ DecorationFunctionFloatingPointModeINTEL = 6080,
+ DecorationSingleElementVectorINTEL = 6085,
+ DecorationVectorComputeCallableFunctionINTEL = 6087,
+ DecorationMediaBlockIOINTEL = 6140,
DecorationMax = 0x7fffffff,
};
@@ -586,7 +632,9 @@ enum BuiltIn {
BuiltInLayerPerViewNV = 5279,
BuiltInMeshViewCountNV = 5280,
BuiltInMeshViewIndicesNV = 5281,
+ BuiltInBaryCoordKHR = 5286,
BuiltInBaryCoordNV = 5286,
+ BuiltInBaryCoordNoPerspKHR = 5287,
BuiltInBaryCoordNoPerspNV = 5287,
BuiltInFragSizeEXT = 5292,
BuiltInFragmentSizeNV = 5292,
@@ -617,6 +665,7 @@ enum BuiltIn {
BuiltInHitTNV = 5332,
BuiltInHitKindKHR = 5333,
BuiltInHitKindNV = 5333,
+ BuiltInCurrentRayTimeNV = 5334,
BuiltInIncomingRayFlagsKHR = 5351,
BuiltInIncomingRayFlagsNV = 5351,
BuiltInRayGeometryIndexKHR = 5352,
@@ -656,6 +705,7 @@ enum LoopControlShift {
LoopControlLoopCoalesceINTELShift = 20,
LoopControlMaxInterleavingINTELShift = 21,
LoopControlSpeculatedIterationsINTELShift = 22,
+ LoopControlNoFusionINTELShift = 23,
LoopControlMax = 0x7fffffff,
};
@@ -677,6 +727,7 @@ enum LoopControlMask {
LoopControlLoopCoalesceINTELMask = 0x00100000,
LoopControlMaxInterleavingINTELMask = 0x00200000,
LoopControlSpeculatedIterationsINTELMask = 0x00400000,
+ LoopControlNoFusionINTELMask = 0x00800000,
};
enum FunctionControlShift {
@@ -684,6 +735,7 @@ enum FunctionControlShift {
FunctionControlDontInlineShift = 1,
FunctionControlPureShift = 2,
FunctionControlConstShift = 3,
+ FunctionControlOptNoneINTELShift = 16,
FunctionControlMax = 0x7fffffff,
};
@@ -693,6 +745,7 @@ enum FunctionControlMask {
FunctionControlDontInlineMask = 0x00000002,
FunctionControlPureMask = 0x00000004,
FunctionControlConstMask = 0x00000008,
+ FunctionControlOptNoneINTELMask = 0x00010000,
};
enum MemorySemanticsShift {
@@ -873,9 +926,13 @@ enum Capability {
CapabilityGroupNonUniformQuad = 68,
CapabilityShaderLayer = 69,
CapabilityShaderViewportIndex = 70,
+ CapabilityUniformDecoration = 71,
CapabilityFragmentShadingRateKHR = 4422,
CapabilitySubgroupBallotKHR = 4423,
CapabilityDrawParameters = 4427,
+ CapabilityWorkgroupMemoryExplicitLayoutKHR = 4428,
+ CapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR = 4429,
+ CapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR = 4430,
CapabilitySubgroupVoteKHR = 4431,
CapabilityStorageBuffer16BitAccess = 4433,
CapabilityStorageUniformBufferBlock16 = 4433,
@@ -918,6 +975,7 @@ enum Capability {
CapabilityFragmentFullyCoveredEXT = 5265,
CapabilityMeshShadingNV = 5266,
CapabilityImageFootprintNV = 5282,
+ CapabilityFragmentBarycentricKHR = 5284,
CapabilityFragmentBarycentricNV = 5284,
CapabilityComputeDerivativeGroupQuadsNV = 5288,
CapabilityFragmentDensityEXT = 5291,
@@ -948,6 +1006,7 @@ enum Capability {
CapabilityStorageTexelBufferArrayNonUniformIndexing = 5312,
CapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
CapabilityRayTracingNV = 5340,
+ CapabilityRayTracingMotionBlurNV = 5341,
CapabilityVulkanMemoryModel = 5345,
CapabilityVulkanMemoryModelKHR = 5345,
CapabilityVulkanMemoryModelDeviceScope = 5346,
@@ -961,26 +1020,62 @@ enum Capability {
CapabilityFragmentShaderShadingRateInterlockEXT = 5372,
CapabilityShaderSMBuiltinsNV = 5373,
CapabilityFragmentShaderPixelInterlockEXT = 5378,
+ CapabilityDemoteToHelperInvocation = 5379,
CapabilityDemoteToHelperInvocationEXT = 5379,
+ CapabilityBindlessTextureNV = 5390,
CapabilitySubgroupShuffleINTEL = 5568,
CapabilitySubgroupBufferBlockIOINTEL = 5569,
CapabilitySubgroupImageBlockIOINTEL = 5570,
CapabilitySubgroupImageMediaBlockIOINTEL = 5579,
+ CapabilityRoundToInfinityINTEL = 5582,
+ CapabilityFloatingPointModeINTEL = 5583,
CapabilityIntegerFunctions2INTEL = 5584,
CapabilityFunctionPointersINTEL = 5603,
CapabilityIndirectReferencesINTEL = 5604,
+ CapabilityAsmINTEL = 5606,
+ CapabilityAtomicFloat32MinMaxEXT = 5612,
+ CapabilityAtomicFloat64MinMaxEXT = 5613,
+ CapabilityAtomicFloat16MinMaxEXT = 5616,
+ CapabilityVectorComputeINTEL = 5617,
+ CapabilityVectorAnyINTEL = 5619,
+ CapabilityExpectAssumeKHR = 5629,
CapabilitySubgroupAvcMotionEstimationINTEL = 5696,
CapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697,
CapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698,
+ CapabilityVariableLengthArrayINTEL = 5817,
+ CapabilityFunctionFloatControlINTEL = 5821,
CapabilityFPGAMemoryAttributesINTEL = 5824,
+ CapabilityFPFastMathModeINTEL = 5837,
+ CapabilityArbitraryPrecisionIntegersINTEL = 5844,
+ CapabilityArbitraryPrecisionFloatingPointINTEL = 5845,
CapabilityUnstructuredLoopControlsINTEL = 5886,
CapabilityFPGALoopControlsINTEL = 5888,
CapabilityKernelAttributesINTEL = 5892,
CapabilityFPGAKernelAttributesINTEL = 5897,
+ CapabilityFPGAMemoryAccessesINTEL = 5898,
+ CapabilityFPGAClusterAttributesINTEL = 5904,
+ CapabilityLoopFuseINTEL = 5906,
+ CapabilityFPGABufferLocationINTEL = 5920,
+ CapabilityArbitraryPrecisionFixedPointINTEL = 5922,
+ CapabilityUSMStorageClassesINTEL = 5935,
+ CapabilityIOPipesINTEL = 5943,
CapabilityBlockingPipesINTEL = 5945,
CapabilityFPGARegINTEL = 5948,
+ CapabilityDotProductInputAll = 6016,
+ CapabilityDotProductInputAllKHR = 6016,
+ CapabilityDotProductInput4x8Bit = 6017,
+ CapabilityDotProductInput4x8BitKHR = 6017,
+ CapabilityDotProductInput4x8BitPacked = 6018,
+ CapabilityDotProductInput4x8BitPackedKHR = 6018,
+ CapabilityDotProduct = 6019,
+ CapabilityDotProductKHR = 6019,
+ CapabilityBitInstructions = 6025,
CapabilityAtomicFloat32AddEXT = 6033,
CapabilityAtomicFloat64AddEXT = 6034,
+ CapabilityLongConstantCompositeINTEL = 6089,
+ CapabilityOptNoneINTEL = 6094,
+ CapabilityAtomicFloat16AddEXT = 6095,
+ CapabilityDebugInfoModuleINTEL = 6114,
CapabilityMax = 0x7fffffff,
};
@@ -1047,6 +1142,44 @@ enum FragmentShadingRateMask {
FragmentShadingRateHorizontal4PixelsMask = 0x00000008,
};
+enum FPDenormMode {
+ FPDenormModePreserve = 0,
+ FPDenormModeFlushToZero = 1,
+ FPDenormModeMax = 0x7fffffff,
+};
+
+enum FPOperationMode {
+ FPOperationModeIEEE = 0,
+ FPOperationModeALT = 1,
+ FPOperationModeMax = 0x7fffffff,
+};
+
+enum QuantizationModes {
+ QuantizationModesTRN = 0,
+ QuantizationModesTRN_ZERO = 1,
+ QuantizationModesRND = 2,
+ QuantizationModesRND_ZERO = 3,
+ QuantizationModesRND_INF = 4,
+ QuantizationModesRND_MIN_INF = 5,
+ QuantizationModesRND_CONV = 6,
+ QuantizationModesRND_CONV_ODD = 7,
+ QuantizationModesMax = 0x7fffffff,
+};
+
+enum OverflowModes {
+ OverflowModesWRAP = 0,
+ OverflowModesSAT = 1,
+ OverflowModesSAT_ZERO = 2,
+ OverflowModesSAT_SYM = 3,
+ OverflowModesMax = 0x7fffffff,
+};
+
+enum PackedVectorFormat {
+ PackedVectorFormatPackedVectorFormat4x8Bit = 0,
+ PackedVectorFormatPackedVectorFormat4x8BitKHR = 0,
+ PackedVectorFormatMax = 0x7fffffff,
+};
+
enum Op {
OpNop = 0,
OpUndef = 1,
@@ -1404,6 +1537,18 @@ enum Op {
OpConvertUToAccelerationStructureKHR = 4447,
OpIgnoreIntersectionKHR = 4448,
OpTerminateRayKHR = 4449,
+ OpSDot = 4450,
+ OpSDotKHR = 4450,
+ OpUDot = 4451,
+ OpUDotKHR = 4451,
+ OpSUDot = 4452,
+ OpSUDotKHR = 4452,
+ OpSDotAccSat = 4453,
+ OpSDotAccSatKHR = 4453,
+ OpUDotAccSat = 4454,
+ OpUDotAccSatKHR = 4454,
+ OpSUDotAccSat = 4455,
+ OpSUDotAccSatKHR = 4455,
OpTypeRayQueryKHR = 4472,
OpRayQueryInitializeKHR = 4473,
OpRayQueryTerminateKHR = 4474,
@@ -1430,6 +1575,8 @@ enum Op {
OpIgnoreIntersectionNV = 5335,
OpTerminateRayNV = 5336,
OpTraceNV = 5337,
+ OpTraceMotionNV = 5338,
+ OpTraceRayMotionNV = 5339,
OpTypeAccelerationStructureKHR = 5341,
OpTypeAccelerationStructureNV = 5341,
OpExecuteCallableNV = 5344,
@@ -1440,8 +1587,16 @@ enum Op {
OpCooperativeMatrixLengthNV = 5362,
OpBeginInvocationInterlockEXT = 5364,
OpEndInvocationInterlockEXT = 5365,
+ OpDemoteToHelperInvocation = 5380,
OpDemoteToHelperInvocationEXT = 5380,
OpIsHelperInvocationEXT = 5381,
+ OpConvertUToImageNV = 5391,
+ OpConvertUToSamplerNV = 5392,
+ OpConvertImageToUNV = 5393,
+ OpConvertSamplerToUNV = 5394,
+ OpConvertUToSampledImageNV = 5395,
+ OpConvertSampledImageToUNV = 5396,
+ OpSamplerImageAddressingModeNV = 5397,
OpSubgroupShuffleINTEL = 5571,
OpSubgroupShuffleDownINTEL = 5572,
OpSubgroupShuffleUpINTEL = 5573,
@@ -1466,8 +1621,15 @@ enum Op {
OpUSubSatINTEL = 5596,
OpIMul32x16INTEL = 5597,
OpUMul32x16INTEL = 5598,
- OpFunctionPointerINTEL = 5600,
+ OpConstantFunctionPointerINTEL = 5600,
OpFunctionPointerCallINTEL = 5601,
+ OpAsmTargetINTEL = 5609,
+ OpAsmINTEL = 5610,
+ OpAsmCallINTEL = 5611,
+ OpAtomicFMinEXT = 5614,
+ OpAtomicFMaxEXT = 5615,
+ OpAssumeTrueKHR = 5630,
+ OpExpectKHR = 5631,
OpDecorateString = 5632,
OpDecorateStringGOOGLE = 5632,
OpMemberDecorateString = 5633,
@@ -1590,7 +1752,64 @@ enum Op {
OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
OpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
+ OpVariableLengthArrayINTEL = 5818,
+ OpSaveMemoryINTEL = 5819,
+ OpRestoreMemoryINTEL = 5820,
+ OpArbitraryFloatSinCosPiINTEL = 5840,
+ OpArbitraryFloatCastINTEL = 5841,
+ OpArbitraryFloatCastFromIntINTEL = 5842,
+ OpArbitraryFloatCastToIntINTEL = 5843,
+ OpArbitraryFloatAddINTEL = 5846,
+ OpArbitraryFloatSubINTEL = 5847,
+ OpArbitraryFloatMulINTEL = 5848,
+ OpArbitraryFloatDivINTEL = 5849,
+ OpArbitraryFloatGTINTEL = 5850,
+ OpArbitraryFloatGEINTEL = 5851,
+ OpArbitraryFloatLTINTEL = 5852,
+ OpArbitraryFloatLEINTEL = 5853,
+ OpArbitraryFloatEQINTEL = 5854,
+ OpArbitraryFloatRecipINTEL = 5855,
+ OpArbitraryFloatRSqrtINTEL = 5856,
+ OpArbitraryFloatCbrtINTEL = 5857,
+ OpArbitraryFloatHypotINTEL = 5858,
+ OpArbitraryFloatSqrtINTEL = 5859,
+ OpArbitraryFloatLogINTEL = 5860,
+ OpArbitraryFloatLog2INTEL = 5861,
+ OpArbitraryFloatLog10INTEL = 5862,
+ OpArbitraryFloatLog1pINTEL = 5863,
+ OpArbitraryFloatExpINTEL = 5864,
+ OpArbitraryFloatExp2INTEL = 5865,
+ OpArbitraryFloatExp10INTEL = 5866,
+ OpArbitraryFloatExpm1INTEL = 5867,
+ OpArbitraryFloatSinINTEL = 5868,
+ OpArbitraryFloatCosINTEL = 5869,
+ OpArbitraryFloatSinCosINTEL = 5870,
+ OpArbitraryFloatSinPiINTEL = 5871,
+ OpArbitraryFloatCosPiINTEL = 5872,
+ OpArbitraryFloatASinINTEL = 5873,
+ OpArbitraryFloatASinPiINTEL = 5874,
+ OpArbitraryFloatACosINTEL = 5875,
+ OpArbitraryFloatACosPiINTEL = 5876,
+ OpArbitraryFloatATanINTEL = 5877,
+ OpArbitraryFloatATanPiINTEL = 5878,
+ OpArbitraryFloatATan2INTEL = 5879,
+ OpArbitraryFloatPowINTEL = 5880,
+ OpArbitraryFloatPowRINTEL = 5881,
+ OpArbitraryFloatPowNINTEL = 5882,
OpLoopControlINTEL = 5887,
+ OpFixedSqrtINTEL = 5923,
+ OpFixedRecipINTEL = 5924,
+ OpFixedRsqrtINTEL = 5925,
+ OpFixedSinINTEL = 5926,
+ OpFixedCosINTEL = 5927,
+ OpFixedSinCosINTEL = 5928,
+ OpFixedSinPiINTEL = 5929,
+ OpFixedCosPiINTEL = 5930,
+ OpFixedSinCosPiINTEL = 5931,
+ OpFixedLogINTEL = 5932,
+ OpFixedExpINTEL = 5933,
+ OpPtrCastToCrossWorkgroupINTEL = 5934,
+ OpCrossWorkgroupCastToPtrINTEL = 5938,
OpReadPipeBlockingINTEL = 5946,
OpWritePipeBlockingINTEL = 5947,
OpFPGARegINTEL = 5949,
@@ -1612,6 +1831,10 @@ enum Op {
OpRayQueryGetIntersectionObjectToWorldKHR = 6031,
OpRayQueryGetIntersectionWorldToObjectKHR = 6032,
OpAtomicFAddEXT = 6035,
+ OpTypeBufferSurfaceINTEL = 6086,
+ OpTypeStructContinuedINTEL = 6090,
+ OpConstantCompositeContinuedINTEL = 6091,
+ OpSpecConstantCompositeContinuedINTEL = 6092,
OpMax = 0x7fffffff,
};
@@ -1976,6 +2199,12 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case OpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break;
case OpIgnoreIntersectionKHR: *hasResult = false; *hasResultType = false; break;
case OpTerminateRayKHR: *hasResult = false; *hasResultType = false; break;
+ case OpSDot: *hasResult = true; *hasResultType = true; break;
+ case OpUDot: *hasResult = true; *hasResultType = true; break;
+ case OpSUDot: *hasResult = true; *hasResultType = true; break;
+ case OpSDotAccSat: *hasResult = true; *hasResultType = true; break;
+ case OpUDotAccSat: *hasResult = true; *hasResultType = true; break;
+ case OpSUDotAccSat: *hasResult = true; *hasResultType = true; break;
case OpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
case OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
case OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
@@ -2001,6 +2230,8 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
case OpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
case OpTraceNV: *hasResult = false; *hasResultType = false; break;
+ case OpTraceMotionNV: *hasResult = false; *hasResultType = false; break;
+ case OpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
case OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
case OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
case OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
@@ -2010,8 +2241,15 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case OpCooperativeMatrixLengthNV: *hasResult = true; *hasResultType = true; break;
case OpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
case OpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
- case OpDemoteToHelperInvocationEXT: *hasResult = false; *hasResultType = false; break;
+ case OpDemoteToHelperInvocation: *hasResult = false; *hasResultType = false; break;
case OpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break;
+ case OpConvertUToImageNV: *hasResult = true; *hasResultType = true; break;
+ case OpConvertUToSamplerNV: *hasResult = true; *hasResultType = true; break;
+ case OpConvertImageToUNV: *hasResult = true; *hasResultType = true; break;
+ case OpConvertSamplerToUNV: *hasResult = true; *hasResultType = true; break;
+ case OpConvertUToSampledImageNV: *hasResult = true; *hasResultType = true; break;
+ case OpConvertSampledImageToUNV: *hasResult = true; *hasResultType = true; break;
+ case OpSamplerImageAddressingModeNV: *hasResult = false; *hasResultType = false; break;
case OpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;
case OpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;
case OpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;
@@ -2036,8 +2274,15 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case OpUSubSatINTEL: *hasResult = true; *hasResultType = true; break;
case OpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
case OpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
- case OpFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpConstantFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;
case OpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpAsmTargetINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpAsmINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpAsmCallINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpAtomicFMinEXT: *hasResult = true; *hasResultType = true; break;
+ case OpAtomicFMaxEXT: *hasResult = true; *hasResultType = true; break;
+ case OpAssumeTrueKHR: *hasResult = false; *hasResultType = false; break;
+ case OpExpectKHR: *hasResult = true; *hasResultType = true; break;
case OpDecorateString: *hasResult = false; *hasResultType = false; break;
case OpMemberDecorateString: *hasResult = false; *hasResultType = false; break;
case OpVmeImageINTEL: *hasResult = true; *hasResultType = true; break;
@@ -2158,7 +2403,64 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break;
case OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break;
case OpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break;
+ case OpArbitraryFloatSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatCastINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatCastFromIntINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatCastToIntINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatAddINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatSubINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatMulINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatDivINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatGTINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatGEINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatLTINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatLEINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatEQINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatRecipINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatRSqrtINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatCbrtINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatHypotINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatSqrtINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatLogINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatLog2INTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatLog10INTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatLog1pINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatExpINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatExp2INTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatExp10INTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatExpm1INTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatSinINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatCosINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatSinCosINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatSinPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatASinINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatASinPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatACosINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatACosPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatATanINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatATanPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatATan2INTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatPowINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatPowRINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatPowNINTEL: *hasResult = true; *hasResultType = true; break;
case OpLoopControlINTEL: *hasResult = false; *hasResultType = false; break;
+ case OpFixedSqrtINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpFixedRecipINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpFixedRsqrtINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpFixedSinINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpFixedCosINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpFixedSinCosINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpFixedSinPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpFixedCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpFixedSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpFixedLogINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpFixedExpINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break;
case OpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
case OpWritePipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
case OpFPGARegINTEL: *hasResult = true; *hasResultType = true; break;
@@ -2180,6 +2482,10 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case OpRayQueryGetIntersectionObjectToWorldKHR: *hasResult = true; *hasResultType = true; break;
case OpRayQueryGetIntersectionWorldToObjectKHR: *hasResult = true; *hasResultType = true; break;
case OpAtomicFAddEXT: *hasResult = true; *hasResultType = true; break;
+ case OpTypeBufferSurfaceINTEL: *hasResult = true; *hasResultType = false; break;
+ case OpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
+ case OpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
+ case OpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
}
}
#endif /* SPV_ENABLE_UTILITY_CODE */