From fc9897d1ba419063a67b105ccf5a6364402a1ea7 Mon Sep 17 00:00:00 2001 From: Nathan Reed Date: Wed, 28 Jul 2021 08:29:17 -0700 Subject: [PATCH] Fix OpImageRead result type when compiling HLSL (#2706) Fix OpImageRead result type when compiling HLSL - Per the Vulkan spec, OpImageRead must return a 4-component vector always. When compiling HLSL, loads from a RWTexture of a template type with < 4 components would incorrectly generate an OpImageRead with a < 4 component result, resulting in validation errors. - This was previously fixed for OpImageFetch in commit 4425f24; this commit does the same thing for OpImageRead. - Added associated tests and expanded existing image fetch tests to check all the different types of textures, in both float and int incarnations, for completeness. - Update other HLSL tests involving OpImageRead --- SPIRV/GlslangToSpv.cpp | 5 +- Test/baseResults/hlsl.imagefetch-subvec4.comp.out | 721 +++++++-- Test/baseResults/hlsl.imageload-subvec4.comp.out | 477 ++++++ Test/baseResults/hlsl.rw.register.frag.out | 72 +- Test/baseResults/hlsl.rw.scalar.bracket.frag.out | 1503 ++++++++++--------- Test/baseResults/hlsl.rw.vec2.bracket.frag.out | 1657 +++++++++++---------- Test/baseResults/spv.rw.autoassign.frag.out | 72 +- Test/hlsl.imagefetch-subvec4.comp | 39 +- Test/hlsl.imageload-subvec4.comp | 33 + gtests/Hlsl.FromFile.cpp | 1 + 10 files changed, 2907 insertions(+), 1673 deletions(-) create mode 100644 Test/baseResults/hlsl.imageload-subvec4.comp.out create mode 100644 Test/hlsl.imageload-subvec4.comp diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index 226c929..c8a73a6 100644 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -5317,7 +5317,10 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO int components = node->getType().getVectorSize(); - if (node->getOp() == glslang::EOpTextureFetch) { + if (node->getOp() == glslang::EOpImageLoad || + node->getOp() == glslang::EOpImageLoadLod || + node->getOp() == glslang::EOpTextureFetch || + node->getOp() == glslang::EOpTextureFetchOffset) { // These must produce 4 components, per SPIR-V spec. We'll add a conversion constructor if needed. // This will only happen through the HLSL path for operator[], so we do not have to handle e.g. // the EOpTexture/Proj/Lod/etc family. It would be harmless to do so, but would need more logic diff --git a/Test/baseResults/hlsl.imagefetch-subvec4.comp.out b/Test/baseResults/hlsl.imagefetch-subvec4.comp.out index a12c59f..ff201eb 100644 --- a/Test/baseResults/hlsl.imagefetch-subvec4.comp.out +++ b/Test/baseResults/hlsl.imagefetch-subvec4.comp.out @@ -2,35 +2,204 @@ hlsl.imagefetch-subvec4.comp Shader version: 500 local_size = (8, 8, 8) 0:? Sequence -0:6 Function Definition: @main(vu3; ( temp void) -0:6 Function Parameters: -0:6 'tid' ( in 3-component vector of uint) +0:21 Function Definition: @main(vu3; ( temp void) +0:21 Function Parameters: +0:21 'tid' ( in 3-component vector of uint) 0:? Sequence -0:7 Sequence -0:7 move second child to first child ( temp uint) -0:7 'storeTemp' ( temp uint) -0:7 Convert int to uint ( temp uint) -0:7 textureFetch ( temp int) -0:7 'IN' (layout( binding=0) uniform itexture3D) -0:7 'tid' ( in 3-component vector of uint) -0:7 Constant: -0:7 0 (const int) -0:7 imageStore ( temp void) -0:7 'OUT' (layout( binding=1 r32ui) uniform uimage3D) -0:7 'tid' ( in 3-component vector of uint) -0:7 'storeTemp' ( temp uint) -0:7 'storeTemp' ( temp uint) -0:6 Function Definition: main( ( temp void) -0:6 Function Parameters: +0:22 Sequence +0:22 move second child to first child ( temp float) +0:22 'f' ( temp float) +0:22 Constant: +0:22 0.000000 +0:23 add second child into first child ( temp float) +0:23 'f' ( temp float) +0:23 textureFetch ( temp float) +0:23 'i1D' (layout( binding=0) uniform texture1D) +0:23 direct index ( temp uint) +0:23 'tid' ( in 3-component vector of uint) +0:23 Constant: +0:23 0 (const int) +0:23 Constant: +0:23 0 (const int) +0:24 add second child into first child ( temp float) +0:24 'f' ( temp float) +0:24 textureFetch ( temp float) +0:24 'i2D' (layout( binding=1) uniform texture2D) +0:24 vector swizzle ( temp 2-component vector of uint) +0:24 'tid' ( in 3-component vector of uint) +0:24 Sequence +0:24 Constant: +0:24 0 (const int) +0:24 Constant: +0:24 1 (const int) +0:24 Constant: +0:24 0 (const int) +0:25 add second child into first child ( temp float) +0:25 'f' ( temp float) +0:25 textureFetch ( temp float) +0:25 'i3D' (layout( binding=2) uniform texture3D) +0:25 'tid' ( in 3-component vector of uint) +0:25 Constant: +0:25 0 (const int) +0:26 add second child into first child ( temp float) +0:26 'f' ( temp float) +0:26 textureFetch ( temp float) +0:26 'i1DArray' (layout( binding=3) uniform texture1DArray) +0:26 vector swizzle ( temp 2-component vector of uint) +0:26 'tid' ( in 3-component vector of uint) +0:26 Sequence +0:26 Constant: +0:26 0 (const int) +0:26 Constant: +0:26 1 (const int) +0:26 Constant: +0:26 0 (const int) +0:27 add second child into first child ( temp float) +0:27 'f' ( temp float) +0:27 textureFetch ( temp float) +0:27 'i2DArray' (layout( binding=4) uniform texture2DArray) +0:27 'tid' ( in 3-component vector of uint) +0:27 Constant: +0:27 0 (const int) +0:28 add second child into first child ( temp float) +0:28 'f' ( temp float) +0:28 Construct float ( temp float) +0:? textureFetch ( temp 4-component vector of float) +0:28 'i2DMS' (layout( binding=5) uniform texture2DMS) +0:28 Convert uint to int ( temp 2-component vector of int) +0:28 vector swizzle ( temp 2-component vector of uint) +0:28 'tid' ( in 3-component vector of uint) +0:28 Sequence +0:28 Constant: +0:28 0 (const int) +0:28 Constant: +0:28 1 (const int) +0:28 Constant: +0:28 1 (const int) +0:29 add second child into first child ( temp float) +0:29 'f' ( temp float) +0:29 Construct float ( temp float) +0:? textureFetch ( temp 4-component vector of float) +0:29 'i2DMSArray' (layout( binding=6) uniform texture2DMSArray) +0:29 Convert uint to int ( temp 3-component vector of int) +0:29 'tid' ( in 3-component vector of uint) +0:29 Constant: +0:29 3 (const int) +0:31 Sequence +0:31 move second child to first child ( temp int) +0:31 'i' ( temp int) +0:31 Constant: +0:31 0 (const int) +0:32 add second child into first child ( temp int) +0:32 'i' ( temp int) +0:32 textureFetch ( temp int) +0:32 'ii1D' (layout( binding=7) uniform itexture1D) +0:32 direct index ( temp uint) +0:32 'tid' ( in 3-component vector of uint) +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 0 (const int) +0:33 add second child into first child ( temp int) +0:33 'i' ( temp int) +0:33 textureFetch ( temp int) +0:33 'ii2D' (layout( binding=8) uniform itexture2D) +0:33 vector swizzle ( temp 2-component vector of uint) +0:33 'tid' ( in 3-component vector of uint) +0:33 Sequence +0:33 Constant: +0:33 0 (const int) +0:33 Constant: +0:33 1 (const int) +0:33 Constant: +0:33 0 (const int) +0:34 add second child into first child ( temp int) +0:34 'i' ( temp int) +0:34 textureFetch ( temp int) +0:34 'ii3D' (layout( binding=9) uniform itexture3D) +0:34 'tid' ( in 3-component vector of uint) +0:34 Constant: +0:34 0 (const int) +0:35 add second child into first child ( temp int) +0:35 'i' ( temp int) +0:35 textureFetch ( temp int) +0:35 'ii1DArray' (layout( binding=10) uniform itexture1DArray) +0:35 vector swizzle ( temp 2-component vector of uint) +0:35 'tid' ( in 3-component vector of uint) +0:35 Sequence +0:35 Constant: +0:35 0 (const int) +0:35 Constant: +0:35 1 (const int) +0:35 Constant: +0:35 0 (const int) +0:36 add second child into first child ( temp int) +0:36 'i' ( temp int) +0:36 textureFetch ( temp int) +0:36 'ii2DArray' (layout( binding=11) uniform itexture2DArray) +0:36 'tid' ( in 3-component vector of uint) +0:36 Constant: +0:36 0 (const int) +0:37 add second child into first child ( temp int) +0:37 'i' ( temp int) +0:37 Construct int ( temp int) +0:? textureFetch ( temp 4-component vector of int) +0:37 'ii2DMS' (layout( binding=12) uniform itexture2DMS) +0:37 Convert uint to int ( temp 2-component vector of int) +0:37 vector swizzle ( temp 2-component vector of uint) +0:37 'tid' ( in 3-component vector of uint) +0:37 Sequence +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 1 (const int) +0:37 Constant: +0:37 1 (const int) +0:38 add second child into first child ( temp int) +0:38 'i' ( temp int) +0:38 Construct int ( temp int) +0:? textureFetch ( temp 4-component vector of int) +0:38 'ii2DMSArray' (layout( binding=13) uniform itexture2DMSArray) +0:38 Convert uint to int ( temp 3-component vector of int) +0:38 'tid' ( in 3-component vector of uint) +0:38 Constant: +0:38 3 (const int) +0:40 Sequence +0:40 move second child to first child ( temp float) +0:40 'storeTemp' ( temp float) +0:40 add ( temp float) +0:40 'f' ( temp float) +0:40 Convert int to float ( temp float) +0:40 'i' ( temp int) +0:40 imageStore ( temp void) +0:40 'OUT' (layout( binding=0 r32f) uniform image3D) +0:40 'tid' ( in 3-component vector of uint) +0:40 'storeTemp' ( temp float) +0:40 'storeTemp' ( temp float) +0:21 Function Definition: main( ( temp void) +0:21 Function Parameters: 0:? Sequence -0:6 move second child to first child ( temp 3-component vector of uint) +0:21 move second child to first child ( temp 3-component vector of uint) 0:? 'tid' ( temp 3-component vector of uint) 0:? 'tid' ( in 3-component vector of uint GlobalInvocationID) -0:6 Function Call: @main(vu3; ( temp void) +0:21 Function Call: @main(vu3; ( temp void) 0:? 'tid' ( temp 3-component vector of uint) 0:? Linker Objects -0:? 'IN' (layout( binding=0) uniform itexture3D) -0:? 'OUT' (layout( binding=1 r32ui) uniform uimage3D) +0:? 'i1D' (layout( binding=0) uniform texture1D) +0:? 'i2D' (layout( binding=1) uniform texture2D) +0:? 'i3D' (layout( binding=2) uniform texture3D) +0:? 'i1DArray' (layout( binding=3) uniform texture1DArray) +0:? 'i2DArray' (layout( binding=4) uniform texture2DArray) +0:? 'i2DMS' (layout( binding=5) uniform texture2DMS) +0:? 'i2DMSArray' (layout( binding=6) uniform texture2DMSArray) +0:? 'ii1D' (layout( binding=7) uniform itexture1D) +0:? 'ii2D' (layout( binding=8) uniform itexture2D) +0:? 'ii3D' (layout( binding=9) uniform itexture3D) +0:? 'ii1DArray' (layout( binding=10) uniform itexture1DArray) +0:? 'ii2DArray' (layout( binding=11) uniform itexture2DArray) +0:? 'ii2DMS' (layout( binding=12) uniform itexture2DMS) +0:? 'ii2DMSArray' (layout( binding=13) uniform itexture2DMSArray) +0:? 'OUT' (layout( binding=0 r32f) uniform image3D) 0:? 'tid' ( in 3-component vector of uint GlobalInvocationID) @@ -40,103 +209,477 @@ Linked compute stage: Shader version: 500 local_size = (8, 8, 8) 0:? Sequence -0:6 Function Definition: @main(vu3; ( temp void) -0:6 Function Parameters: -0:6 'tid' ( in 3-component vector of uint) +0:21 Function Definition: @main(vu3; ( temp void) +0:21 Function Parameters: +0:21 'tid' ( in 3-component vector of uint) 0:? Sequence -0:7 Sequence -0:7 move second child to first child ( temp uint) -0:7 'storeTemp' ( temp uint) -0:7 Convert int to uint ( temp uint) -0:7 textureFetch ( temp int) -0:7 'IN' (layout( binding=0) uniform itexture3D) -0:7 'tid' ( in 3-component vector of uint) -0:7 Constant: -0:7 0 (const int) -0:7 imageStore ( temp void) -0:7 'OUT' (layout( binding=1 r32ui) uniform uimage3D) -0:7 'tid' ( in 3-component vector of uint) -0:7 'storeTemp' ( temp uint) -0:7 'storeTemp' ( temp uint) -0:6 Function Definition: main( ( temp void) -0:6 Function Parameters: +0:22 Sequence +0:22 move second child to first child ( temp float) +0:22 'f' ( temp float) +0:22 Constant: +0:22 0.000000 +0:23 add second child into first child ( temp float) +0:23 'f' ( temp float) +0:23 textureFetch ( temp float) +0:23 'i1D' (layout( binding=0) uniform texture1D) +0:23 direct index ( temp uint) +0:23 'tid' ( in 3-component vector of uint) +0:23 Constant: +0:23 0 (const int) +0:23 Constant: +0:23 0 (const int) +0:24 add second child into first child ( temp float) +0:24 'f' ( temp float) +0:24 textureFetch ( temp float) +0:24 'i2D' (layout( binding=1) uniform texture2D) +0:24 vector swizzle ( temp 2-component vector of uint) +0:24 'tid' ( in 3-component vector of uint) +0:24 Sequence +0:24 Constant: +0:24 0 (const int) +0:24 Constant: +0:24 1 (const int) +0:24 Constant: +0:24 0 (const int) +0:25 add second child into first child ( temp float) +0:25 'f' ( temp float) +0:25 textureFetch ( temp float) +0:25 'i3D' (layout( binding=2) uniform texture3D) +0:25 'tid' ( in 3-component vector of uint) +0:25 Constant: +0:25 0 (const int) +0:26 add second child into first child ( temp float) +0:26 'f' ( temp float) +0:26 textureFetch ( temp float) +0:26 'i1DArray' (layout( binding=3) uniform texture1DArray) +0:26 vector swizzle ( temp 2-component vector of uint) +0:26 'tid' ( in 3-component vector of uint) +0:26 Sequence +0:26 Constant: +0:26 0 (const int) +0:26 Constant: +0:26 1 (const int) +0:26 Constant: +0:26 0 (const int) +0:27 add second child into first child ( temp float) +0:27 'f' ( temp float) +0:27 textureFetch ( temp float) +0:27 'i2DArray' (layout( binding=4) uniform texture2DArray) +0:27 'tid' ( in 3-component vector of uint) +0:27 Constant: +0:27 0 (const int) +0:28 add second child into first child ( temp float) +0:28 'f' ( temp float) +0:28 Construct float ( temp float) +0:? textureFetch ( temp 4-component vector of float) +0:28 'i2DMS' (layout( binding=5) uniform texture2DMS) +0:28 Convert uint to int ( temp 2-component vector of int) +0:28 vector swizzle ( temp 2-component vector of uint) +0:28 'tid' ( in 3-component vector of uint) +0:28 Sequence +0:28 Constant: +0:28 0 (const int) +0:28 Constant: +0:28 1 (const int) +0:28 Constant: +0:28 1 (const int) +0:29 add second child into first child ( temp float) +0:29 'f' ( temp float) +0:29 Construct float ( temp float) +0:? textureFetch ( temp 4-component vector of float) +0:29 'i2DMSArray' (layout( binding=6) uniform texture2DMSArray) +0:29 Convert uint to int ( temp 3-component vector of int) +0:29 'tid' ( in 3-component vector of uint) +0:29 Constant: +0:29 3 (const int) +0:31 Sequence +0:31 move second child to first child ( temp int) +0:31 'i' ( temp int) +0:31 Constant: +0:31 0 (const int) +0:32 add second child into first child ( temp int) +0:32 'i' ( temp int) +0:32 textureFetch ( temp int) +0:32 'ii1D' (layout( binding=7) uniform itexture1D) +0:32 direct index ( temp uint) +0:32 'tid' ( in 3-component vector of uint) +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 0 (const int) +0:33 add second child into first child ( temp int) +0:33 'i' ( temp int) +0:33 textureFetch ( temp int) +0:33 'ii2D' (layout( binding=8) uniform itexture2D) +0:33 vector swizzle ( temp 2-component vector of uint) +0:33 'tid' ( in 3-component vector of uint) +0:33 Sequence +0:33 Constant: +0:33 0 (const int) +0:33 Constant: +0:33 1 (const int) +0:33 Constant: +0:33 0 (const int) +0:34 add second child into first child ( temp int) +0:34 'i' ( temp int) +0:34 textureFetch ( temp int) +0:34 'ii3D' (layout( binding=9) uniform itexture3D) +0:34 'tid' ( in 3-component vector of uint) +0:34 Constant: +0:34 0 (const int) +0:35 add second child into first child ( temp int) +0:35 'i' ( temp int) +0:35 textureFetch ( temp int) +0:35 'ii1DArray' (layout( binding=10) uniform itexture1DArray) +0:35 vector swizzle ( temp 2-component vector of uint) +0:35 'tid' ( in 3-component vector of uint) +0:35 Sequence +0:35 Constant: +0:35 0 (const int) +0:35 Constant: +0:35 1 (const int) +0:35 Constant: +0:35 0 (const int) +0:36 add second child into first child ( temp int) +0:36 'i' ( temp int) +0:36 textureFetch ( temp int) +0:36 'ii2DArray' (layout( binding=11) uniform itexture2DArray) +0:36 'tid' ( in 3-component vector of uint) +0:36 Constant: +0:36 0 (const int) +0:37 add second child into first child ( temp int) +0:37 'i' ( temp int) +0:37 Construct int ( temp int) +0:? textureFetch ( temp 4-component vector of int) +0:37 'ii2DMS' (layout( binding=12) uniform itexture2DMS) +0:37 Convert uint to int ( temp 2-component vector of int) +0:37 vector swizzle ( temp 2-component vector of uint) +0:37 'tid' ( in 3-component vector of uint) +0:37 Sequence +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 1 (const int) +0:37 Constant: +0:37 1 (const int) +0:38 add second child into first child ( temp int) +0:38 'i' ( temp int) +0:38 Construct int ( temp int) +0:? textureFetch ( temp 4-component vector of int) +0:38 'ii2DMSArray' (layout( binding=13) uniform itexture2DMSArray) +0:38 Convert uint to int ( temp 3-component vector of int) +0:38 'tid' ( in 3-component vector of uint) +0:38 Constant: +0:38 3 (const int) +0:40 Sequence +0:40 move second child to first child ( temp float) +0:40 'storeTemp' ( temp float) +0:40 add ( temp float) +0:40 'f' ( temp float) +0:40 Convert int to float ( temp float) +0:40 'i' ( temp int) +0:40 imageStore ( temp void) +0:40 'OUT' (layout( binding=0 r32f) uniform image3D) +0:40 'tid' ( in 3-component vector of uint) +0:40 'storeTemp' ( temp float) +0:40 'storeTemp' ( temp float) +0:21 Function Definition: main( ( temp void) +0:21 Function Parameters: 0:? Sequence -0:6 move second child to first child ( temp 3-component vector of uint) +0:21 move second child to first child ( temp 3-component vector of uint) 0:? 'tid' ( temp 3-component vector of uint) 0:? 'tid' ( in 3-component vector of uint GlobalInvocationID) -0:6 Function Call: @main(vu3; ( temp void) +0:21 Function Call: @main(vu3; ( temp void) 0:? 'tid' ( temp 3-component vector of uint) 0:? Linker Objects -0:? 'IN' (layout( binding=0) uniform itexture3D) -0:? 'OUT' (layout( binding=1 r32ui) uniform uimage3D) +0:? 'i1D' (layout( binding=0) uniform texture1D) +0:? 'i2D' (layout( binding=1) uniform texture2D) +0:? 'i3D' (layout( binding=2) uniform texture3D) +0:? 'i1DArray' (layout( binding=3) uniform texture1DArray) +0:? 'i2DArray' (layout( binding=4) uniform texture2DArray) +0:? 'i2DMS' (layout( binding=5) uniform texture2DMS) +0:? 'i2DMSArray' (layout( binding=6) uniform texture2DMSArray) +0:? 'ii1D' (layout( binding=7) uniform itexture1D) +0:? 'ii2D' (layout( binding=8) uniform itexture2D) +0:? 'ii3D' (layout( binding=9) uniform itexture3D) +0:? 'ii1DArray' (layout( binding=10) uniform itexture1DArray) +0:? 'ii2DArray' (layout( binding=11) uniform itexture2DArray) +0:? 'ii2DMS' (layout( binding=12) uniform itexture2DMS) +0:? 'ii2DMSArray' (layout( binding=13) uniform itexture2DMSArray) +0:? 'OUT' (layout( binding=0 r32f) uniform image3D) 0:? 'tid' ( in 3-component vector of uint GlobalInvocationID) // Module Version 10000 // Generated by (magic number): 8000a -// Id's are bound by 39 +// Id's are bound by 186 Capability Shader + Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" 34 + EntryPoint GLCompute 4 "main" 181 ExecutionMode 4 LocalSize 8 8 8 Source HLSL 500 Name 4 "main" Name 11 "@main(vu3;" Name 10 "tid" - Name 14 "storeTemp" - Name 18 "IN" - Name 28 "OUT" - Name 32 "tid" - Name 34 "tid" - Name 36 "param" - Decorate 18(IN) DescriptorSet 0 - Decorate 18(IN) Binding 0 - Decorate 28(OUT) DescriptorSet 0 - Decorate 28(OUT) Binding 1 - Decorate 34(tid) BuiltIn GlobalInvocationId + Name 15 "f" + Name 19 "i1D" + Name 34 "i2D" + Name 45 "i3D" + Name 54 "i1DArray" + Name 64 "i2DArray" + Name 73 "i2DMS" + Name 86 "i2DMSArray" + Name 97 "i" + Name 100 "ii1D" + Name 111 "ii2D" + Name 121 "ii3D" + Name 130 "ii1DArray" + Name 140 "ii2DArray" + Name 149 "ii2DMS" + Name 160 "ii2DMSArray" + Name 168 "storeTemp" + Name 175 "OUT" + Name 179 "tid" + Name 181 "tid" + Name 183 "param" + Decorate 19(i1D) DescriptorSet 0 + Decorate 19(i1D) Binding 0 + Decorate 34(i2D) DescriptorSet 0 + Decorate 34(i2D) Binding 1 + Decorate 45(i3D) DescriptorSet 0 + Decorate 45(i3D) Binding 2 + Decorate 54(i1DArray) DescriptorSet 0 + Decorate 54(i1DArray) Binding 3 + Decorate 64(i2DArray) DescriptorSet 0 + Decorate 64(i2DArray) Binding 4 + Decorate 73(i2DMS) DescriptorSet 0 + Decorate 73(i2DMS) Binding 5 + Decorate 86(i2DMSArray) DescriptorSet 0 + Decorate 86(i2DMSArray) Binding 6 + Decorate 100(ii1D) DescriptorSet 0 + Decorate 100(ii1D) Binding 7 + Decorate 111(ii2D) DescriptorSet 0 + Decorate 111(ii2D) Binding 8 + Decorate 121(ii3D) DescriptorSet 0 + Decorate 121(ii3D) Binding 9 + Decorate 130(ii1DArray) DescriptorSet 0 + Decorate 130(ii1DArray) Binding 10 + Decorate 140(ii2DArray) DescriptorSet 0 + Decorate 140(ii2DArray) Binding 11 + Decorate 149(ii2DMS) DescriptorSet 0 + Decorate 149(ii2DMS) Binding 12 + Decorate 160(ii2DMSArray) DescriptorSet 0 + Decorate 160(ii2DMSArray) Binding 13 + Decorate 175(OUT) DescriptorSet 0 + Decorate 175(OUT) Binding 0 + Decorate 181(tid) BuiltIn GlobalInvocationId 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 7: TypeVector 6(int) 3 8: TypePointer Function 7(ivec3) 9: TypeFunction 2 8(ptr) - 13: TypePointer Function 6(int) - 15: TypeInt 32 1 - 16: TypeImage 15(int) 3D sampled format:Unknown - 17: TypePointer UniformConstant 16 - 18(IN): 17(ptr) Variable UniformConstant - 21: 15(int) Constant 0 - 22: TypeVector 15(int) 4 - 26: TypeImage 6(int) 3D nonsampled format:R32ui - 27: TypePointer UniformConstant 26 - 28(OUT): 27(ptr) Variable UniformConstant - 33: TypePointer Input 7(ivec3) - 34(tid): 33(ptr) Variable Input + 13: TypeFloat 32 + 14: TypePointer Function 13(float) + 16: 13(float) Constant 0 + 17: TypeImage 13(float) 1D sampled format:Unknown + 18: TypePointer UniformConstant 17 + 19(i1D): 18(ptr) Variable UniformConstant + 21: 6(int) Constant 0 + 22: TypePointer Function 6(int) + 25: TypeInt 32 1 + 26: 25(int) Constant 0 + 27: TypeVector 13(float) 4 + 32: TypeImage 13(float) 2D sampled format:Unknown + 33: TypePointer UniformConstant 32 + 34(i2D): 33(ptr) Variable UniformConstant + 36: TypeVector 6(int) 2 + 43: TypeImage 13(float) 3D sampled format:Unknown + 44: TypePointer UniformConstant 43 + 45(i3D): 44(ptr) Variable UniformConstant + 52: TypeImage 13(float) 1D array sampled format:Unknown + 53: TypePointer UniformConstant 52 + 54(i1DArray): 53(ptr) Variable UniformConstant + 62: TypeImage 13(float) 2D array sampled format:Unknown + 63: TypePointer UniformConstant 62 + 64(i2DArray): 63(ptr) Variable UniformConstant + 71: TypeImage 13(float) 2D multi-sampled sampled format:Unknown + 72: TypePointer UniformConstant 71 + 73(i2DMS): 72(ptr) Variable UniformConstant + 77: TypeVector 25(int) 2 + 79: 25(int) Constant 1 + 84: TypeImage 13(float) 2D array multi-sampled sampled format:Unknown + 85: TypePointer UniformConstant 84 + 86(i2DMSArray): 85(ptr) Variable UniformConstant + 89: TypeVector 25(int) 3 + 91: 25(int) Constant 3 + 96: TypePointer Function 25(int) + 98: TypeImage 25(int) 1D sampled format:Unknown + 99: TypePointer UniformConstant 98 + 100(ii1D): 99(ptr) Variable UniformConstant + 104: TypeVector 25(int) 4 + 109: TypeImage 25(int) 2D sampled format:Unknown + 110: TypePointer UniformConstant 109 + 111(ii2D): 110(ptr) Variable UniformConstant + 119: TypeImage 25(int) 3D sampled format:Unknown + 120: TypePointer UniformConstant 119 + 121(ii3D): 120(ptr) Variable UniformConstant + 128: TypeImage 25(int) 1D array sampled format:Unknown + 129: TypePointer UniformConstant 128 + 130(ii1DArray): 129(ptr) Variable UniformConstant + 138: TypeImage 25(int) 2D array sampled format:Unknown + 139: TypePointer UniformConstant 138 + 140(ii2DArray): 139(ptr) Variable UniformConstant + 147: TypeImage 25(int) 2D multi-sampled sampled format:Unknown + 148: TypePointer UniformConstant 147 + 149(ii2DMS): 148(ptr) Variable UniformConstant + 158: TypeImage 25(int) 2D array multi-sampled sampled format:Unknown + 159: TypePointer UniformConstant 158 +160(ii2DMSArray): 159(ptr) Variable UniformConstant + 173: TypeImage 13(float) 3D nonsampled format:R32f + 174: TypePointer UniformConstant 173 + 175(OUT): 174(ptr) Variable UniformConstant + 180: TypePointer Input 7(ivec3) + 181(tid): 180(ptr) Variable Input 4(main): 2 Function None 3 5: Label - 32(tid): 8(ptr) Variable Function - 36(param): 8(ptr) Variable Function - 35: 7(ivec3) Load 34(tid) - Store 32(tid) 35 - 37: 7(ivec3) Load 32(tid) - Store 36(param) 37 - 38: 2 FunctionCall 11(@main(vu3;) 36(param) + 179(tid): 8(ptr) Variable Function + 183(param): 8(ptr) Variable Function + 182: 7(ivec3) Load 181(tid) + Store 179(tid) 182 + 184: 7(ivec3) Load 179(tid) + Store 183(param) 184 + 185: 2 FunctionCall 11(@main(vu3;) 183(param) Return FunctionEnd 11(@main(vu3;): 2 Function None 9 10(tid): 8(ptr) FunctionParameter 12: Label - 14(storeTemp): 13(ptr) Variable Function - 19: 16 Load 18(IN) - 20: 7(ivec3) Load 10(tid) - 23: 22(ivec4) ImageFetch 19 20 Lod 21 - 24: 15(int) CompositeExtract 23 0 - 25: 6(int) Bitcast 24 - Store 14(storeTemp) 25 - 29: 26 Load 28(OUT) - 30: 7(ivec3) Load 10(tid) - 31: 6(int) Load 14(storeTemp) - ImageWrite 29 30 31 + 15(f): 14(ptr) Variable Function + 97(i): 96(ptr) Variable Function + 168(storeTemp): 14(ptr) Variable Function + Store 15(f) 16 + 20: 17 Load 19(i1D) + 23: 22(ptr) AccessChain 10(tid) 21 + 24: 6(int) Load 23 + 28: 27(fvec4) ImageFetch 20 24 Lod 26 + 29: 13(float) CompositeExtract 28 0 + 30: 13(float) Load 15(f) + 31: 13(float) FAdd 30 29 + Store 15(f) 31 + 35: 32 Load 34(i2D) + 37: 7(ivec3) Load 10(tid) + 38: 36(ivec2) VectorShuffle 37 37 0 1 + 39: 27(fvec4) ImageFetch 35 38 Lod 26 + 40: 13(float) CompositeExtract 39 0 + 41: 13(float) Load 15(f) + 42: 13(float) FAdd 41 40 + Store 15(f) 42 + 46: 43 Load 45(i3D) + 47: 7(ivec3) Load 10(tid) + 48: 27(fvec4) ImageFetch 46 47 Lod 26 + 49: 13(float) CompositeExtract 48 0 + 50: 13(float) Load 15(f) + 51: 13(float) FAdd 50 49 + Store 15(f) 51 + 55: 52 Load 54(i1DArray) + 56: 7(ivec3) Load 10(tid) + 57: 36(ivec2) VectorShuffle 56 56 0 1 + 58: 27(fvec4) ImageFetch 55 57 Lod 26 + 59: 13(float) CompositeExtract 58 0 + 60: 13(float) Load 15(f) + 61: 13(float) FAdd 60 59 + Store 15(f) 61 + 65: 62 Load 64(i2DArray) + 66: 7(ivec3) Load 10(tid) + 67: 27(fvec4) ImageFetch 65 66 Lod 26 + 68: 13(float) CompositeExtract 67 0 + 69: 13(float) Load 15(f) + 70: 13(float) FAdd 69 68 + Store 15(f) 70 + 74: 71 Load 73(i2DMS) + 75: 7(ivec3) Load 10(tid) + 76: 36(ivec2) VectorShuffle 75 75 0 1 + 78: 77(ivec2) Bitcast 76 + 80: 27(fvec4) ImageFetch 74 78 Sample 79 + 81: 13(float) CompositeExtract 80 0 + 82: 13(float) Load 15(f) + 83: 13(float) FAdd 82 81 + Store 15(f) 83 + 87: 84 Load 86(i2DMSArray) + 88: 7(ivec3) Load 10(tid) + 90: 89(ivec3) Bitcast 88 + 92: 27(fvec4) ImageFetch 87 90 Sample 91 + 93: 13(float) CompositeExtract 92 0 + 94: 13(float) Load 15(f) + 95: 13(float) FAdd 94 93 + Store 15(f) 95 + Store 97(i) 26 + 101: 98 Load 100(ii1D) + 102: 22(ptr) AccessChain 10(tid) 21 + 103: 6(int) Load 102 + 105: 104(ivec4) ImageFetch 101 103 Lod 26 + 106: 25(int) CompositeExtract 105 0 + 107: 25(int) Load 97(i) + 108: 25(int) IAdd 107 106 + Store 97(i) 108 + 112: 109 Load 111(ii2D) + 113: 7(ivec3) Load 10(tid) + 114: 36(ivec2) VectorShuffle 113 113 0 1 + 115: 104(ivec4) ImageFetch 112 114 Lod 26 + 116: 25(int) CompositeExtract 115 0 + 117: 25(int) Load 97(i) + 118: 25(int) IAdd 117 116 + Store 97(i) 118 + 122: 119 Load 121(ii3D) + 123: 7(ivec3) Load 10(tid) + 124: 104(ivec4) ImageFetch 122 123 Lod 26 + 125: 25(int) CompositeExtract 124 0 + 126: 25(int) Load 97(i) + 127: 25(int) IAdd 126 125 + Store 97(i) 127 + 131: 128 Load 130(ii1DArray) + 132: 7(ivec3) Load 10(tid) + 133: 36(ivec2) VectorShuffle 132 132 0 1 + 134: 104(ivec4) ImageFetch 131 133 Lod 26 + 135: 25(int) CompositeExtract 134 0 + 136: 25(int) Load 97(i) + 137: 25(int) IAdd 136 135 + Store 97(i) 137 + 141: 138 Load 140(ii2DArray) + 142: 7(ivec3) Load 10(tid) + 143: 104(ivec4) ImageFetch 141 142 Lod 26 + 144: 25(int) CompositeExtract 143 0 + 145: 25(int) Load 97(i) + 146: 25(int) IAdd 145 144 + Store 97(i) 146 + 150: 147 Load 149(ii2DMS) + 151: 7(ivec3) Load 10(tid) + 152: 36(ivec2) VectorShuffle 151 151 0 1 + 153: 77(ivec2) Bitcast 152 + 154: 104(ivec4) ImageFetch 150 153 Sample 79 + 155: 25(int) CompositeExtract 154 0 + 156: 25(int) Load 97(i) + 157: 25(int) IAdd 156 155 + Store 97(i) 157 + 161: 158 Load 160(ii2DMSArray) + 162: 7(ivec3) Load 10(tid) + 163: 89(ivec3) Bitcast 162 + 164: 104(ivec4) ImageFetch 161 163 Sample 91 + 165: 25(int) CompositeExtract 164 0 + 166: 25(int) Load 97(i) + 167: 25(int) IAdd 166 165 + Store 97(i) 167 + 169: 13(float) Load 15(f) + 170: 25(int) Load 97(i) + 171: 13(float) ConvertSToF 170 + 172: 13(float) FAdd 169 171 + Store 168(storeTemp) 172 + 176: 173 Load 175(OUT) + 177: 7(ivec3) Load 10(tid) + 178: 13(float) Load 168(storeTemp) + ImageWrite 176 177 178 Return FunctionEnd diff --git a/Test/baseResults/hlsl.imageload-subvec4.comp.out b/Test/baseResults/hlsl.imageload-subvec4.comp.out new file mode 100644 index 0000000..4d038a1 --- /dev/null +++ b/Test/baseResults/hlsl.imageload-subvec4.comp.out @@ -0,0 +1,477 @@ +hlsl.imageload-subvec4.comp +Shader version: 500 +local_size = (8, 8, 8) +0:? Sequence +0:17 Function Definition: @main(vu3; ( temp void) +0:17 Function Parameters: +0:17 'tid' ( in 3-component vector of uint) +0:? Sequence +0:18 Sequence +0:18 move second child to first child ( temp float) +0:18 'f' ( temp float) +0:18 Constant: +0:18 0.000000 +0:19 add second child into first child ( temp float) +0:19 'f' ( temp float) +0:19 imageLoad ( temp float) +0:19 'i1D' (layout( binding=0 r32f) uniform image1D) +0:19 direct index ( temp uint) +0:19 'tid' ( in 3-component vector of uint) +0:19 Constant: +0:19 0 (const int) +0:20 add second child into first child ( temp float) +0:20 'f' ( temp float) +0:20 imageLoad ( temp float) +0:20 'i2D' (layout( binding=1 r32f) uniform image2D) +0:20 vector swizzle ( temp 2-component vector of uint) +0:20 'tid' ( in 3-component vector of uint) +0:20 Sequence +0:20 Constant: +0:20 0 (const int) +0:20 Constant: +0:20 1 (const int) +0:21 add second child into first child ( temp float) +0:21 'f' ( temp float) +0:21 imageLoad ( temp float) +0:21 'i3D' (layout( binding=2 r32f) uniform image3D) +0:21 'tid' ( in 3-component vector of uint) +0:22 add second child into first child ( temp float) +0:22 'f' ( temp float) +0:22 imageLoad ( temp float) +0:22 'i1DArray' (layout( binding=3 r32f) uniform image1DArray) +0:22 vector swizzle ( temp 2-component vector of uint) +0:22 'tid' ( in 3-component vector of uint) +0:22 Sequence +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 1 (const int) +0:23 add second child into first child ( temp float) +0:23 'f' ( temp float) +0:23 imageLoad ( temp float) +0:23 'i2DArray' (layout( binding=4 r32f) uniform image2DArray) +0:23 'tid' ( in 3-component vector of uint) +0:25 Sequence +0:25 move second child to first child ( temp int) +0:25 'i' ( temp int) +0:25 Constant: +0:25 0 (const int) +0:26 add second child into first child ( temp int) +0:26 'i' ( temp int) +0:26 imageLoad ( temp int) +0:26 'ii1D' (layout( binding=5 r32i) uniform iimage1D) +0:26 direct index ( temp uint) +0:26 'tid' ( in 3-component vector of uint) +0:26 Constant: +0:26 0 (const int) +0:27 add second child into first child ( temp int) +0:27 'i' ( temp int) +0:27 imageLoad ( temp int) +0:27 'ii2D' (layout( binding=6 r32i) uniform iimage2D) +0:27 vector swizzle ( temp 2-component vector of uint) +0:27 'tid' ( in 3-component vector of uint) +0:27 Sequence +0:27 Constant: +0:27 0 (const int) +0:27 Constant: +0:27 1 (const int) +0:28 add second child into first child ( temp int) +0:28 'i' ( temp int) +0:28 imageLoad ( temp int) +0:28 'ii3D' (layout( binding=7 r32i) uniform iimage3D) +0:28 'tid' ( in 3-component vector of uint) +0:29 add second child into first child ( temp int) +0:29 'i' ( temp int) +0:29 imageLoad ( temp int) +0:29 'ii1DArray' (layout( binding=8 r32i) uniform iimage1DArray) +0:29 vector swizzle ( temp 2-component vector of uint) +0:29 'tid' ( in 3-component vector of uint) +0:29 Sequence +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 1 (const int) +0:30 add second child into first child ( temp int) +0:30 'i' ( temp int) +0:30 imageLoad ( temp int) +0:30 'ii2DArray' (layout( binding=9 r32i) uniform iimage2DArray) +0:30 'tid' ( in 3-component vector of uint) +0:32 Sequence +0:32 move second child to first child ( temp float) +0:32 'storeTemp' ( temp float) +0:32 add ( temp float) +0:32 'f' ( temp float) +0:32 Convert int to float ( temp float) +0:32 'i' ( temp int) +0:32 imageStore ( temp void) +0:32 'OUT' (layout( binding=10 r32f) uniform image3D) +0:32 'tid' ( in 3-component vector of uint) +0:32 'storeTemp' ( temp float) +0:32 'storeTemp' ( temp float) +0:17 Function Definition: main( ( temp void) +0:17 Function Parameters: +0:? Sequence +0:17 move second child to first child ( temp 3-component vector of uint) +0:? 'tid' ( temp 3-component vector of uint) +0:? 'tid' ( in 3-component vector of uint GlobalInvocationID) +0:17 Function Call: @main(vu3; ( temp void) +0:? 'tid' ( temp 3-component vector of uint) +0:? Linker Objects +0:? 'i1D' (layout( binding=0 r32f) uniform image1D) +0:? 'i2D' (layout( binding=1 r32f) uniform image2D) +0:? 'i3D' (layout( binding=2 r32f) uniform image3D) +0:? 'i1DArray' (layout( binding=3 r32f) uniform image1DArray) +0:? 'i2DArray' (layout( binding=4 r32f) uniform image2DArray) +0:? 'ii1D' (layout( binding=5 r32i) uniform iimage1D) +0:? 'ii2D' (layout( binding=6 r32i) uniform iimage2D) +0:? 'ii3D' (layout( binding=7 r32i) uniform iimage3D) +0:? 'ii1DArray' (layout( binding=8 r32i) uniform iimage1DArray) +0:? 'ii2DArray' (layout( binding=9 r32i) uniform iimage2DArray) +0:? 'OUT' (layout( binding=10 r32f) uniform image3D) +0:? 'tid' ( in 3-component vector of uint GlobalInvocationID) + + +Linked compute stage: + + +Shader version: 500 +local_size = (8, 8, 8) +0:? Sequence +0:17 Function Definition: @main(vu3; ( temp void) +0:17 Function Parameters: +0:17 'tid' ( in 3-component vector of uint) +0:? Sequence +0:18 Sequence +0:18 move second child to first child ( temp float) +0:18 'f' ( temp float) +0:18 Constant: +0:18 0.000000 +0:19 add second child into first child ( temp float) +0:19 'f' ( temp float) +0:19 imageLoad ( temp float) +0:19 'i1D' (layout( binding=0 r32f) uniform image1D) +0:19 direct index ( temp uint) +0:19 'tid' ( in 3-component vector of uint) +0:19 Constant: +0:19 0 (const int) +0:20 add second child into first child ( temp float) +0:20 'f' ( temp float) +0:20 imageLoad ( temp float) +0:20 'i2D' (layout( binding=1 r32f) uniform image2D) +0:20 vector swizzle ( temp 2-component vector of uint) +0:20 'tid' ( in 3-component vector of uint) +0:20 Sequence +0:20 Constant: +0:20 0 (const int) +0:20 Constant: +0:20 1 (const int) +0:21 add second child into first child ( temp float) +0:21 'f' ( temp float) +0:21 imageLoad ( temp float) +0:21 'i3D' (layout( binding=2 r32f) uniform image3D) +0:21 'tid' ( in 3-component vector of uint) +0:22 add second child into first child ( temp float) +0:22 'f' ( temp float) +0:22 imageLoad ( temp float) +0:22 'i1DArray' (layout( binding=3 r32f) uniform image1DArray) +0:22 vector swizzle ( temp 2-component vector of uint) +0:22 'tid' ( in 3-component vector of uint) +0:22 Sequence +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 1 (const int) +0:23 add second child into first child ( temp float) +0:23 'f' ( temp float) +0:23 imageLoad ( temp float) +0:23 'i2DArray' (layout( binding=4 r32f) uniform image2DArray) +0:23 'tid' ( in 3-component vector of uint) +0:25 Sequence +0:25 move second child to first child ( temp int) +0:25 'i' ( temp int) +0:25 Constant: +0:25 0 (const int) +0:26 add second child into first child ( temp int) +0:26 'i' ( temp int) +0:26 imageLoad ( temp int) +0:26 'ii1D' (layout( binding=5 r32i) uniform iimage1D) +0:26 direct index ( temp uint) +0:26 'tid' ( in 3-component vector of uint) +0:26 Constant: +0:26 0 (const int) +0:27 add second child into first child ( temp int) +0:27 'i' ( temp int) +0:27 imageLoad ( temp int) +0:27 'ii2D' (layout( binding=6 r32i) uniform iimage2D) +0:27 vector swizzle ( temp 2-component vector of uint) +0:27 'tid' ( in 3-component vector of uint) +0:27 Sequence +0:27 Constant: +0:27 0 (const int) +0:27 Constant: +0:27 1 (const int) +0:28 add second child into first child ( temp int) +0:28 'i' ( temp int) +0:28 imageLoad ( temp int) +0:28 'ii3D' (layout( binding=7 r32i) uniform iimage3D) +0:28 'tid' ( in 3-component vector of uint) +0:29 add second child into first child ( temp int) +0:29 'i' ( temp int) +0:29 imageLoad ( temp int) +0:29 'ii1DArray' (layout( binding=8 r32i) uniform iimage1DArray) +0:29 vector swizzle ( temp 2-component vector of uint) +0:29 'tid' ( in 3-component vector of uint) +0:29 Sequence +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 1 (const int) +0:30 add second child into first child ( temp int) +0:30 'i' ( temp int) +0:30 imageLoad ( temp int) +0:30 'ii2DArray' (layout( binding=9 r32i) uniform iimage2DArray) +0:30 'tid' ( in 3-component vector of uint) +0:32 Sequence +0:32 move second child to first child ( temp float) +0:32 'storeTemp' ( temp float) +0:32 add ( temp float) +0:32 'f' ( temp float) +0:32 Convert int to float ( temp float) +0:32 'i' ( temp int) +0:32 imageStore ( temp void) +0:32 'OUT' (layout( binding=10 r32f) uniform image3D) +0:32 'tid' ( in 3-component vector of uint) +0:32 'storeTemp' ( temp float) +0:32 'storeTemp' ( temp float) +0:17 Function Definition: main( ( temp void) +0:17 Function Parameters: +0:? Sequence +0:17 move second child to first child ( temp 3-component vector of uint) +0:? 'tid' ( temp 3-component vector of uint) +0:? 'tid' ( in 3-component vector of uint GlobalInvocationID) +0:17 Function Call: @main(vu3; ( temp void) +0:? 'tid' ( temp 3-component vector of uint) +0:? Linker Objects +0:? 'i1D' (layout( binding=0 r32f) uniform image1D) +0:? 'i2D' (layout( binding=1 r32f) uniform image2D) +0:? 'i3D' (layout( binding=2 r32f) uniform image3D) +0:? 'i1DArray' (layout( binding=3 r32f) uniform image1DArray) +0:? 'i2DArray' (layout( binding=4 r32f) uniform image2DArray) +0:? 'ii1D' (layout( binding=5 r32i) uniform iimage1D) +0:? 'ii2D' (layout( binding=6 r32i) uniform iimage2D) +0:? 'ii3D' (layout( binding=7 r32i) uniform iimage3D) +0:? 'ii1DArray' (layout( binding=8 r32i) uniform iimage1DArray) +0:? 'ii2DArray' (layout( binding=9 r32i) uniform iimage2DArray) +0:? 'OUT' (layout( binding=10 r32f) uniform image3D) +0:? 'tid' ( in 3-component vector of uint GlobalInvocationID) + +// Module Version 10000 +// Generated by (magic number): 8000a +// Id's are bound by 138 + + Capability Shader + Capability Image1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "main" 133 + ExecutionMode 4 LocalSize 8 8 8 + Source HLSL 500 + Name 4 "main" + Name 11 "@main(vu3;" + Name 10 "tid" + Name 15 "f" + Name 19 "i1D" + Name 32 "i2D" + Name 43 "i3D" + Name 52 "i1DArray" + Name 62 "i2DArray" + Name 71 "i" + Name 75 "ii1D" + Name 86 "ii2D" + Name 96 "ii3D" + Name 105 "ii1DArray" + Name 115 "ii2DArray" + Name 122 "storeTemp" + Name 127 "OUT" + Name 131 "tid" + Name 133 "tid" + Name 135 "param" + Decorate 19(i1D) DescriptorSet 0 + Decorate 19(i1D) Binding 0 + Decorate 32(i2D) DescriptorSet 0 + Decorate 32(i2D) Binding 1 + Decorate 43(i3D) DescriptorSet 0 + Decorate 43(i3D) Binding 2 + Decorate 52(i1DArray) DescriptorSet 0 + Decorate 52(i1DArray) Binding 3 + Decorate 62(i2DArray) DescriptorSet 0 + Decorate 62(i2DArray) Binding 4 + Decorate 75(ii1D) DescriptorSet 0 + Decorate 75(ii1D) Binding 5 + Decorate 86(ii2D) DescriptorSet 0 + Decorate 86(ii2D) Binding 6 + Decorate 96(ii3D) DescriptorSet 0 + Decorate 96(ii3D) Binding 7 + Decorate 105(ii1DArray) DescriptorSet 0 + Decorate 105(ii1DArray) Binding 8 + Decorate 115(ii2DArray) DescriptorSet 0 + Decorate 115(ii2DArray) Binding 9 + Decorate 127(OUT) DescriptorSet 0 + Decorate 127(OUT) Binding 10 + Decorate 133(tid) BuiltIn GlobalInvocationId + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypeVector 6(int) 3 + 8: TypePointer Function 7(ivec3) + 9: TypeFunction 2 8(ptr) + 13: TypeFloat 32 + 14: TypePointer Function 13(float) + 16: 13(float) Constant 0 + 17: TypeImage 13(float) 1D nonsampled format:R32f + 18: TypePointer UniformConstant 17 + 19(i1D): 18(ptr) Variable UniformConstant + 21: 6(int) Constant 0 + 22: TypePointer Function 6(int) + 25: TypeVector 13(float) 4 + 30: TypeImage 13(float) 2D nonsampled format:R32f + 31: TypePointer UniformConstant 30 + 32(i2D): 31(ptr) Variable UniformConstant + 34: TypeVector 6(int) 2 + 41: TypeImage 13(float) 3D nonsampled format:R32f + 42: TypePointer UniformConstant 41 + 43(i3D): 42(ptr) Variable UniformConstant + 50: TypeImage 13(float) 1D array nonsampled format:R32f + 51: TypePointer UniformConstant 50 + 52(i1DArray): 51(ptr) Variable UniformConstant + 60: TypeImage 13(float) 2D array nonsampled format:R32f + 61: TypePointer UniformConstant 60 + 62(i2DArray): 61(ptr) Variable UniformConstant + 69: TypeInt 32 1 + 70: TypePointer Function 69(int) + 72: 69(int) Constant 0 + 73: TypeImage 69(int) 1D nonsampled format:R32i + 74: TypePointer UniformConstant 73 + 75(ii1D): 74(ptr) Variable UniformConstant + 79: TypeVector 69(int) 4 + 84: TypeImage 69(int) 2D nonsampled format:R32i + 85: TypePointer UniformConstant 84 + 86(ii2D): 85(ptr) Variable UniformConstant + 94: TypeImage 69(int) 3D nonsampled format:R32i + 95: TypePointer UniformConstant 94 + 96(ii3D): 95(ptr) Variable UniformConstant + 103: TypeImage 69(int) 1D array nonsampled format:R32i + 104: TypePointer UniformConstant 103 + 105(ii1DArray): 104(ptr) Variable UniformConstant + 113: TypeImage 69(int) 2D array nonsampled format:R32i + 114: TypePointer UniformConstant 113 + 115(ii2DArray): 114(ptr) Variable UniformConstant + 127(OUT): 42(ptr) Variable UniformConstant + 132: TypePointer Input 7(ivec3) + 133(tid): 132(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 131(tid): 8(ptr) Variable Function + 135(param): 8(ptr) Variable Function + 134: 7(ivec3) Load 133(tid) + Store 131(tid) 134 + 136: 7(ivec3) Load 131(tid) + Store 135(param) 136 + 137: 2 FunctionCall 11(@main(vu3;) 135(param) + Return + FunctionEnd + 11(@main(vu3;): 2 Function None 9 + 10(tid): 8(ptr) FunctionParameter + 12: Label + 15(f): 14(ptr) Variable Function + 71(i): 70(ptr) Variable Function + 122(storeTemp): 14(ptr) Variable Function + Store 15(f) 16 + 20: 17 Load 19(i1D) + 23: 22(ptr) AccessChain 10(tid) 21 + 24: 6(int) Load 23 + 26: 25(fvec4) ImageRead 20 24 + 27: 13(float) CompositeExtract 26 0 + 28: 13(float) Load 15(f) + 29: 13(float) FAdd 28 27 + Store 15(f) 29 + 33: 30 Load 32(i2D) + 35: 7(ivec3) Load 10(tid) + 36: 34(ivec2) VectorShuffle 35 35 0 1 + 37: 25(fvec4) ImageRead 33 36 + 38: 13(float) CompositeExtract 37 0 + 39: 13(float) Load 15(f) + 40: 13(float) FAdd 39 38 + Store 15(f) 40 + 44: 41 Load 43(i3D) + 45: 7(ivec3) Load 10(tid) + 46: 25(fvec4) ImageRead 44 45 + 47: 13(float) CompositeExtract 46 0 + 48: 13(float) Load 15(f) + 49: 13(float) FAdd 48 47 + Store 15(f) 49 + 53: 50 Load 52(i1DArray) + 54: 7(ivec3) Load 10(tid) + 55: 34(ivec2) VectorShuffle 54 54 0 1 + 56: 25(fvec4) ImageRead 53 55 + 57: 13(float) CompositeExtract 56 0 + 58: 13(float) Load 15(f) + 59: 13(float) FAdd 58 57 + Store 15(f) 59 + 63: 60 Load 62(i2DArray) + 64: 7(ivec3) Load 10(tid) + 65: 25(fvec4) ImageRead 63 64 + 66: 13(float) CompositeExtract 65 0 + 67: 13(float) Load 15(f) + 68: 13(float) FAdd 67 66 + Store 15(f) 68 + Store 71(i) 72 + 76: 73 Load 75(ii1D) + 77: 22(ptr) AccessChain 10(tid) 21 + 78: 6(int) Load 77 + 80: 79(ivec4) ImageRead 76 78 + 81: 69(int) CompositeExtract 80 0 + 82: 69(int) Load 71(i) + 83: 69(int) IAdd 82 81 + Store 71(i) 83 + 87: 84 Load 86(ii2D) + 88: 7(ivec3) Load 10(tid) + 89: 34(ivec2) VectorShuffle 88 88 0 1 + 90: 79(ivec4) ImageRead 87 89 + 91: 69(int) CompositeExtract 90 0 + 92: 69(int) Load 71(i) + 93: 69(int) IAdd 92 91 + Store 71(i) 93 + 97: 94 Load 96(ii3D) + 98: 7(ivec3) Load 10(tid) + 99: 79(ivec4) ImageRead 97 98 + 100: 69(int) CompositeExtract 99 0 + 101: 69(int) Load 71(i) + 102: 69(int) IAdd 101 100 + Store 71(i) 102 + 106: 103 Load 105(ii1DArray) + 107: 7(ivec3) Load 10(tid) + 108: 34(ivec2) VectorShuffle 107 107 0 1 + 109: 79(ivec4) ImageRead 106 108 + 110: 69(int) CompositeExtract 109 0 + 111: 69(int) Load 71(i) + 112: 69(int) IAdd 111 110 + Store 71(i) 112 + 116: 113 Load 115(ii2DArray) + 117: 7(ivec3) Load 10(tid) + 118: 79(ivec4) ImageRead 116 117 + 119: 69(int) CompositeExtract 118 0 + 120: 69(int) Load 71(i) + 121: 69(int) IAdd 120 119 + Store 71(i) 121 + 123: 13(float) Load 15(f) + 124: 69(int) Load 71(i) + 125: 13(float) ConvertSToF 124 + 126: 13(float) FAdd 123 125 + Store 122(storeTemp) 126 + 128: 41 Load 127(OUT) + 129: 7(ivec3) Load 10(tid) + 130: 13(float) Load 122(storeTemp) + ImageWrite 128 129 130 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.rw.register.frag.out b/Test/baseResults/hlsl.rw.register.frag.out index 7bcecc9..265eaf9 100644 --- a/Test/baseResults/hlsl.rw.register.frag.out +++ b/Test/baseResults/hlsl.rw.register.frag.out @@ -97,17 +97,16 @@ gl_FragCoord origin is upper left 0:? 'g_tBuf1du1' (layout( binding=3 r32ui) uniform uimageBuffer) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) -Validation failed // Module Version 10000 // Generated by (magic number): 8000a -// Id's are bound by 42 +// Id's are bound by 45 Capability Shader Capability Image1D Capability ImageBuffer 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 39 + EntryPoint Fragment 4 "main" 42 ExecutionMode 4 OriginUpperLeft Source HLSL 500 Name 4 "main" @@ -116,15 +115,15 @@ Validation failed Name 10 "@main(" Name 13 "r00" Name 16 "g_tTex1df1" - Name 23 "r01" - Name 26 "g_tBuf1du1" - Name 30 "psout" - Name 39 "@entryPointOutput.Color" + Name 24 "r01" + Name 27 "g_tBuf1du1" + Name 33 "psout" + Name 42 "@entryPointOutput.Color" Decorate 16(g_tTex1df1) DescriptorSet 0 Decorate 16(g_tTex1df1) Binding 2 - Decorate 26(g_tBuf1du1) DescriptorSet 0 - Decorate 26(g_tBuf1du1) Binding 3 - Decorate 39(@entryPointOutput.Color) Location 0 + Decorate 27(g_tBuf1du1) DescriptorSet 0 + Decorate 27(g_tBuf1du1) Binding 3 + Decorate 42(@entryPointOutput.Color) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -137,37 +136,40 @@ Validation failed 16(g_tTex1df1): 15(ptr) Variable UniformConstant 18: TypeInt 32 1 19: 18(int) Constant 0 - 21: TypeInt 32 0 - 22: TypePointer Function 21(int) - 24: TypeImage 21(int) Buffer nonsampled format:R32ui - 25: TypePointer UniformConstant 24 - 26(g_tBuf1du1): 25(ptr) Variable UniformConstant - 29: TypePointer Function 8(PS_OUTPUT) - 31: 6(float) Constant 1065353216 - 32: 7(fvec4) ConstantComposite 31 31 31 31 - 33: TypePointer Function 7(fvec4) - 38: TypePointer Output 7(fvec4) -39(@entryPointOutput.Color): 38(ptr) Variable Output + 22: TypeInt 32 0 + 23: TypePointer Function 22(int) + 25: TypeImage 22(int) Buffer nonsampled format:R32ui + 26: TypePointer UniformConstant 25 + 27(g_tBuf1du1): 26(ptr) Variable UniformConstant + 29: TypeVector 22(int) 4 + 32: TypePointer Function 8(PS_OUTPUT) + 34: 6(float) Constant 1065353216 + 35: 7(fvec4) ConstantComposite 34 34 34 34 + 36: TypePointer Function 7(fvec4) + 41: TypePointer Output 7(fvec4) +42(@entryPointOutput.Color): 41(ptr) Variable Output 4(main): 2 Function None 3 5: Label - 40:8(PS_OUTPUT) FunctionCall 10(@main() - 41: 7(fvec4) CompositeExtract 40 0 - Store 39(@entryPointOutput.Color) 41 + 43:8(PS_OUTPUT) FunctionCall 10(@main() + 44: 7(fvec4) CompositeExtract 43 0 + Store 42(@entryPointOutput.Color) 44 Return FunctionEnd 10(@main():8(PS_OUTPUT) Function None 9 11: Label 13(r00): 12(ptr) Variable Function - 23(r01): 22(ptr) Variable Function - 30(psout): 29(ptr) Variable Function + 24(r01): 23(ptr) Variable Function + 33(psout): 32(ptr) Variable Function 17: 14 Load 16(g_tTex1df1) - 20: 6(float) ImageRead 17 19 - Store 13(r00) 20 - 27: 24 Load 26(g_tBuf1du1) - 28: 21(int) ImageRead 27 19 - Store 23(r01) 28 - 34: 33(ptr) AccessChain 30(psout) 19 - Store 34 32 - 35:8(PS_OUTPUT) Load 30(psout) - ReturnValue 35 + 20: 7(fvec4) ImageRead 17 19 + 21: 6(float) CompositeExtract 20 0 + Store 13(r00) 21 + 28: 25 Load 27(g_tBuf1du1) + 30: 29(ivec4) ImageRead 28 19 + 31: 22(int) CompositeExtract 30 0 + Store 24(r01) 31 + 37: 36(ptr) AccessChain 33(psout) 19 + Store 37 35 + 38:8(PS_OUTPUT) Load 33(psout) + ReturnValue 38 FunctionEnd diff --git a/Test/baseResults/hlsl.rw.scalar.bracket.frag.out b/Test/baseResults/hlsl.rw.scalar.bracket.frag.out index e76d597..8e4716b 100644 --- a/Test/baseResults/hlsl.rw.scalar.bracket.frag.out +++ b/Test/baseResults/hlsl.rw.scalar.bracket.frag.out @@ -1689,16 +1689,15 @@ gl_FragCoord origin is upper left 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) -Validation failed // Module Version 10000 // Generated by (magic number): 8000a -// Id's are bound by 571 +// Id's are bound by 607 Capability Shader Capability Image1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 547 + EntryPoint Fragment 4 "main" 583 ExecutionMode 4 OriginUpperLeft Source HLSL 500 Name 4 "main" @@ -1732,101 +1731,101 @@ Validation failed MemberName 59($Global) 10 "uu1" Name 61 "" Name 70 "g_tTex1df1" - Name 75 "r00" - Name 80 "r01" - Name 83 "g_tTex1di1" - Name 88 "r02" - Name 91 "g_tTex1du1" - Name 96 "r10" - Name 99 "g_tTex2df1" - Name 106 "r11" - Name 109 "g_tTex2di1" - Name 114 "r12" - Name 117 "g_tTex2du1" - Name 122 "r20" - Name 125 "g_tTex3df1" - Name 132 "r21" - Name 135 "g_tTex3di1" - Name 140 "r22" - Name 143 "g_tTex3du1" - Name 148 "lf1" - Name 153 "storeTemp" - Name 163 "storeTemp" - Name 168 "storeTemp" - Name 174 "val1" - Name 175 "coordTemp" - Name 178 "storeTemp" - Name 189 "coordTemp" - Name 192 "storeTemp" - Name 202 "coordTemp" - Name 205 "storeTemp" + Name 76 "r00" + Name 82 "r01" + Name 85 "g_tTex1di1" + Name 91 "r02" + Name 94 "g_tTex1du1" + Name 101 "r10" + Name 104 "g_tTex2df1" + Name 112 "r11" + Name 115 "g_tTex2di1" + Name 121 "r12" + Name 124 "g_tTex2du1" + Name 130 "r20" + Name 133 "g_tTex3df1" + Name 141 "r21" + Name 144 "g_tTex3di1" + Name 150 "r22" + Name 153 "g_tTex3du1" + Name 159 "lf1" + Name 164 "storeTemp" + Name 174 "storeTemp" + Name 179 "storeTemp" + Name 185 "val1" + Name 186 "coordTemp" + Name 189 "storeTemp" + Name 201 "coordTemp" + Name 204 "storeTemp" Name 215 "coordTemp" Name 218 "storeTemp" - Name 227 "coordTemp" - Name 230 "storeTemp" - Name 239 "coordTemp" - Name 242 "storeTemp" - Name 252 "coordTemp" - Name 255 "storeTemp" - Name 265 "coordTemp" - Name 268 "storeTemp" - Name 277 "coordTemp" - Name 280 "storeTemp" - Name 289 "storeTemp" + Name 229 "coordTemp" + Name 232 "storeTemp" + Name 242 "coordTemp" + Name 245 "storeTemp" + Name 255 "coordTemp" + Name 258 "storeTemp" + Name 269 "coordTemp" + Name 272 "storeTemp" + Name 283 "coordTemp" + Name 286 "storeTemp" + Name 296 "coordTemp" Name 299 "storeTemp" - Name 305 "storeTemp" - Name 311 "storeTemp" - Name 321 "storeTemp" - Name 326 "storeTemp" - Name 336 "param" - Name 342 "param" - Name 348 "param" - Name 350 "tempArg" - Name 351 "param" - Name 358 "tempArg" - Name 359 "param" - Name 366 "tempArg" - Name 367 "param" - Name 374 "coordTemp" - Name 377 "storeTemp" - Name 387 "coordTemp" - Name 390 "storeTemp" - Name 399 "coordTemp" - Name 402 "storeTemp" + Name 309 "storeTemp" + Name 319 "storeTemp" + Name 325 "storeTemp" + Name 331 "storeTemp" + Name 341 "storeTemp" + Name 346 "storeTemp" + Name 357 "param" + Name 364 "param" + Name 371 "param" + Name 373 "tempArg" + Name 374 "param" + Name 381 "tempArg" + Name 382 "param" + Name 389 "tempArg" + Name 390 "param" + Name 397 "coordTemp" + Name 400 "storeTemp" Name 411 "coordTemp" Name 414 "storeTemp" - Name 423 "coordTemp" - Name 426 "storeTemp" - Name 435 "coordTemp" - Name 438 "storeTemp" - Name 447 "coordTemp" - Name 450 "storeTempPre" - Name 454 "storeTempPost" - Name 461 "coordTemp" - Name 464 "storeTempPre" - Name 468 "storeTempPost" - Name 475 "coordTemp" - Name 478 "storeTempPre" - Name 482 "storeTempPost" - Name 489 "coordTemp" - Name 492 "storeTempPre" - Name 496 "storeTempPost" - Name 503 "coordTemp" - Name 506 "storeTempPre" - Name 510 "storeTempPost" - Name 517 "coordTemp" - Name 520 "storeTempPre" - Name 524 "storeTempPost" - Name 531 "storeTemp" - Name 539 "psout" - Name 547 "@entryPointOutput.Color" - Name 552 "g_sSamp" - Name 555 "g_tTex1df1a" - Name 558 "g_tTex1di1a" - Name 561 "g_tTex1du1a" - Name 564 "g_tTex2df1a" - Name 567 "g_tTex2di1a" - Name 570 "g_tTex2du1a" + Name 424 "coordTemp" + Name 427 "storeTemp" + Name 437 "coordTemp" + Name 440 "storeTemp" + Name 450 "coordTemp" + Name 453 "storeTemp" + Name 463 "coordTemp" + Name 466 "storeTemp" + Name 476 "coordTemp" + Name 479 "storeTempPre" + Name 484 "storeTempPost" + Name 491 "coordTemp" + Name 494 "storeTempPre" + Name 499 "storeTempPost" + Name 506 "coordTemp" + Name 509 "storeTempPre" + Name 514 "storeTempPost" + Name 521 "coordTemp" + Name 524 "storeTempPre" + Name 529 "storeTempPost" + Name 536 "coordTemp" + Name 539 "storeTempPre" + Name 544 "storeTempPost" + Name 551 "coordTemp" + Name 554 "storeTempPre" + Name 559 "storeTempPost" + Name 566 "storeTemp" + Name 575 "psout" + Name 583 "@entryPointOutput.Color" + Name 588 "g_sSamp" + Name 591 "g_tTex1df1a" + Name 594 "g_tTex1di1a" + Name 597 "g_tTex1du1a" + Name 600 "g_tTex2df1a" + Name 603 "g_tTex2di1a" + Name 606 "g_tTex2du1a" MemberDecorate 59($Global) 0 Offset 0 MemberDecorate 59($Global) 1 Offset 8 MemberDecorate 59($Global) 2 Offset 16 @@ -1843,37 +1842,37 @@ Validation failed Decorate 61 Binding 10 Decorate 70(g_tTex1df1) DescriptorSet 0 Decorate 70(g_tTex1df1) Binding 1 - Decorate 83(g_tTex1di1) DescriptorSet 0 - Decorate 83(g_tTex1di1) Binding 2 - Decorate 91(g_tTex1du1) DescriptorSet 0 - Decorate 91(g_tTex1du1) Binding 3 - Decorate 99(g_tTex2df1) DescriptorSet 0 - Decorate 99(g_tTex2df1) Binding 4 - Decorate 109(g_tTex2di1) DescriptorSet 0 - Decorate 109(g_tTex2di1) Binding 5 - Decorate 117(g_tTex2du1) DescriptorSet 0 - Decorate 117(g_tTex2du1) Binding 6 - Decorate 125(g_tTex3df1) DescriptorSet 0 - Decorate 125(g_tTex3df1) Binding 7 - Decorate 135(g_tTex3di1) DescriptorSet 0 - Decorate 135(g_tTex3di1) Binding 8 - Decorate 143(g_tTex3du1) DescriptorSet 0 - Decorate 143(g_tTex3du1) Binding 9 - Decorate 547(@entryPointOutput.Color) Location 0 - Decorate 552(g_sSamp) DescriptorSet 0 - Decorate 552(g_sSamp) Binding 0 - Decorate 555(g_tTex1df1a) DescriptorSet 0 - Decorate 555(g_tTex1df1a) Binding 0 - Decorate 558(g_tTex1di1a) DescriptorSet 0 - Decorate 558(g_tTex1di1a) Binding 0 - Decorate 561(g_tTex1du1a) DescriptorSet 0 - Decorate 561(g_tTex1du1a) Binding 0 - Decorate 564(g_tTex2df1a) DescriptorSet 0 - Decorate 564(g_tTex2df1a) Binding 0 - Decorate 567(g_tTex2di1a) DescriptorSet 0 - Decorate 567(g_tTex2di1a) Binding 0 - Decorate 570(g_tTex2du1a) DescriptorSet 0 - Decorate 570(g_tTex2du1a) Binding 0 + Decorate 85(g_tTex1di1) DescriptorSet 0 + Decorate 85(g_tTex1di1) Binding 2 + Decorate 94(g_tTex1du1) DescriptorSet 0 + Decorate 94(g_tTex1du1) Binding 3 + Decorate 104(g_tTex2df1) DescriptorSet 0 + Decorate 104(g_tTex2df1) Binding 4 + Decorate 115(g_tTex2di1) DescriptorSet 0 + Decorate 115(g_tTex2di1) Binding 5 + Decorate 124(g_tTex2du1) DescriptorSet 0 + Decorate 124(g_tTex2du1) Binding 6 + Decorate 133(g_tTex3df1) DescriptorSet 0 + Decorate 133(g_tTex3df1) Binding 7 + Decorate 144(g_tTex3di1) DescriptorSet 0 + Decorate 144(g_tTex3di1) Binding 8 + Decorate 153(g_tTex3du1) DescriptorSet 0 + Decorate 153(g_tTex3du1) Binding 9 + Decorate 583(@entryPointOutput.Color) Location 0 + Decorate 588(g_sSamp) DescriptorSet 0 + Decorate 588(g_sSamp) Binding 0 + Decorate 591(g_tTex1df1a) DescriptorSet 0 + Decorate 591(g_tTex1df1a) Binding 0 + Decorate 594(g_tTex1di1a) DescriptorSet 0 + Decorate 594(g_tTex1di1a) Binding 0 + Decorate 597(g_tTex1du1a) DescriptorSet 0 + Decorate 597(g_tTex1du1a) Binding 0 + Decorate 600(g_tTex2df1a) DescriptorSet 0 + Decorate 600(g_tTex2df1a) Binding 0 + Decorate 603(g_tTex2di1a) DescriptorSet 0 + Decorate 603(g_tTex2di1a) Binding 0 + Decorate 606(g_tTex2du1a) DescriptorSet 0 + Decorate 606(g_tTex2du1a) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -1905,79 +1904,80 @@ Validation failed 68: TypeImage 18(float) 1D nonsampled format:R32f 69: TypePointer UniformConstant 68 70(g_tTex1df1): 69(ptr) Variable UniformConstant - 81: TypeImage 6(int) 1D nonsampled format:R32i - 82: TypePointer UniformConstant 81 - 83(g_tTex1di1): 82(ptr) Variable UniformConstant - 89: TypeImage 12(int) 1D nonsampled format:R32ui - 90: TypePointer UniformConstant 89 - 91(g_tTex1du1): 90(ptr) Variable UniformConstant - 97: TypeImage 18(float) 2D nonsampled format:R32f - 98: TypePointer UniformConstant 97 - 99(g_tTex2df1): 98(ptr) Variable UniformConstant - 101: 6(int) Constant 1 - 102: TypePointer Uniform 56(ivec2) - 107: TypeImage 6(int) 2D nonsampled format:R32i - 108: TypePointer UniformConstant 107 - 109(g_tTex2di1): 108(ptr) Variable UniformConstant - 115: TypeImage 12(int) 2D nonsampled format:R32ui - 116: TypePointer UniformConstant 115 - 117(g_tTex2du1): 116(ptr) Variable UniformConstant - 123: TypeImage 18(float) 3D nonsampled format:R32f - 124: TypePointer UniformConstant 123 - 125(g_tTex3df1): 124(ptr) Variable UniformConstant - 127: 6(int) Constant 2 - 128: TypePointer Uniform 57(ivec3) - 133: TypeImage 6(int) 3D nonsampled format:R32i - 134: TypePointer UniformConstant 133 - 135(g_tTex3di1): 134(ptr) Variable UniformConstant - 141: TypeImage 12(int) 3D nonsampled format:R32ui - 142: TypePointer UniformConstant 141 - 143(g_tTex3du1): 142(ptr) Variable UniformConstant - 149: 6(int) Constant 8 - 150: TypePointer Uniform 18(float) - 169: 12(int) Constant 3 - 182: 18(float) Constant 1073741824 - 196: 18(float) Constant 1077936128 - 209: 18(float) Constant 1082130432 - 246: 6(int) Constant 65535 - 259: 6(int) Constant 61680 - 300: 6(int) Constant 5 - 306: 12(int) Constant 6 - 327: 12(int) Constant 9 - 382: 18(float) Constant 1065353216 - 533: 6(int) Constant 3 - 534: 56(ivec2) ConstantComposite 127 533 - 538: TypePointer Function 40(PS_OUTPUT) - 540: 39(fvec4) ConstantComposite 382 382 382 382 - 541: TypePointer Function 39(fvec4) - 546: TypePointer Output 39(fvec4) -547(@entryPointOutput.Color): 546(ptr) Variable Output - 550: TypeSampler - 551: TypePointer UniformConstant 550 - 552(g_sSamp): 551(ptr) Variable UniformConstant - 553: TypeImage 18(float) 1D array nonsampled format:R32f - 554: TypePointer UniformConstant 553 -555(g_tTex1df1a): 554(ptr) Variable UniformConstant - 556: TypeImage 6(int) 1D array nonsampled format:R32i - 557: TypePointer UniformConstant 556 -558(g_tTex1di1a): 557(ptr) Variable UniformConstant - 559: TypeImage 12(int) 1D array nonsampled format:R32ui - 560: TypePointer UniformConstant 559 -561(g_tTex1du1a): 560(ptr) Variable UniformConstant - 562: TypeImage 18(float) 2D array nonsampled format:R32f - 563: TypePointer UniformConstant 562 -564(g_tTex2df1a): 563(ptr) Variable UniformConstant - 565: TypeImage 6(int) 2D array nonsampled format:R32i - 566: TypePointer UniformConstant 565 -567(g_tTex2di1a): 566(ptr) Variable UniformConstant - 568: TypeImage 12(int) 2D array nonsampled format:R32ui - 569: TypePointer UniformConstant 568 -570(g_tTex2du1a): 569(ptr) Variable UniformConstant + 83: TypeImage 6(int) 1D nonsampled format:R32i + 84: TypePointer UniformConstant 83 + 85(g_tTex1di1): 84(ptr) Variable UniformConstant + 92: TypeImage 12(int) 1D nonsampled format:R32ui + 93: TypePointer UniformConstant 92 + 94(g_tTex1du1): 93(ptr) Variable UniformConstant + 98: TypeVector 12(int) 4 + 102: TypeImage 18(float) 2D nonsampled format:R32f + 103: TypePointer UniformConstant 102 + 104(g_tTex2df1): 103(ptr) Variable UniformConstant + 106: 6(int) Constant 1 + 107: TypePointer Uniform 56(ivec2) + 113: TypeImage 6(int) 2D nonsampled format:R32i + 114: TypePointer UniformConstant 113 + 115(g_tTex2di1): 114(ptr) Variable UniformConstant + 122: TypeImage 12(int) 2D nonsampled format:R32ui + 123: TypePointer UniformConstant 122 + 124(g_tTex2du1): 123(ptr) Variable UniformConstant + 131: TypeImage 18(float) 3D nonsampled format:R32f + 132: TypePointer UniformConstant 131 + 133(g_tTex3df1): 132(ptr) Variable UniformConstant + 135: 6(int) Constant 2 + 136: TypePointer Uniform 57(ivec3) + 142: TypeImage 6(int) 3D nonsampled format:R32i + 143: TypePointer UniformConstant 142 + 144(g_tTex3di1): 143(ptr) Variable UniformConstant + 151: TypeImage 12(int) 3D nonsampled format:R32ui + 152: TypePointer UniformConstant 151 + 153(g_tTex3du1): 152(ptr) Variable UniformConstant + 160: 6(int) Constant 8 + 161: TypePointer Uniform 18(float) + 180: 12(int) Constant 3 + 194: 18(float) Constant 1073741824 + 209: 18(float) Constant 1077936128 + 223: 18(float) Constant 1082130432 + 263: 6(int) Constant 65535 + 277: 6(int) Constant 61680 + 320: 6(int) Constant 5 + 326: 12(int) Constant 6 + 347: 12(int) Constant 9 + 406: 18(float) Constant 1065353216 + 568: 6(int) Constant 3 + 569: 56(ivec2) ConstantComposite 135 568 + 574: TypePointer Function 40(PS_OUTPUT) + 576: 39(fvec4) ConstantComposite 406 406 406 406 + 577: TypePointer Function 39(fvec4) + 582: TypePointer Output 39(fvec4) +583(@entryPointOutput.Color): 582(ptr) Variable Output + 586: TypeSampler + 587: TypePointer UniformConstant 586 + 588(g_sSamp): 587(ptr) Variable UniformConstant + 589: TypeImage 18(float) 1D array nonsampled format:R32f + 590: TypePointer UniformConstant 589 +591(g_tTex1df1a): 590(ptr) Variable UniformConstant + 592: TypeImage 6(int) 1D array nonsampled format:R32i + 593: TypePointer UniformConstant 592 +594(g_tTex1di1a): 593(ptr) Variable UniformConstant + 595: TypeImage 12(int) 1D array nonsampled format:R32ui + 596: TypePointer UniformConstant 595 +597(g_tTex1du1a): 596(ptr) Variable UniformConstant + 598: TypeImage 18(float) 2D array nonsampled format:R32f + 599: TypePointer UniformConstant 598 +600(g_tTex2df1a): 599(ptr) Variable UniformConstant + 601: TypeImage 6(int) 2D array nonsampled format:R32i + 602: TypePointer UniformConstant 601 +603(g_tTex2di1a): 602(ptr) Variable UniformConstant + 604: TypeImage 12(int) 2D array nonsampled format:R32ui + 605: TypePointer UniformConstant 604 +606(g_tTex2du1a): 605(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label - 548:40(PS_OUTPUT) FunctionCall 42(@main() - 549: 39(fvec4) CompositeExtract 548 0 - Store 547(@entryPointOutput.Color) 549 + 584:40(PS_OUTPUT) FunctionCall 42(@main() + 585: 39(fvec4) CompositeExtract 584 0 + Store 583(@entryPointOutput.Color) 585 Return FunctionEnd 10(Fn1(i1;): 6(int) Function None 8 @@ -2025,567 +2025,602 @@ Validation failed FunctionEnd 42(@main():40(PS_OUTPUT) Function None 41 43: Label - 75(r00): 19(ptr) Variable Function - 80(r01): 7(ptr) Variable Function - 88(r02): 13(ptr) Variable Function - 96(r10): 19(ptr) Variable Function - 106(r11): 7(ptr) Variable Function - 114(r12): 13(ptr) Variable Function - 122(r20): 19(ptr) Variable Function - 132(r21): 7(ptr) Variable Function - 140(r22): 13(ptr) Variable Function - 148(lf1): 19(ptr) Variable Function - 153(storeTemp): 19(ptr) Variable Function - 163(storeTemp): 7(ptr) Variable Function - 168(storeTemp): 13(ptr) Variable Function - 174(val1): 19(ptr) Variable Function - 175(coordTemp): 7(ptr) Variable Function - 178(storeTemp): 19(ptr) Variable Function - 189(coordTemp): 7(ptr) Variable Function - 192(storeTemp): 19(ptr) Variable Function - 202(coordTemp): 7(ptr) Variable Function - 205(storeTemp): 19(ptr) Variable Function + 76(r00): 19(ptr) Variable Function + 82(r01): 7(ptr) Variable Function + 91(r02): 13(ptr) Variable Function + 101(r10): 19(ptr) Variable Function + 112(r11): 7(ptr) Variable Function + 121(r12): 13(ptr) Variable Function + 130(r20): 19(ptr) Variable Function + 141(r21): 7(ptr) Variable Function + 150(r22): 13(ptr) Variable Function + 159(lf1): 19(ptr) Variable Function + 164(storeTemp): 19(ptr) Variable Function + 174(storeTemp): 7(ptr) Variable Function + 179(storeTemp): 13(ptr) Variable Function + 185(val1): 19(ptr) Variable Function + 186(coordTemp): 7(ptr) Variable Function + 189(storeTemp): 19(ptr) Variable Function + 201(coordTemp): 7(ptr) Variable Function + 204(storeTemp): 19(ptr) Variable Function 215(coordTemp): 7(ptr) Variable Function - 218(storeTemp): 7(ptr) Variable Function - 227(coordTemp): 7(ptr) Variable Function - 230(storeTemp): 7(ptr) Variable Function - 239(coordTemp): 7(ptr) Variable Function - 242(storeTemp): 7(ptr) Variable Function - 252(coordTemp): 7(ptr) Variable Function - 255(storeTemp): 7(ptr) Variable Function - 265(coordTemp): 7(ptr) Variable Function - 268(storeTemp): 7(ptr) Variable Function - 277(coordTemp): 7(ptr) Variable Function - 280(storeTemp): 7(ptr) Variable Function - 289(storeTemp): 19(ptr) Variable Function + 218(storeTemp): 19(ptr) Variable Function + 229(coordTemp): 7(ptr) Variable Function + 232(storeTemp): 7(ptr) Variable Function + 242(coordTemp): 7(ptr) Variable Function + 245(storeTemp): 7(ptr) Variable Function + 255(coordTemp): 7(ptr) Variable Function + 258(storeTemp): 7(ptr) Variable Function + 269(coordTemp): 7(ptr) Variable Function + 272(storeTemp): 7(ptr) Variable Function + 283(coordTemp): 7(ptr) Variable Function + 286(storeTemp): 7(ptr) Variable Function + 296(coordTemp): 7(ptr) Variable Function 299(storeTemp): 7(ptr) Variable Function - 305(storeTemp): 13(ptr) Variable Function - 311(storeTemp): 19(ptr) Variable Function - 321(storeTemp): 7(ptr) Variable Function - 326(storeTemp): 13(ptr) Variable Function - 336(param): 19(ptr) Variable Function - 342(param): 7(ptr) Variable Function - 348(param): 13(ptr) Variable Function - 350(tempArg): 19(ptr) Variable Function - 351(param): 19(ptr) Variable Function - 358(tempArg): 7(ptr) Variable Function - 359(param): 7(ptr) Variable Function - 366(tempArg): 13(ptr) Variable Function - 367(param): 13(ptr) Variable Function - 374(coordTemp): 7(ptr) Variable Function - 377(storeTemp): 19(ptr) Variable Function - 387(coordTemp): 7(ptr) Variable Function - 390(storeTemp): 7(ptr) Variable Function - 399(coordTemp): 7(ptr) Variable Function - 402(storeTemp): 13(ptr) Variable Function + 309(storeTemp): 19(ptr) Variable Function + 319(storeTemp): 7(ptr) Variable Function + 325(storeTemp): 13(ptr) Variable Function + 331(storeTemp): 19(ptr) Variable Function + 341(storeTemp): 7(ptr) Variable Function + 346(storeTemp): 13(ptr) Variable Function + 357(param): 19(ptr) Variable Function + 364(param): 7(ptr) Variable Function + 371(param): 13(ptr) Variable Function + 373(tempArg): 19(ptr) Variable Function + 374(param): 19(ptr) Variable Function + 381(tempArg): 7(ptr) Variable Function + 382(param): 7(ptr) Variable Function + 389(tempArg): 13(ptr) Variable Function + 390(param): 13(ptr) Variable Function + 397(coordTemp): 7(ptr) Variable Function + 400(storeTemp): 19(ptr) Variable Function 411(coordTemp): 7(ptr) Variable Function - 414(storeTemp): 19(ptr) Variable Function - 423(coordTemp): 7(ptr) Variable Function - 426(storeTemp): 7(ptr) Variable Function - 435(coordTemp): 7(ptr) Variable Function - 438(storeTemp): 13(ptr) Variable Function - 447(coordTemp): 7(ptr) Variable Function -450(storeTempPre): 19(ptr) Variable Function -454(storeTempPost): 19(ptr) Variable Function - 461(coordTemp): 7(ptr) Variable Function -464(storeTempPre): 13(ptr) Variable Function -468(storeTempPost): 13(ptr) Variable Function - 475(coordTemp): 7(ptr) Variable Function -478(storeTempPre): 7(ptr) Variable Function -482(storeTempPost): 7(ptr) Variable Function - 489(coordTemp): 7(ptr) Variable Function -492(storeTempPre): 19(ptr) Variable Function -496(storeTempPost): 19(ptr) Variable Function - 503(coordTemp): 7(ptr) Variable Function -506(storeTempPre): 7(ptr) Variable Function -510(storeTempPost): 7(ptr) Variable Function - 517(coordTemp): 7(ptr) Variable Function -520(storeTempPre): 13(ptr) Variable Function -524(storeTempPost): 13(ptr) Variable Function - 531(storeTemp): 19(ptr) Variable Function - 539(psout): 538(ptr) Variable Function + 414(storeTemp): 7(ptr) Variable Function + 424(coordTemp): 7(ptr) Variable Function + 427(storeTemp): 13(ptr) Variable Function + 437(coordTemp): 7(ptr) Variable Function + 440(storeTemp): 19(ptr) Variable Function + 450(coordTemp): 7(ptr) Variable Function + 453(storeTemp): 7(ptr) Variable Function + 463(coordTemp): 7(ptr) Variable Function + 466(storeTemp): 13(ptr) Variable Function + 476(coordTemp): 7(ptr) Variable Function +479(storeTempPre): 19(ptr) Variable Function +484(storeTempPost): 19(ptr) Variable Function + 491(coordTemp): 7(ptr) Variable Function +494(storeTempPre): 13(ptr) Variable Function +499(storeTempPost): 13(ptr) Variable Function + 506(coordTemp): 7(ptr) Variable Function +509(storeTempPre): 7(ptr) Variable Function +514(storeTempPost): 7(ptr) Variable Function + 521(coordTemp): 7(ptr) Variable Function +524(storeTempPre): 19(ptr) Variable Function +529(storeTempPost): 19(ptr) Variable Function + 536(coordTemp): 7(ptr) Variable Function +539(storeTempPre): 7(ptr) Variable Function +544(storeTempPost): 7(ptr) Variable Function + 551(coordTemp): 7(ptr) Variable Function +554(storeTempPre): 13(ptr) Variable Function +559(storeTempPost): 13(ptr) Variable Function + 566(storeTemp): 19(ptr) Variable Function + 575(psout): 574(ptr) Variable Function 71: 68 Load 70(g_tTex1df1) 72: 62(ptr) AccessChain 61 53 73: 6(int) Load 72 - 74: 18(float) ImageRead 71 73 - 76: 68 Load 70(g_tTex1df1) - 77: 62(ptr) AccessChain 61 53 - 78: 6(int) Load 77 - 79: 18(float) ImageRead 76 78 - Store 75(r00) 79 - 84: 81 Load 83(g_tTex1di1) - 85: 62(ptr) AccessChain 61 53 - 86: 6(int) Load 85 - 87: 6(int) ImageRead 84 86 - Store 80(r01) 87 - 92: 89 Load 91(g_tTex1du1) - 93: 62(ptr) AccessChain 61 53 - 94: 6(int) Load 93 - 95: 12(int) ImageRead 92 94 - Store 88(r02) 95 - 100: 97 Load 99(g_tTex2df1) - 103: 102(ptr) AccessChain 61 101 - 104: 56(ivec2) Load 103 - 105: 18(float) ImageRead 100 104 - Store 96(r10) 105 - 110: 107 Load 109(g_tTex2di1) - 111: 102(ptr) AccessChain 61 101 - 112: 56(ivec2) Load 111 - 113: 6(int) ImageRead 110 112 - Store 106(r11) 113 - 118: 115 Load 117(g_tTex2du1) - 119: 102(ptr) AccessChain 61 101 - 120: 56(ivec2) Load 119 - 121: 12(int) ImageRead 118 120 - Store 114(r12) 121 - 126: 123 Load 125(g_tTex3df1) - 129: 128(ptr) AccessChain 61 127 - 130: 57(ivec3) Load 129 - 131: 18(float) ImageRead 126 130 - Store 122(r20) 131 - 136: 133 Load 135(g_tTex3di1) - 137: 128(ptr) AccessChain 61 127 + 74: 39(fvec4) ImageRead 71 73 + 75: 18(float) CompositeExtract 74 0 + 77: 68 Load 70(g_tTex1df1) + 78: 62(ptr) AccessChain 61 53 + 79: 6(int) Load 78 + 80: 39(fvec4) ImageRead 77 79 + 81: 18(float) CompositeExtract 80 0 + Store 76(r00) 81 + 86: 83 Load 85(g_tTex1di1) + 87: 62(ptr) AccessChain 61 53 + 88: 6(int) Load 87 + 89: 58(ivec4) ImageRead 86 88 + 90: 6(int) CompositeExtract 89 0 + Store 82(r01) 90 + 95: 92 Load 94(g_tTex1du1) + 96: 62(ptr) AccessChain 61 53 + 97: 6(int) Load 96 + 99: 98(ivec4) ImageRead 95 97 + 100: 12(int) CompositeExtract 99 0 + Store 91(r02) 100 + 105: 102 Load 104(g_tTex2df1) + 108: 107(ptr) AccessChain 61 106 + 109: 56(ivec2) Load 108 + 110: 39(fvec4) ImageRead 105 109 + 111: 18(float) CompositeExtract 110 0 + Store 101(r10) 111 + 116: 113 Load 115(g_tTex2di1) + 117: 107(ptr) AccessChain 61 106 + 118: 56(ivec2) Load 117 + 119: 58(ivec4) ImageRead 116 118 + 120: 6(int) CompositeExtract 119 0 + Store 112(r11) 120 + 125: 122 Load 124(g_tTex2du1) + 126: 107(ptr) AccessChain 61 106 + 127: 56(ivec2) Load 126 + 128: 98(ivec4) ImageRead 125 127 + 129: 12(int) CompositeExtract 128 0 + Store 121(r12) 129 + 134: 131 Load 133(g_tTex3df1) + 137: 136(ptr) AccessChain 61 135 138: 57(ivec3) Load 137 - 139: 6(int) ImageRead 136 138 - Store 132(r21) 139 - 144: 141 Load 143(g_tTex3du1) - 145: 128(ptr) AccessChain 61 127 - 146: 57(ivec3) Load 145 - 147: 12(int) ImageRead 144 146 - Store 140(r22) 147 - 151: 150(ptr) AccessChain 61 149 - 152: 18(float) Load 151 - Store 148(lf1) 152 - 154: 18(float) FunctionCall 37(SomeValue() - Store 153(storeTemp) 154 - 155: 68 Load 70(g_tTex1df1) - 156: 62(ptr) AccessChain 61 53 - 157: 6(int) Load 156 - 158: 18(float) Load 153(storeTemp) - ImageWrite 155 157 158 - 159: 68 Load 70(g_tTex1df1) - 160: 62(ptr) AccessChain 61 53 - 161: 6(int) Load 160 - 162: 18(float) Load 148(lf1) - ImageWrite 159 161 162 - Store 163(storeTemp) 127 - 164: 81 Load 83(g_tTex1di1) - 165: 62(ptr) AccessChain 61 53 - 166: 6(int) Load 165 - 167: 6(int) Load 163(storeTemp) - ImageWrite 164 166 167 - Store 168(storeTemp) 169 - 170: 89 Load 91(g_tTex1du1) + 139: 39(fvec4) ImageRead 134 138 + 140: 18(float) CompositeExtract 139 0 + Store 130(r20) 140 + 145: 142 Load 144(g_tTex3di1) + 146: 136(ptr) AccessChain 61 135 + 147: 57(ivec3) Load 146 + 148: 58(ivec4) ImageRead 145 147 + 149: 6(int) CompositeExtract 148 0 + Store 141(r21) 149 + 154: 151 Load 153(g_tTex3du1) + 155: 136(ptr) AccessChain 61 135 + 156: 57(ivec3) Load 155 + 157: 98(ivec4) ImageRead 154 156 + 158: 12(int) CompositeExtract 157 0 + Store 150(r22) 158 + 162: 161(ptr) AccessChain 61 160 + 163: 18(float) Load 162 + Store 159(lf1) 163 + 165: 18(float) FunctionCall 37(SomeValue() + Store 164(storeTemp) 165 + 166: 68 Load 70(g_tTex1df1) + 167: 62(ptr) AccessChain 61 53 + 168: 6(int) Load 167 + 169: 18(float) Load 164(storeTemp) + ImageWrite 166 168 169 + 170: 68 Load 70(g_tTex1df1) 171: 62(ptr) AccessChain 61 53 172: 6(int) Load 171 - 173: 12(int) Load 168(storeTemp) + 173: 18(float) Load 159(lf1) ImageWrite 170 172 173 + Store 174(storeTemp) 135 + 175: 83 Load 85(g_tTex1di1) 176: 62(ptr) AccessChain 61 53 177: 6(int) Load 176 - Store 175(coordTemp) 177 - 179: 68 Load 70(g_tTex1df1) - 180: 6(int) Load 175(coordTemp) - 181: 18(float) ImageRead 179 180 - Store 178(storeTemp) 181 - 183: 18(float) Load 178(storeTemp) - 184: 18(float) FMul 183 182 - Store 178(storeTemp) 184 - 185: 68 Load 70(g_tTex1df1) - 186: 6(int) Load 175(coordTemp) - 187: 18(float) Load 178(storeTemp) - ImageWrite 185 186 187 - 188: 18(float) Load 178(storeTemp) - Store 174(val1) 188 - 190: 62(ptr) AccessChain 61 53 - 191: 6(int) Load 190 - Store 189(coordTemp) 191 - 193: 68 Load 70(g_tTex1df1) - 194: 6(int) Load 189(coordTemp) - 195: 18(float) ImageRead 193 194 - Store 192(storeTemp) 195 - 197: 18(float) Load 192(storeTemp) - 198: 18(float) FSub 197 196 - Store 192(storeTemp) 198 - 199: 68 Load 70(g_tTex1df1) - 200: 6(int) Load 189(coordTemp) - 201: 18(float) Load 192(storeTemp) - ImageWrite 199 200 201 - 203: 62(ptr) AccessChain 61 53 - 204: 6(int) Load 203 - Store 202(coordTemp) 204 - 206: 68 Load 70(g_tTex1df1) - 207: 6(int) Load 202(coordTemp) - 208: 18(float) ImageRead 206 207 - Store 205(storeTemp) 208 - 210: 18(float) Load 205(storeTemp) - 211: 18(float) FAdd 210 209 - Store 205(storeTemp) 211 + 178: 6(int) Load 174(storeTemp) + ImageWrite 175 177 178 + Store 179(storeTemp) 180 + 181: 92 Load 94(g_tTex1du1) + 182: 62(ptr) AccessChain 61 53 + 183: 6(int) Load 182 + 184: 12(int) Load 179(storeTemp) + ImageWrite 181 183 184 + 187: 62(ptr) AccessChain 61 53 + 188: 6(int) Load 187 + Store 186(coordTemp) 188 + 190: 68 Load 70(g_tTex1df1) + 191: 6(int) Load 186(coordTemp) + 192: 39(fvec4) ImageRead 190 191 + 193: 18(float) CompositeExtract 192 0 + Store 189(storeTemp) 193 + 195: 18(float) Load 189(storeTemp) + 196: 18(float) FMul 195 194 + Store 189(storeTemp) 196 + 197: 68 Load 70(g_tTex1df1) + 198: 6(int) Load 186(coordTemp) + 199: 18(float) Load 189(storeTemp) + ImageWrite 197 198 199 + 200: 18(float) Load 189(storeTemp) + Store 185(val1) 200 + 202: 62(ptr) AccessChain 61 53 + 203: 6(int) Load 202 + Store 201(coordTemp) 203 + 205: 68 Load 70(g_tTex1df1) + 206: 6(int) Load 201(coordTemp) + 207: 39(fvec4) ImageRead 205 206 + 208: 18(float) CompositeExtract 207 0 + Store 204(storeTemp) 208 + 210: 18(float) Load 204(storeTemp) + 211: 18(float) FSub 210 209 + Store 204(storeTemp) 211 212: 68 Load 70(g_tTex1df1) - 213: 6(int) Load 202(coordTemp) - 214: 18(float) Load 205(storeTemp) + 213: 6(int) Load 201(coordTemp) + 214: 18(float) Load 204(storeTemp) ImageWrite 212 213 214 216: 62(ptr) AccessChain 61 53 217: 6(int) Load 216 Store 215(coordTemp) 217 - 219: 81 Load 83(g_tTex1di1) + 219: 68 Load 70(g_tTex1df1) 220: 6(int) Load 215(coordTemp) - 221: 6(int) ImageRead 219 220 - Store 218(storeTemp) 221 - 222: 6(int) Load 218(storeTemp) - 223: 6(int) SDiv 222 127 - Store 218(storeTemp) 223 - 224: 81 Load 83(g_tTex1di1) - 225: 6(int) Load 215(coordTemp) - 226: 6(int) Load 218(storeTemp) - ImageWrite 224 225 226 - 228: 62(ptr) AccessChain 61 53 - 229: 6(int) Load 228 - Store 227(coordTemp) 229 - 231: 81 Load 83(g_tTex1di1) - 232: 6(int) Load 227(coordTemp) - 233: 6(int) ImageRead 231 232 - Store 230(storeTemp) 233 - 234: 6(int) Load 230(storeTemp) - 235: 6(int) SMod 234 127 - Store 230(storeTemp) 235 - 236: 81 Load 83(g_tTex1di1) - 237: 6(int) Load 227(coordTemp) - 238: 6(int) Load 230(storeTemp) - ImageWrite 236 237 238 - 240: 62(ptr) AccessChain 61 53 - 241: 6(int) Load 240 - Store 239(coordTemp) 241 - 243: 81 Load 83(g_tTex1di1) - 244: 6(int) Load 239(coordTemp) - 245: 6(int) ImageRead 243 244 - Store 242(storeTemp) 245 - 247: 6(int) Load 242(storeTemp) - 248: 6(int) BitwiseAnd 247 246 - Store 242(storeTemp) 248 - 249: 81 Load 83(g_tTex1di1) - 250: 6(int) Load 239(coordTemp) - 251: 6(int) Load 242(storeTemp) - ImageWrite 249 250 251 - 253: 62(ptr) AccessChain 61 53 - 254: 6(int) Load 253 - Store 252(coordTemp) 254 - 256: 81 Load 83(g_tTex1di1) - 257: 6(int) Load 252(coordTemp) - 258: 6(int) ImageRead 256 257 - Store 255(storeTemp) 258 - 260: 6(int) Load 255(storeTemp) - 261: 6(int) BitwiseOr 260 259 - Store 255(storeTemp) 261 - 262: 81 Load 83(g_tTex1di1) - 263: 6(int) Load 252(coordTemp) - 264: 6(int) Load 255(storeTemp) - ImageWrite 262 263 264 - 266: 62(ptr) AccessChain 61 53 - 267: 6(int) Load 266 - Store 265(coordTemp) 267 - 269: 81 Load 83(g_tTex1di1) - 270: 6(int) Load 265(coordTemp) - 271: 6(int) ImageRead 269 270 - Store 268(storeTemp) 271 - 272: 6(int) Load 268(storeTemp) - 273: 6(int) ShiftLeftLogical 272 127 - Store 268(storeTemp) 273 - 274: 81 Load 83(g_tTex1di1) - 275: 6(int) Load 265(coordTemp) - 276: 6(int) Load 268(storeTemp) - ImageWrite 274 275 276 - 278: 62(ptr) AccessChain 61 53 - 279: 6(int) Load 278 - Store 277(coordTemp) 279 - 281: 81 Load 83(g_tTex1di1) - 282: 6(int) Load 277(coordTemp) - 283: 6(int) ImageRead 281 282 - Store 280(storeTemp) 283 - 284: 6(int) Load 280(storeTemp) - 285: 6(int) ShiftRightArithmetic 284 127 - Store 280(storeTemp) 285 - 286: 81 Load 83(g_tTex1di1) - 287: 6(int) Load 277(coordTemp) - 288: 6(int) Load 280(storeTemp) - ImageWrite 286 287 288 - 290: 18(float) FunctionCall 37(SomeValue() - Store 289(storeTemp) 290 - 291: 97 Load 99(g_tTex2df1) - 292: 102(ptr) AccessChain 61 101 - 293: 56(ivec2) Load 292 - 294: 18(float) Load 289(storeTemp) - ImageWrite 291 293 294 - 295: 97 Load 99(g_tTex2df1) - 296: 102(ptr) AccessChain 61 101 - 297: 56(ivec2) Load 296 - 298: 18(float) Load 148(lf1) - ImageWrite 295 297 298 - Store 299(storeTemp) 300 - 301: 107 Load 109(g_tTex2di1) - 302: 102(ptr) AccessChain 61 101 - 303: 56(ivec2) Load 302 + 221: 39(fvec4) ImageRead 219 220 + 222: 18(float) CompositeExtract 221 0 + Store 218(storeTemp) 222 + 224: 18(float) Load 218(storeTemp) + 225: 18(float) FAdd 224 223 + Store 218(storeTemp) 225 + 226: 68 Load 70(g_tTex1df1) + 227: 6(int) Load 215(coordTemp) + 228: 18(float) Load 218(storeTemp) + ImageWrite 226 227 228 + 230: 62(ptr) AccessChain 61 53 + 231: 6(int) Load 230 + Store 229(coordTemp) 231 + 233: 83 Load 85(g_tTex1di1) + 234: 6(int) Load 229(coordTemp) + 235: 58(ivec4) ImageRead 233 234 + 236: 6(int) CompositeExtract 235 0 + Store 232(storeTemp) 236 + 237: 6(int) Load 232(storeTemp) + 238: 6(int) SDiv 237 135 + Store 232(storeTemp) 238 + 239: 83 Load 85(g_tTex1di1) + 240: 6(int) Load 229(coordTemp) + 241: 6(int) Load 232(storeTemp) + ImageWrite 239 240 241 + 243: 62(ptr) AccessChain 61 53 + 244: 6(int) Load 243 + Store 242(coordTemp) 244 + 246: 83 Load 85(g_tTex1di1) + 247: 6(int) Load 242(coordTemp) + 248: 58(ivec4) ImageRead 246 247 + 249: 6(int) CompositeExtract 248 0 + Store 245(storeTemp) 249 + 250: 6(int) Load 245(storeTemp) + 251: 6(int) SMod 250 135 + Store 245(storeTemp) 251 + 252: 83 Load 85(g_tTex1di1) + 253: 6(int) Load 242(coordTemp) + 254: 6(int) Load 245(storeTemp) + ImageWrite 252 253 254 + 256: 62(ptr) AccessChain 61 53 + 257: 6(int) Load 256 + Store 255(coordTemp) 257 + 259: 83 Load 85(g_tTex1di1) + 260: 6(int) Load 255(coordTemp) + 261: 58(ivec4) ImageRead 259 260 + 262: 6(int) CompositeExtract 261 0 + Store 258(storeTemp) 262 + 264: 6(int) Load 258(storeTemp) + 265: 6(int) BitwiseAnd 264 263 + Store 258(storeTemp) 265 + 266: 83 Load 85(g_tTex1di1) + 267: 6(int) Load 255(coordTemp) + 268: 6(int) Load 258(storeTemp) + ImageWrite 266 267 268 + 270: 62(ptr) AccessChain 61 53 + 271: 6(int) Load 270 + Store 269(coordTemp) 271 + 273: 83 Load 85(g_tTex1di1) + 274: 6(int) Load 269(coordTemp) + 275: 58(ivec4) ImageRead 273 274 + 276: 6(int) CompositeExtract 275 0 + Store 272(storeTemp) 276 + 278: 6(int) Load 272(storeTemp) + 279: 6(int) BitwiseOr 278 277 + Store 272(storeTemp) 279 + 280: 83 Load 85(g_tTex1di1) + 281: 6(int) Load 269(coordTemp) + 282: 6(int) Load 272(storeTemp) + ImageWrite 280 281 282 + 284: 62(ptr) AccessChain 61 53 + 285: 6(int) Load 284 + Store 283(coordTemp) 285 + 287: 83 Load 85(g_tTex1di1) + 288: 6(int) Load 283(coordTemp) + 289: 58(ivec4) ImageRead 287 288 + 290: 6(int) CompositeExtract 289 0 + Store 286(storeTemp) 290 + 291: 6(int) Load 286(storeTemp) + 292: 6(int) ShiftLeftLogical 291 135 + Store 286(storeTemp) 292 + 293: 83 Load 85(g_tTex1di1) + 294: 6(int) Load 283(coordTemp) + 295: 6(int) Load 286(storeTemp) + ImageWrite 293 294 295 + 297: 62(ptr) AccessChain 61 53 + 298: 6(int) Load 297 + Store 296(coordTemp) 298 + 300: 83 Load 85(g_tTex1di1) + 301: 6(int) Load 296(coordTemp) + 302: 58(ivec4) ImageRead 300 301 + 303: 6(int) CompositeExtract 302 0 + Store 299(storeTemp) 303 304: 6(int) Load 299(storeTemp) - ImageWrite 301 303 304 - Store 305(storeTemp) 306 - 307: 115 Load 117(g_tTex2du1) - 308: 102(ptr) AccessChain 61 101 - 309: 56(ivec2) Load 308 - 310: 12(int) Load 305(storeTemp) - ImageWrite 307 309 310 - 312: 18(float) FunctionCall 37(SomeValue() - Store 311(storeTemp) 312 - 313: 123 Load 125(g_tTex3df1) - 314: 128(ptr) AccessChain 61 127 - 315: 57(ivec3) Load 314 - 316: 18(float) Load 311(storeTemp) - ImageWrite 313 315 316 - 317: 123 Load 125(g_tTex3df1) - 318: 128(ptr) AccessChain 61 127 - 319: 57(ivec3) Load 318 - 320: 18(float) Load 148(lf1) - ImageWrite 317 319 320 - Store 321(storeTemp) 149 - 322: 133 Load 135(g_tTex3di1) - 323: 128(ptr) AccessChain 61 127 - 324: 57(ivec3) Load 323 - 325: 6(int) Load 321(storeTemp) - ImageWrite 322 324 325 - Store 326(storeTemp) 327 - 328: 141 Load 143(g_tTex3du1) - 329: 128(ptr) AccessChain 61 127 - 330: 57(ivec3) Load 329 - 331: 12(int) Load 326(storeTemp) - ImageWrite 328 330 331 - 332: 68 Load 70(g_tTex1df1) - 333: 62(ptr) AccessChain 61 53 - 334: 6(int) Load 333 - 335: 18(float) ImageRead 332 334 - Store 336(param) 335 - 337: 18(float) FunctionCall 22(Fn1(f1;) 336(param) - 338: 81 Load 83(g_tTex1di1) - 339: 62(ptr) AccessChain 61 53 - 340: 6(int) Load 339 - 341: 6(int) ImageRead 338 340 - Store 342(param) 341 - 343: 6(int) FunctionCall 10(Fn1(i1;) 342(param) - 344: 89 Load 91(g_tTex1du1) - 345: 62(ptr) AccessChain 61 53 - 346: 6(int) Load 345 - 347: 12(int) ImageRead 344 346 - Store 348(param) 347 - 349: 12(int) FunctionCall 16(Fn1(u1;) 348(param) - 352: 2 FunctionCall 34(Fn2(f1;) 351(param) - 353: 18(float) Load 351(param) - Store 350(tempArg) 353 - 354: 68 Load 70(g_tTex1df1) - 355: 62(ptr) AccessChain 61 53 - 356: 6(int) Load 355 - 357: 18(float) Load 350(tempArg) - ImageWrite 354 356 357 - 360: 2 FunctionCall 26(Fn2(i1;) 359(param) - 361: 6(int) Load 359(param) - Store 358(tempArg) 361 - 362: 81 Load 83(g_tTex1di1) - 363: 62(ptr) AccessChain 61 53 - 364: 6(int) Load 363 - 365: 6(int) Load 358(tempArg) - ImageWrite 362 364 365 - 368: 2 FunctionCall 30(Fn2(u1;) 367(param) - 369: 12(int) Load 367(param) - Store 366(tempArg) 369 - 370: 89 Load 91(g_tTex1du1) - 371: 62(ptr) AccessChain 61 53 - 372: 6(int) Load 371 - 373: 12(int) Load 366(tempArg) - ImageWrite 370 372 373 - 375: 62(ptr) AccessChain 61 53 - 376: 6(int) Load 375 - Store 374(coordTemp) 376 - 378: 68 Load 70(g_tTex1df1) - 379: 6(int) Load 374(coordTemp) - 380: 18(float) ImageRead 378 379 - Store 377(storeTemp) 380 - 381: 18(float) Load 377(storeTemp) - 383: 18(float) FAdd 381 382 - Store 377(storeTemp) 383 - 384: 68 Load 70(g_tTex1df1) - 385: 6(int) Load 374(coordTemp) - 386: 18(float) Load 377(storeTemp) - ImageWrite 384 385 386 - 388: 62(ptr) AccessChain 61 53 - 389: 6(int) Load 388 - Store 387(coordTemp) 389 - 391: 81 Load 83(g_tTex1di1) - 392: 6(int) Load 387(coordTemp) - 393: 6(int) ImageRead 391 392 - Store 390(storeTemp) 393 - 394: 6(int) Load 390(storeTemp) - 395: 6(int) IAdd 394 101 - Store 390(storeTemp) 395 - 396: 81 Load 83(g_tTex1di1) - 397: 6(int) Load 387(coordTemp) - 398: 6(int) Load 390(storeTemp) - ImageWrite 396 397 398 - 400: 62(ptr) AccessChain 61 53 - 401: 6(int) Load 400 - Store 399(coordTemp) 401 - 403: 89 Load 91(g_tTex1du1) - 404: 6(int) Load 399(coordTemp) - 405: 12(int) ImageRead 403 404 - Store 402(storeTemp) 405 - 406: 12(int) Load 402(storeTemp) - 407: 12(int) IAdd 406 101 - Store 402(storeTemp) 407 - 408: 89 Load 91(g_tTex1du1) - 409: 6(int) Load 399(coordTemp) - 410: 12(int) Load 402(storeTemp) + 305: 6(int) ShiftRightArithmetic 304 135 + Store 299(storeTemp) 305 + 306: 83 Load 85(g_tTex1di1) + 307: 6(int) Load 296(coordTemp) + 308: 6(int) Load 299(storeTemp) + ImageWrite 306 307 308 + 310: 18(float) FunctionCall 37(SomeValue() + Store 309(storeTemp) 310 + 311: 102 Load 104(g_tTex2df1) + 312: 107(ptr) AccessChain 61 106 + 313: 56(ivec2) Load 312 + 314: 18(float) Load 309(storeTemp) + ImageWrite 311 313 314 + 315: 102 Load 104(g_tTex2df1) + 316: 107(ptr) AccessChain 61 106 + 317: 56(ivec2) Load 316 + 318: 18(float) Load 159(lf1) + ImageWrite 315 317 318 + Store 319(storeTemp) 320 + 321: 113 Load 115(g_tTex2di1) + 322: 107(ptr) AccessChain 61 106 + 323: 56(ivec2) Load 322 + 324: 6(int) Load 319(storeTemp) + ImageWrite 321 323 324 + Store 325(storeTemp) 326 + 327: 122 Load 124(g_tTex2du1) + 328: 107(ptr) AccessChain 61 106 + 329: 56(ivec2) Load 328 + 330: 12(int) Load 325(storeTemp) + ImageWrite 327 329 330 + 332: 18(float) FunctionCall 37(SomeValue() + Store 331(storeTemp) 332 + 333: 131 Load 133(g_tTex3df1) + 334: 136(ptr) AccessChain 61 135 + 335: 57(ivec3) Load 334 + 336: 18(float) Load 331(storeTemp) + ImageWrite 333 335 336 + 337: 131 Load 133(g_tTex3df1) + 338: 136(ptr) AccessChain 61 135 + 339: 57(ivec3) Load 338 + 340: 18(float) Load 159(lf1) + ImageWrite 337 339 340 + Store 341(storeTemp) 160 + 342: 142 Load 144(g_tTex3di1) + 343: 136(ptr) AccessChain 61 135 + 344: 57(ivec3) Load 343 + 345: 6(int) Load 341(storeTemp) + ImageWrite 342 344 345 + Store 346(storeTemp) 347 + 348: 151 Load 153(g_tTex3du1) + 349: 136(ptr) AccessChain 61 135 + 350: 57(ivec3) Load 349 + 351: 12(int) Load 346(storeTemp) + ImageWrite 348 350 351 + 352: 68 Load 70(g_tTex1df1) + 353: 62(ptr) AccessChain 61 53 + 354: 6(int) Load 353 + 355: 39(fvec4) ImageRead 352 354 + 356: 18(float) CompositeExtract 355 0 + Store 357(param) 356 + 358: 18(float) FunctionCall 22(Fn1(f1;) 357(param) + 359: 83 Load 85(g_tTex1di1) + 360: 62(ptr) AccessChain 61 53 + 361: 6(int) Load 360 + 362: 58(ivec4) ImageRead 359 361 + 363: 6(int) CompositeExtract 362 0 + Store 364(param) 363 + 365: 6(int) FunctionCall 10(Fn1(i1;) 364(param) + 366: 92 Load 94(g_tTex1du1) + 367: 62(ptr) AccessChain 61 53 + 368: 6(int) Load 367 + 369: 98(ivec4) ImageRead 366 368 + 370: 12(int) CompositeExtract 369 0 + Store 371(param) 370 + 372: 12(int) FunctionCall 16(Fn1(u1;) 371(param) + 375: 2 FunctionCall 34(Fn2(f1;) 374(param) + 376: 18(float) Load 374(param) + Store 373(tempArg) 376 + 377: 68 Load 70(g_tTex1df1) + 378: 62(ptr) AccessChain 61 53 + 379: 6(int) Load 378 + 380: 18(float) Load 373(tempArg) + ImageWrite 377 379 380 + 383: 2 FunctionCall 26(Fn2(i1;) 382(param) + 384: 6(int) Load 382(param) + Store 381(tempArg) 384 + 385: 83 Load 85(g_tTex1di1) + 386: 62(ptr) AccessChain 61 53 + 387: 6(int) Load 386 + 388: 6(int) Load 381(tempArg) + ImageWrite 385 387 388 + 391: 2 FunctionCall 30(Fn2(u1;) 390(param) + 392: 12(int) Load 390(param) + Store 389(tempArg) 392 + 393: 92 Load 94(g_tTex1du1) + 394: 62(ptr) AccessChain 61 53 + 395: 6(int) Load 394 + 396: 12(int) Load 389(tempArg) + ImageWrite 393 395 396 + 398: 62(ptr) AccessChain 61 53 + 399: 6(int) Load 398 + Store 397(coordTemp) 399 + 401: 68 Load 70(g_tTex1df1) + 402: 6(int) Load 397(coordTemp) + 403: 39(fvec4) ImageRead 401 402 + 404: 18(float) CompositeExtract 403 0 + Store 400(storeTemp) 404 + 405: 18(float) Load 400(storeTemp) + 407: 18(float) FAdd 405 406 + Store 400(storeTemp) 407 + 408: 68 Load 70(g_tTex1df1) + 409: 6(int) Load 397(coordTemp) + 410: 18(float) Load 400(storeTemp) ImageWrite 408 409 410 412: 62(ptr) AccessChain 61 53 413: 6(int) Load 412 Store 411(coordTemp) 413 - 415: 68 Load 70(g_tTex1df1) + 415: 83 Load 85(g_tTex1di1) 416: 6(int) Load 411(coordTemp) - 417: 18(float) ImageRead 415 416 - Store 414(storeTemp) 417 - 418: 18(float) Load 414(storeTemp) - 419: 18(float) FSub 418 382 - Store 414(storeTemp) 419 - 420: 68 Load 70(g_tTex1df1) - 421: 6(int) Load 411(coordTemp) - 422: 18(float) Load 414(storeTemp) - ImageWrite 420 421 422 - 424: 62(ptr) AccessChain 61 53 - 425: 6(int) Load 424 - Store 423(coordTemp) 425 - 427: 81 Load 83(g_tTex1di1) - 428: 6(int) Load 423(coordTemp) - 429: 6(int) ImageRead 427 428 - Store 426(storeTemp) 429 - 430: 6(int) Load 426(storeTemp) - 431: 6(int) ISub 430 101 - Store 426(storeTemp) 431 - 432: 81 Load 83(g_tTex1di1) - 433: 6(int) Load 423(coordTemp) - 434: 6(int) Load 426(storeTemp) - ImageWrite 432 433 434 - 436: 62(ptr) AccessChain 61 53 - 437: 6(int) Load 436 - Store 435(coordTemp) 437 - 439: 89 Load 91(g_tTex1du1) - 440: 6(int) Load 435(coordTemp) - 441: 12(int) ImageRead 439 440 - Store 438(storeTemp) 441 - 442: 12(int) Load 438(storeTemp) - 443: 12(int) ISub 442 101 - Store 438(storeTemp) 443 - 444: 89 Load 91(g_tTex1du1) - 445: 6(int) Load 435(coordTemp) - 446: 12(int) Load 438(storeTemp) - ImageWrite 444 445 446 - 448: 62(ptr) AccessChain 61 53 - 449: 6(int) Load 448 - Store 447(coordTemp) 449 - 451: 68 Load 70(g_tTex1df1) - 452: 6(int) Load 447(coordTemp) - 453: 18(float) ImageRead 451 452 - Store 450(storeTempPre) 453 - 455: 18(float) Load 450(storeTempPre) - Store 454(storeTempPost) 455 - 456: 18(float) Load 454(storeTempPost) - 457: 18(float) FAdd 456 382 - Store 454(storeTempPost) 457 - 458: 68 Load 70(g_tTex1df1) - 459: 6(int) Load 447(coordTemp) - 460: 18(float) Load 454(storeTempPost) - ImageWrite 458 459 460 - 462: 62(ptr) AccessChain 61 53 - 463: 6(int) Load 462 - Store 461(coordTemp) 463 - 465: 89 Load 91(g_tTex1du1) - 466: 6(int) Load 461(coordTemp) - 467: 12(int) ImageRead 465 466 - Store 464(storeTempPre) 467 - 469: 12(int) Load 464(storeTempPre) - Store 468(storeTempPost) 469 - 470: 12(int) Load 468(storeTempPost) - 471: 12(int) ISub 470 101 - Store 468(storeTempPost) 471 - 472: 89 Load 91(g_tTex1du1) - 473: 6(int) Load 461(coordTemp) - 474: 12(int) Load 468(storeTempPost) - ImageWrite 472 473 474 - 476: 62(ptr) AccessChain 61 53 - 477: 6(int) Load 476 - Store 475(coordTemp) 477 - 479: 81 Load 83(g_tTex1di1) - 480: 6(int) Load 475(coordTemp) - 481: 6(int) ImageRead 479 480 - Store 478(storeTempPre) 481 - 483: 6(int) Load 478(storeTempPre) - Store 482(storeTempPost) 483 - 484: 6(int) Load 482(storeTempPost) - 485: 6(int) IAdd 484 101 - Store 482(storeTempPost) 485 - 486: 81 Load 83(g_tTex1di1) - 487: 6(int) Load 475(coordTemp) - 488: 6(int) Load 482(storeTempPost) - ImageWrite 486 487 488 - 490: 62(ptr) AccessChain 61 53 - 491: 6(int) Load 490 - Store 489(coordTemp) 491 - 493: 68 Load 70(g_tTex1df1) - 494: 6(int) Load 489(coordTemp) - 495: 18(float) ImageRead 493 494 - Store 492(storeTempPre) 495 - 497: 18(float) Load 492(storeTempPre) - Store 496(storeTempPost) 497 - 498: 18(float) Load 496(storeTempPost) - 499: 18(float) FSub 498 382 - Store 496(storeTempPost) 499 - 500: 68 Load 70(g_tTex1df1) - 501: 6(int) Load 489(coordTemp) - 502: 18(float) Load 496(storeTempPost) - ImageWrite 500 501 502 - 504: 62(ptr) AccessChain 61 53 - 505: 6(int) Load 504 - Store 503(coordTemp) 505 - 507: 81 Load 83(g_tTex1di1) - 508: 6(int) Load 503(coordTemp) - 509: 6(int) ImageRead 507 508 - Store 506(storeTempPre) 509 - 511: 6(int) Load 506(storeTempPre) - Store 510(storeTempPost) 511 - 512: 6(int) Load 510(storeTempPost) - 513: 6(int) IAdd 512 101 - Store 510(storeTempPost) 513 - 514: 81 Load 83(g_tTex1di1) - 515: 6(int) Load 503(coordTemp) - 516: 6(int) Load 510(storeTempPost) - ImageWrite 514 515 516 - 518: 62(ptr) AccessChain 61 53 - 519: 6(int) Load 518 - Store 517(coordTemp) 519 - 521: 89 Load 91(g_tTex1du1) - 522: 6(int) Load 517(coordTemp) - 523: 12(int) ImageRead 521 522 - Store 520(storeTempPre) 523 - 525: 12(int) Load 520(storeTempPre) - Store 524(storeTempPost) 525 - 526: 12(int) Load 524(storeTempPost) - 527: 12(int) ISub 526 101 - Store 524(storeTempPost) 527 - 528: 89 Load 91(g_tTex1du1) - 529: 6(int) Load 517(coordTemp) - 530: 12(int) Load 524(storeTempPost) - ImageWrite 528 529 530 - 532: 97 Load 99(g_tTex2df1) - 535: 18(float) ImageRead 532 534 - Store 531(storeTemp) 535 - 536: 68 Load 70(g_tTex1df1) - 537: 18(float) Load 531(storeTemp) - ImageWrite 536 101 537 - 542: 541(ptr) AccessChain 539(psout) 53 - Store 542 540 - 543:40(PS_OUTPUT) Load 539(psout) - ReturnValue 543 + 417: 58(ivec4) ImageRead 415 416 + 418: 6(int) CompositeExtract 417 0 + Store 414(storeTemp) 418 + 419: 6(int) Load 414(storeTemp) + 420: 6(int) IAdd 419 106 + Store 414(storeTemp) 420 + 421: 83 Load 85(g_tTex1di1) + 422: 6(int) Load 411(coordTemp) + 423: 6(int) Load 414(storeTemp) + ImageWrite 421 422 423 + 425: 62(ptr) AccessChain 61 53 + 426: 6(int) Load 425 + Store 424(coordTemp) 426 + 428: 92 Load 94(g_tTex1du1) + 429: 6(int) Load 424(coordTemp) + 430: 98(ivec4) ImageRead 428 429 + 431: 12(int) CompositeExtract 430 0 + Store 427(storeTemp) 431 + 432: 12(int) Load 427(storeTemp) + 433: 12(int) IAdd 432 106 + Store 427(storeTemp) 433 + 434: 92 Load 94(g_tTex1du1) + 435: 6(int) Load 424(coordTemp) + 436: 12(int) Load 427(storeTemp) + ImageWrite 434 435 436 + 438: 62(ptr) AccessChain 61 53 + 439: 6(int) Load 438 + Store 437(coordTemp) 439 + 441: 68 Load 70(g_tTex1df1) + 442: 6(int) Load 437(coordTemp) + 443: 39(fvec4) ImageRead 441 442 + 444: 18(float) CompositeExtract 443 0 + Store 440(storeTemp) 444 + 445: 18(float) Load 440(storeTemp) + 446: 18(float) FSub 445 406 + Store 440(storeTemp) 446 + 447: 68 Load 70(g_tTex1df1) + 448: 6(int) Load 437(coordTemp) + 449: 18(float) Load 440(storeTemp) + ImageWrite 447 448 449 + 451: 62(ptr) AccessChain 61 53 + 452: 6(int) Load 451 + Store 450(coordTemp) 452 + 454: 83 Load 85(g_tTex1di1) + 455: 6(int) Load 450(coordTemp) + 456: 58(ivec4) ImageRead 454 455 + 457: 6(int) CompositeExtract 456 0 + Store 453(storeTemp) 457 + 458: 6(int) Load 453(storeTemp) + 459: 6(int) ISub 458 106 + Store 453(storeTemp) 459 + 460: 83 Load 85(g_tTex1di1) + 461: 6(int) Load 450(coordTemp) + 462: 6(int) Load 453(storeTemp) + ImageWrite 460 461 462 + 464: 62(ptr) AccessChain 61 53 + 465: 6(int) Load 464 + Store 463(coordTemp) 465 + 467: 92 Load 94(g_tTex1du1) + 468: 6(int) Load 463(coordTemp) + 469: 98(ivec4) ImageRead 467 468 + 470: 12(int) CompositeExtract 469 0 + Store 466(storeTemp) 470 + 471: 12(int) Load 466(storeTemp) + 472: 12(int) ISub 471 106 + Store 466(storeTemp) 472 + 473: 92 Load 94(g_tTex1du1) + 474: 6(int) Load 463(coordTemp) + 475: 12(int) Load 466(storeTemp) + ImageWrite 473 474 475 + 477: 62(ptr) AccessChain 61 53 + 478: 6(int) Load 477 + Store 476(coordTemp) 478 + 480: 68 Load 70(g_tTex1df1) + 481: 6(int) Load 476(coordTemp) + 482: 39(fvec4) ImageRead 480 481 + 483: 18(float) CompositeExtract 482 0 + Store 479(storeTempPre) 483 + 485: 18(float) Load 479(storeTempPre) + Store 484(storeTempPost) 485 + 486: 18(float) Load 484(storeTempPost) + 487: 18(float) FAdd 486 406 + Store 484(storeTempPost) 487 + 488: 68 Load 70(g_tTex1df1) + 489: 6(int) Load 476(coordTemp) + 490: 18(float) Load 484(storeTempPost) + ImageWrite 488 489 490 + 492: 62(ptr) AccessChain 61 53 + 493: 6(int) Load 492 + Store 491(coordTemp) 493 + 495: 92 Load 94(g_tTex1du1) + 496: 6(int) Load 491(coordTemp) + 497: 98(ivec4) ImageRead 495 496 + 498: 12(int) CompositeExtract 497 0 + Store 494(storeTempPre) 498 + 500: 12(int) Load 494(storeTempPre) + Store 499(storeTempPost) 500 + 501: 12(int) Load 499(storeTempPost) + 502: 12(int) ISub 501 106 + Store 499(storeTempPost) 502 + 503: 92 Load 94(g_tTex1du1) + 504: 6(int) Load 491(coordTemp) + 505: 12(int) Load 499(storeTempPost) + ImageWrite 503 504 505 + 507: 62(ptr) AccessChain 61 53 + 508: 6(int) Load 507 + Store 506(coordTemp) 508 + 510: 83 Load 85(g_tTex1di1) + 511: 6(int) Load 506(coordTemp) + 512: 58(ivec4) ImageRead 510 511 + 513: 6(int) CompositeExtract 512 0 + Store 509(storeTempPre) 513 + 515: 6(int) Load 509(storeTempPre) + Store 514(storeTempPost) 515 + 516: 6(int) Load 514(storeTempPost) + 517: 6(int) IAdd 516 106 + Store 514(storeTempPost) 517 + 518: 83 Load 85(g_tTex1di1) + 519: 6(int) Load 506(coordTemp) + 520: 6(int) Load 514(storeTempPost) + ImageWrite 518 519 520 + 522: 62(ptr) AccessChain 61 53 + 523: 6(int) Load 522 + Store 521(coordTemp) 523 + 525: 68 Load 70(g_tTex1df1) + 526: 6(int) Load 521(coordTemp) + 527: 39(fvec4) ImageRead 525 526 + 528: 18(float) CompositeExtract 527 0 + Store 524(storeTempPre) 528 + 530: 18(float) Load 524(storeTempPre) + Store 529(storeTempPost) 530 + 531: 18(float) Load 529(storeTempPost) + 532: 18(float) FSub 531 406 + Store 529(storeTempPost) 532 + 533: 68 Load 70(g_tTex1df1) + 534: 6(int) Load 521(coordTemp) + 535: 18(float) Load 529(storeTempPost) + ImageWrite 533 534 535 + 537: 62(ptr) AccessChain 61 53 + 538: 6(int) Load 537 + Store 536(coordTemp) 538 + 540: 83 Load 85(g_tTex1di1) + 541: 6(int) Load 536(coordTemp) + 542: 58(ivec4) ImageRead 540 541 + 543: 6(int) CompositeExtract 542 0 + Store 539(storeTempPre) 543 + 545: 6(int) Load 539(storeTempPre) + Store 544(storeTempPost) 545 + 546: 6(int) Load 544(storeTempPost) + 547: 6(int) IAdd 546 106 + Store 544(storeTempPost) 547 + 548: 83 Load 85(g_tTex1di1) + 549: 6(int) Load 536(coordTemp) + 550: 6(int) Load 544(storeTempPost) + ImageWrite 548 549 550 + 552: 62(ptr) AccessChain 61 53 + 553: 6(int) Load 552 + Store 551(coordTemp) 553 + 555: 92 Load 94(g_tTex1du1) + 556: 6(int) Load 551(coordTemp) + 557: 98(ivec4) ImageRead 555 556 + 558: 12(int) CompositeExtract 557 0 + Store 554(storeTempPre) 558 + 560: 12(int) Load 554(storeTempPre) + Store 559(storeTempPost) 560 + 561: 12(int) Load 559(storeTempPost) + 562: 12(int) ISub 561 106 + Store 559(storeTempPost) 562 + 563: 92 Load 94(g_tTex1du1) + 564: 6(int) Load 551(coordTemp) + 565: 12(int) Load 559(storeTempPost) + ImageWrite 563 564 565 + 567: 102 Load 104(g_tTex2df1) + 570: 39(fvec4) ImageRead 567 569 + 571: 18(float) CompositeExtract 570 0 + Store 566(storeTemp) 571 + 572: 68 Load 70(g_tTex1df1) + 573: 18(float) Load 566(storeTemp) + ImageWrite 572 106 573 + 578: 577(ptr) AccessChain 575(psout) 53 + Store 578 576 + 579:40(PS_OUTPUT) Load 575(psout) + ReturnValue 579 FunctionEnd diff --git a/Test/baseResults/hlsl.rw.vec2.bracket.frag.out b/Test/baseResults/hlsl.rw.vec2.bracket.frag.out index c8d10e6..1f77a77 100644 --- a/Test/baseResults/hlsl.rw.vec2.bracket.frag.out +++ b/Test/baseResults/hlsl.rw.vec2.bracket.frag.out @@ -1707,17 +1707,16 @@ gl_FragCoord origin is upper left 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) -Validation failed // Module Version 10000 // Generated by (magic number): 8000a -// Id's are bound by 605 +// Id's are bound by 711 Capability Shader Capability Image1D Capability StorageImageExtendedFormats 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 581 + EntryPoint Fragment 4 "main" 687 ExecutionMode 4 OriginUpperLeft Source HLSL 500 Name 4 "main" @@ -1751,101 +1750,101 @@ Validation failed MemberName 64($Global) 10 "uu2" Name 66 "" Name 76 "g_tTex1df2" - Name 82 "r00" - Name 87 "r01" - Name 90 "g_tTex1di2" - Name 95 "r02" - Name 98 "g_tTex1du2" - Name 103 "r10" - Name 106 "g_tTex2df2" - Name 111 "r11" - Name 114 "g_tTex2di2" - Name 119 "r12" - Name 122 "g_tTex2du2" - Name 127 "r20" - Name 130 "g_tTex3df2" - Name 137 "r21" - Name 140 "g_tTex3di2" - Name 145 "r22" - Name 148 "g_tTex3du2" - Name 153 "lf2" - Name 158 "storeTemp" - Name 168 "storeTemp" - Name 174 "storeTemp" - Name 182 "val1" - Name 184 "coordTemp" - Name 187 "storeTemp" - Name 198 "coordTemp" - Name 201 "storeTemp" - Name 212 "coordTemp" - Name 215 "storeTemp" - Name 226 "coordTemp" - Name 229 "storeTemp" - Name 239 "coordTemp" - Name 242 "storeTemp" - Name 252 "coordTemp" - Name 255 "storeTemp" + Name 85 "r00" + Name 93 "r01" + Name 96 "g_tTex1di2" + Name 104 "r02" + Name 107 "g_tTex1du2" + Name 116 "r10" + Name 119 "g_tTex2df2" + Name 127 "r11" + Name 130 "g_tTex2di2" + Name 138 "r12" + Name 141 "g_tTex2du2" + Name 149 "r20" + Name 152 "g_tTex3df2" + Name 162 "r21" + Name 165 "g_tTex3di2" + Name 173 "r22" + Name 176 "g_tTex3du2" + Name 184 "lf2" + Name 189 "storeTemp" + Name 199 "storeTemp" + Name 205 "storeTemp" + Name 213 "val1" + Name 215 "coordTemp" + Name 218 "storeTemp" + Name 232 "coordTemp" + Name 235 "storeTemp" + Name 249 "coordTemp" + Name 252 "storeTemp" Name 266 "coordTemp" Name 269 "storeTemp" - Name 280 "coordTemp" - Name 283 "storeTemp" - Name 293 "coordTemp" - Name 296 "storeTemp" - Name 306 "storeTemp" - Name 316 "storeTemp" - Name 323 "storeTemp" - Name 330 "storeTemp" - Name 340 "storeTemp" - Name 347 "storeTemp" - Name 358 "param" - Name 364 "param" - Name 370 "param" - Name 372 "tempArg" - Name 373 "param" - Name 380 "tempArg" - Name 381 "param" - Name 388 "tempArg" - Name 389 "param" - Name 396 "coordTemp" - Name 399 "storeTemp" - Name 410 "coordTemp" - Name 413 "storeTemp" - Name 423 "coordTemp" - Name 426 "storeTemp" - Name 436 "coordTemp" - Name 439 "storeTemp" - Name 449 "coordTemp" - Name 452 "storeTemp" - Name 462 "coordTemp" - Name 465 "storeTemp" - Name 475 "coordTemp" - Name 478 "storeTempPre" - Name 482 "storeTempPost" - Name 490 "coordTemp" - Name 493 "storeTempPre" - Name 497 "storeTempPost" - Name 505 "coordTemp" - Name 508 "storeTempPre" - Name 512 "storeTempPost" - Name 520 "coordTemp" - Name 523 "storeTempPre" - Name 527 "storeTempPost" - Name 535 "coordTemp" - Name 538 "storeTempPre" - Name 542 "storeTempPost" - Name 550 "coordTemp" - Name 553 "storeTempPre" - Name 557 "storeTempPost" - Name 565 "storeTemp" - Name 573 "psout" - Name 581 "@entryPointOutput.Color" - Name 586 "g_sSamp" - Name 589 "g_tTex1df2a" - Name 592 "g_tTex1di2a" - Name 595 "g_tTex1du2a" - Name 598 "g_tTex2df2a" - Name 601 "g_tTex2di2a" - Name 604 "g_tTex2du2a" + Name 282 "coordTemp" + Name 285 "storeTemp" + Name 298 "coordTemp" + Name 301 "storeTemp" + Name 315 "coordTemp" + Name 318 "storeTemp" + Name 332 "coordTemp" + Name 335 "storeTemp" + Name 348 "coordTemp" + Name 351 "storeTemp" + Name 364 "storeTemp" + Name 374 "storeTemp" + Name 381 "storeTemp" + Name 388 "storeTemp" + Name 398 "storeTemp" + Name 405 "storeTemp" + Name 419 "param" + Name 428 "param" + Name 437 "param" + Name 439 "tempArg" + Name 440 "param" + Name 447 "tempArg" + Name 448 "param" + Name 455 "tempArg" + Name 456 "param" + Name 463 "coordTemp" + Name 466 "storeTemp" + Name 480 "coordTemp" + Name 483 "storeTemp" + Name 496 "coordTemp" + Name 499 "storeTemp" + Name 512 "coordTemp" + Name 515 "storeTemp" + Name 528 "coordTemp" + Name 531 "storeTemp" + Name 544 "coordTemp" + Name 547 "storeTemp" + Name 560 "coordTemp" + Name 563 "storeTempPre" + Name 570 "storeTempPost" + Name 578 "coordTemp" + Name 581 "storeTempPre" + Name 588 "storeTempPost" + Name 596 "coordTemp" + Name 599 "storeTempPre" + Name 606 "storeTempPost" + Name 614 "coordTemp" + Name 617 "storeTempPre" + Name 624 "storeTempPost" + Name 632 "coordTemp" + Name 635 "storeTempPre" + Name 642 "storeTempPost" + Name 650 "coordTemp" + Name 653 "storeTempPre" + Name 660 "storeTempPost" + Name 668 "storeTemp" + Name 679 "psout" + Name 687 "@entryPointOutput.Color" + Name 692 "g_sSamp" + Name 695 "g_tTex1df2a" + Name 698 "g_tTex1di2a" + Name 701 "g_tTex1du2a" + Name 704 "g_tTex2df2a" + Name 707 "g_tTex2di2a" + Name 710 "g_tTex2du2a" MemberDecorate 64($Global) 0 Offset 0 MemberDecorate 64($Global) 1 Offset 8 MemberDecorate 64($Global) 2 Offset 16 @@ -1862,37 +1861,37 @@ Validation failed Decorate 66 Binding 10 Decorate 76(g_tTex1df2) DescriptorSet 0 Decorate 76(g_tTex1df2) Binding 1 - Decorate 90(g_tTex1di2) DescriptorSet 0 - Decorate 90(g_tTex1di2) Binding 2 - Decorate 98(g_tTex1du2) DescriptorSet 0 - Decorate 98(g_tTex1du2) Binding 3 - Decorate 106(g_tTex2df2) DescriptorSet 0 - Decorate 106(g_tTex2df2) Binding 4 - Decorate 114(g_tTex2di2) DescriptorSet 0 - Decorate 114(g_tTex2di2) Binding 5 - Decorate 122(g_tTex2du2) DescriptorSet 0 - Decorate 122(g_tTex2du2) Binding 6 - Decorate 130(g_tTex3df2) DescriptorSet 0 - Decorate 130(g_tTex3df2) Binding 7 - Decorate 140(g_tTex3di2) DescriptorSet 0 - Decorate 140(g_tTex3di2) Binding 8 - Decorate 148(g_tTex3du2) DescriptorSet 0 - Decorate 148(g_tTex3du2) Binding 9 - Decorate 581(@entryPointOutput.Color) Location 0 - Decorate 586(g_sSamp) DescriptorSet 0 - Decorate 586(g_sSamp) Binding 0 - Decorate 589(g_tTex1df2a) DescriptorSet 0 - Decorate 589(g_tTex1df2a) Binding 0 - Decorate 592(g_tTex1di2a) DescriptorSet 0 - Decorate 592(g_tTex1di2a) Binding 0 - Decorate 595(g_tTex1du2a) DescriptorSet 0 - Decorate 595(g_tTex1du2a) Binding 0 - Decorate 598(g_tTex2df2a) DescriptorSet 0 - Decorate 598(g_tTex2df2a) Binding 0 - Decorate 601(g_tTex2di2a) DescriptorSet 0 - Decorate 601(g_tTex2di2a) Binding 0 - Decorate 604(g_tTex2du2a) DescriptorSet 0 - Decorate 604(g_tTex2du2a) Binding 0 + Decorate 96(g_tTex1di2) DescriptorSet 0 + Decorate 96(g_tTex1di2) Binding 2 + Decorate 107(g_tTex1du2) DescriptorSet 0 + Decorate 107(g_tTex1du2) Binding 3 + Decorate 119(g_tTex2df2) DescriptorSet 0 + Decorate 119(g_tTex2df2) Binding 4 + Decorate 130(g_tTex2di2) DescriptorSet 0 + Decorate 130(g_tTex2di2) Binding 5 + Decorate 141(g_tTex2du2) DescriptorSet 0 + Decorate 141(g_tTex2du2) Binding 6 + Decorate 152(g_tTex3df2) DescriptorSet 0 + Decorate 152(g_tTex3df2) Binding 7 + Decorate 165(g_tTex3di2) DescriptorSet 0 + Decorate 165(g_tTex3di2) Binding 8 + Decorate 176(g_tTex3du2) DescriptorSet 0 + Decorate 176(g_tTex3du2) Binding 9 + Decorate 687(@entryPointOutput.Color) Location 0 + Decorate 692(g_sSamp) DescriptorSet 0 + Decorate 692(g_sSamp) Binding 0 + Decorate 695(g_tTex1df2a) DescriptorSet 0 + Decorate 695(g_tTex1df2a) Binding 0 + Decorate 698(g_tTex1di2a) DescriptorSet 0 + Decorate 698(g_tTex1di2a) Binding 0 + Decorate 701(g_tTex1du2a) DescriptorSet 0 + Decorate 701(g_tTex1du2a) Binding 0 + Decorate 704(g_tTex2df2a) DescriptorSet 0 + Decorate 704(g_tTex2df2a) Binding 0 + Decorate 707(g_tTex2di2a) DescriptorSet 0 + Decorate 707(g_tTex2di2a) Binding 0 + Decorate 710(g_tTex2du2a) DescriptorSet 0 + Decorate 710(g_tTex2du2a) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -1931,86 +1930,87 @@ Validation failed 75: TypePointer UniformConstant 74 76(g_tTex1df2): 75(ptr) Variable UniformConstant 78: TypePointer Uniform 6(int) - 88: TypeImage 6(int) 1D nonsampled format:Rg32i - 89: TypePointer UniformConstant 88 - 90(g_tTex1di2): 89(ptr) Variable UniformConstant - 96: TypeImage 13(int) 1D nonsampled format:Rg32ui - 97: TypePointer UniformConstant 96 - 98(g_tTex1du2): 97(ptr) Variable UniformConstant - 104: TypeImage 20(float) 2D nonsampled format:Rg32f - 105: TypePointer UniformConstant 104 - 106(g_tTex2df2): 105(ptr) Variable UniformConstant - 112: TypeImage 6(int) 2D nonsampled format:Rg32i - 113: TypePointer UniformConstant 112 - 114(g_tTex2di2): 113(ptr) Variable UniformConstant - 120: TypeImage 13(int) 2D nonsampled format:Rg32ui - 121: TypePointer UniformConstant 120 - 122(g_tTex2du2): 121(ptr) Variable UniformConstant - 128: TypeImage 20(float) 3D nonsampled format:Rg32f + 94: TypeImage 6(int) 1D nonsampled format:Rg32i + 95: TypePointer UniformConstant 94 + 96(g_tTex1di2): 95(ptr) Variable UniformConstant + 105: TypeImage 13(int) 1D nonsampled format:Rg32ui + 106: TypePointer UniformConstant 105 + 107(g_tTex1du2): 106(ptr) Variable UniformConstant + 111: TypeVector 13(int) 4 + 117: TypeImage 20(float) 2D nonsampled format:Rg32f + 118: TypePointer UniformConstant 117 + 119(g_tTex2df2): 118(ptr) Variable UniformConstant + 128: TypeImage 6(int) 2D nonsampled format:Rg32i 129: TypePointer UniformConstant 128 - 130(g_tTex3df2): 129(ptr) Variable UniformConstant - 132: 6(int) Constant 2 - 133: TypePointer Uniform 62(ivec3) - 138: TypeImage 6(int) 3D nonsampled format:Rg32i - 139: TypePointer UniformConstant 138 - 140(g_tTex3di2): 139(ptr) Variable UniformConstant - 146: TypeImage 13(int) 3D nonsampled format:Rg32ui - 147: TypePointer UniformConstant 146 - 148(g_tTex3du2): 147(ptr) Variable UniformConstant - 154: 6(int) Constant 8 - 155: TypePointer Uniform 21(fvec2) - 169: 7(ivec2) ConstantComposite 132 132 - 175: 13(int) Constant 3 - 176: 13(int) Constant 2 - 177: 14(ivec2) ConstantComposite 175 176 - 183: TypePointer Function 6(int) - 191: 20(float) Constant 1073741824 - 205: 20(float) Constant 1077936128 - 219: 20(float) Constant 1082130432 - 259: 6(int) Constant 65535 - 273: 6(int) Constant 61680 - 317: 6(int) Constant 5 - 318: 7(ivec2) ConstantComposite 317 132 - 324: 13(int) Constant 6 - 325: 14(ivec2) ConstantComposite 324 176 - 341: 6(int) Constant 6 - 342: 7(ivec2) ConstantComposite 154 341 - 348: 13(int) Constant 9 - 349: 14(ivec2) ConstantComposite 348 176 - 404: 20(float) Constant 1065353216 - 567: 6(int) Constant 3 - 568: 7(ivec2) ConstantComposite 132 567 - 572: TypePointer Function 43(PS_OUTPUT) - 574: 42(fvec4) ConstantComposite 404 404 404 404 - 575: TypePointer Function 42(fvec4) - 580: TypePointer Output 42(fvec4) -581(@entryPointOutput.Color): 580(ptr) Variable Output - 584: TypeSampler - 585: TypePointer UniformConstant 584 - 586(g_sSamp): 585(ptr) Variable UniformConstant - 587: TypeImage 20(float) 1D array nonsampled format:Rg32f - 588: TypePointer UniformConstant 587 -589(g_tTex1df2a): 588(ptr) Variable UniformConstant - 590: TypeImage 6(int) 1D array nonsampled format:Rg32i - 591: TypePointer UniformConstant 590 -592(g_tTex1di2a): 591(ptr) Variable UniformConstant - 593: TypeImage 13(int) 1D array nonsampled format:Rg32ui - 594: TypePointer UniformConstant 593 -595(g_tTex1du2a): 594(ptr) Variable UniformConstant - 596: TypeImage 20(float) 2D array nonsampled format:Rg32f - 597: TypePointer UniformConstant 596 -598(g_tTex2df2a): 597(ptr) Variable UniformConstant - 599: TypeImage 6(int) 2D array nonsampled format:Rg32i - 600: TypePointer UniformConstant 599 -601(g_tTex2di2a): 600(ptr) Variable UniformConstant - 602: TypeImage 13(int) 2D array nonsampled format:Rg32ui - 603: TypePointer UniformConstant 602 -604(g_tTex2du2a): 603(ptr) Variable UniformConstant + 130(g_tTex2di2): 129(ptr) Variable UniformConstant + 139: TypeImage 13(int) 2D nonsampled format:Rg32ui + 140: TypePointer UniformConstant 139 + 141(g_tTex2du2): 140(ptr) Variable UniformConstant + 150: TypeImage 20(float) 3D nonsampled format:Rg32f + 151: TypePointer UniformConstant 150 + 152(g_tTex3df2): 151(ptr) Variable UniformConstant + 154: 6(int) Constant 2 + 155: TypePointer Uniform 62(ivec3) + 163: TypeImage 6(int) 3D nonsampled format:Rg32i + 164: TypePointer UniformConstant 163 + 165(g_tTex3di2): 164(ptr) Variable UniformConstant + 174: TypeImage 13(int) 3D nonsampled format:Rg32ui + 175: TypePointer UniformConstant 174 + 176(g_tTex3du2): 175(ptr) Variable UniformConstant + 185: 6(int) Constant 8 + 186: TypePointer Uniform 21(fvec2) + 200: 7(ivec2) ConstantComposite 154 154 + 206: 13(int) Constant 3 + 207: 13(int) Constant 2 + 208: 14(ivec2) ConstantComposite 206 207 + 214: TypePointer Function 6(int) + 225: 20(float) Constant 1073741824 + 242: 20(float) Constant 1077936128 + 259: 20(float) Constant 1082130432 + 308: 6(int) Constant 65535 + 325: 6(int) Constant 61680 + 375: 6(int) Constant 5 + 376: 7(ivec2) ConstantComposite 375 154 + 382: 13(int) Constant 6 + 383: 14(ivec2) ConstantComposite 382 207 + 399: 6(int) Constant 6 + 400: 7(ivec2) ConstantComposite 185 399 + 406: 13(int) Constant 9 + 407: 14(ivec2) ConstantComposite 406 207 + 474: 20(float) Constant 1065353216 + 670: 6(int) Constant 3 + 671: 7(ivec2) ConstantComposite 154 670 + 678: TypePointer Function 43(PS_OUTPUT) + 680: 42(fvec4) ConstantComposite 474 474 474 474 + 681: TypePointer Function 42(fvec4) + 686: TypePointer Output 42(fvec4) +687(@entryPointOutput.Color): 686(ptr) Variable Output + 690: TypeSampler + 691: TypePointer UniformConstant 690 + 692(g_sSamp): 691(ptr) Variable UniformConstant + 693: TypeImage 20(float) 1D array nonsampled format:Rg32f + 694: TypePointer UniformConstant 693 +695(g_tTex1df2a): 694(ptr) Variable UniformConstant + 696: TypeImage 6(int) 1D array nonsampled format:Rg32i + 697: TypePointer UniformConstant 696 +698(g_tTex1di2a): 697(ptr) Variable UniformConstant + 699: TypeImage 13(int) 1D array nonsampled format:Rg32ui + 700: TypePointer UniformConstant 699 +701(g_tTex1du2a): 700(ptr) Variable UniformConstant + 702: TypeImage 20(float) 2D array nonsampled format:Rg32f + 703: TypePointer UniformConstant 702 +704(g_tTex2df2a): 703(ptr) Variable UniformConstant + 705: TypeImage 6(int) 2D array nonsampled format:Rg32i + 706: TypePointer UniformConstant 705 +707(g_tTex2di2a): 706(ptr) Variable UniformConstant + 708: TypeImage 13(int) 2D array nonsampled format:Rg32ui + 709: TypePointer UniformConstant 708 +710(g_tTex2du2a): 709(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label - 582:43(PS_OUTPUT) FunctionCall 45(@main() - 583: 42(fvec4) CompositeExtract 582 0 - Store 581(@entryPointOutput.Color) 583 + 688:43(PS_OUTPUT) FunctionCall 45(@main() + 689: 42(fvec4) CompositeExtract 688 0 + Store 687(@entryPointOutput.Color) 689 Return FunctionEnd 11(Fn1(vi2;): 7(ivec2) Function None 9 @@ -2058,587 +2058,692 @@ Validation failed FunctionEnd 45(@main():43(PS_OUTPUT) Function None 44 46: Label - 82(r00): 22(ptr) Variable Function - 87(r01): 8(ptr) Variable Function - 95(r02): 15(ptr) Variable Function - 103(r10): 22(ptr) Variable Function - 111(r11): 8(ptr) Variable Function - 119(r12): 15(ptr) Variable Function - 127(r20): 22(ptr) Variable Function - 137(r21): 8(ptr) Variable Function - 145(r22): 15(ptr) Variable Function - 153(lf2): 22(ptr) Variable Function - 158(storeTemp): 22(ptr) Variable Function - 168(storeTemp): 8(ptr) Variable Function - 174(storeTemp): 15(ptr) Variable Function - 182(val1): 22(ptr) Variable Function - 184(coordTemp): 183(ptr) Variable Function - 187(storeTemp): 22(ptr) Variable Function - 198(coordTemp): 183(ptr) Variable Function - 201(storeTemp): 22(ptr) Variable Function - 212(coordTemp): 183(ptr) Variable Function - 215(storeTemp): 22(ptr) Variable Function - 226(coordTemp): 183(ptr) Variable Function - 229(storeTemp): 8(ptr) Variable Function - 239(coordTemp): 183(ptr) Variable Function - 242(storeTemp): 8(ptr) Variable Function - 252(coordTemp): 183(ptr) Variable Function - 255(storeTemp): 8(ptr) Variable Function - 266(coordTemp): 183(ptr) Variable Function + 85(r00): 22(ptr) Variable Function + 93(r01): 8(ptr) Variable Function + 104(r02): 15(ptr) Variable Function + 116(r10): 22(ptr) Variable Function + 127(r11): 8(ptr) Variable Function + 138(r12): 15(ptr) Variable Function + 149(r20): 22(ptr) Variable Function + 162(r21): 8(ptr) Variable Function + 173(r22): 15(ptr) Variable Function + 184(lf2): 22(ptr) Variable Function + 189(storeTemp): 22(ptr) Variable Function + 199(storeTemp): 8(ptr) Variable Function + 205(storeTemp): 15(ptr) Variable Function + 213(val1): 22(ptr) Variable Function + 215(coordTemp): 214(ptr) Variable Function + 218(storeTemp): 22(ptr) Variable Function + 232(coordTemp): 214(ptr) Variable Function + 235(storeTemp): 22(ptr) Variable Function + 249(coordTemp): 214(ptr) Variable Function + 252(storeTemp): 22(ptr) Variable Function + 266(coordTemp): 214(ptr) Variable Function 269(storeTemp): 8(ptr) Variable Function - 280(coordTemp): 183(ptr) Variable Function - 283(storeTemp): 8(ptr) Variable Function - 293(coordTemp): 183(ptr) Variable Function - 296(storeTemp): 8(ptr) Variable Function - 306(storeTemp): 22(ptr) Variable Function - 316(storeTemp): 8(ptr) Variable Function - 323(storeTemp): 15(ptr) Variable Function - 330(storeTemp): 22(ptr) Variable Function - 340(storeTemp): 8(ptr) Variable Function - 347(storeTemp): 15(ptr) Variable Function - 358(param): 22(ptr) Variable Function - 364(param): 8(ptr) Variable Function - 370(param): 15(ptr) Variable Function - 372(tempArg): 22(ptr) Variable Function - 373(param): 22(ptr) Variable Function - 380(tempArg): 8(ptr) Variable Function - 381(param): 8(ptr) Variable Function - 388(tempArg): 15(ptr) Variable Function - 389(param): 15(ptr) Variable Function - 396(coordTemp): 183(ptr) Variable Function - 399(storeTemp): 22(ptr) Variable Function - 410(coordTemp): 183(ptr) Variable Function - 413(storeTemp): 8(ptr) Variable Function - 423(coordTemp): 183(ptr) Variable Function - 426(storeTemp): 15(ptr) Variable Function - 436(coordTemp): 183(ptr) Variable Function - 439(storeTemp): 22(ptr) Variable Function - 449(coordTemp): 183(ptr) Variable Function - 452(storeTemp): 8(ptr) Variable Function - 462(coordTemp): 183(ptr) Variable Function - 465(storeTemp): 15(ptr) Variable Function - 475(coordTemp): 183(ptr) Variable Function -478(storeTempPre): 22(ptr) Variable Function -482(storeTempPost): 22(ptr) Variable Function - 490(coordTemp): 183(ptr) Variable Function -493(storeTempPre): 15(ptr) Variable Function -497(storeTempPost): 15(ptr) Variable Function - 505(coordTemp): 183(ptr) Variable Function -508(storeTempPre): 8(ptr) Variable Function -512(storeTempPost): 8(ptr) Variable Function - 520(coordTemp): 183(ptr) Variable Function -523(storeTempPre): 22(ptr) Variable Function -527(storeTempPost): 22(ptr) Variable Function - 535(coordTemp): 183(ptr) Variable Function -538(storeTempPre): 8(ptr) Variable Function -542(storeTempPost): 8(ptr) Variable Function - 550(coordTemp): 183(ptr) Variable Function -553(storeTempPre): 15(ptr) Variable Function -557(storeTempPost): 15(ptr) Variable Function - 565(storeTemp): 22(ptr) Variable Function - 573(psout): 572(ptr) Variable Function + 282(coordTemp): 214(ptr) Variable Function + 285(storeTemp): 8(ptr) Variable Function + 298(coordTemp): 214(ptr) Variable Function + 301(storeTemp): 8(ptr) Variable Function + 315(coordTemp): 214(ptr) Variable Function + 318(storeTemp): 8(ptr) Variable Function + 332(coordTemp): 214(ptr) Variable Function + 335(storeTemp): 8(ptr) Variable Function + 348(coordTemp): 214(ptr) Variable Function + 351(storeTemp): 8(ptr) Variable Function + 364(storeTemp): 22(ptr) Variable Function + 374(storeTemp): 8(ptr) Variable Function + 381(storeTemp): 15(ptr) Variable Function + 388(storeTemp): 22(ptr) Variable Function + 398(storeTemp): 8(ptr) Variable Function + 405(storeTemp): 15(ptr) Variable Function + 419(param): 22(ptr) Variable Function + 428(param): 8(ptr) Variable Function + 437(param): 15(ptr) Variable Function + 439(tempArg): 22(ptr) Variable Function + 440(param): 22(ptr) Variable Function + 447(tempArg): 8(ptr) Variable Function + 448(param): 8(ptr) Variable Function + 455(tempArg): 15(ptr) Variable Function + 456(param): 15(ptr) Variable Function + 463(coordTemp): 214(ptr) Variable Function + 466(storeTemp): 22(ptr) Variable Function + 480(coordTemp): 214(ptr) Variable Function + 483(storeTemp): 8(ptr) Variable Function + 496(coordTemp): 214(ptr) Variable Function + 499(storeTemp): 15(ptr) Variable Function + 512(coordTemp): 214(ptr) Variable Function + 515(storeTemp): 22(ptr) Variable Function + 528(coordTemp): 214(ptr) Variable Function + 531(storeTemp): 8(ptr) Variable Function + 544(coordTemp): 214(ptr) Variable Function + 547(storeTemp): 15(ptr) Variable Function + 560(coordTemp): 214(ptr) Variable Function +563(storeTempPre): 22(ptr) Variable Function +570(storeTempPost): 22(ptr) Variable Function + 578(coordTemp): 214(ptr) Variable Function +581(storeTempPre): 15(ptr) Variable Function +588(storeTempPost): 15(ptr) Variable Function + 596(coordTemp): 214(ptr) Variable Function +599(storeTempPre): 8(ptr) Variable Function +606(storeTempPost): 8(ptr) Variable Function + 614(coordTemp): 214(ptr) Variable Function +617(storeTempPre): 22(ptr) Variable Function +624(storeTempPost): 22(ptr) Variable Function + 632(coordTemp): 214(ptr) Variable Function +635(storeTempPre): 8(ptr) Variable Function +642(storeTempPost): 8(ptr) Variable Function + 650(coordTemp): 214(ptr) Variable Function +653(storeTempPre): 15(ptr) Variable Function +660(storeTempPost): 15(ptr) Variable Function + 668(storeTemp): 22(ptr) Variable Function + 679(psout): 678(ptr) Variable Function 77: 74 Load 76(g_tTex1df2) 79: 78(ptr) AccessChain 66 56 80: 6(int) Load 79 - 81: 21(fvec2) ImageRead 77 80 - 83: 74 Load 76(g_tTex1df2) - 84: 78(ptr) AccessChain 66 56 - 85: 6(int) Load 84 - 86: 21(fvec2) ImageRead 83 85 - Store 82(r00) 86 - 91: 88 Load 90(g_tTex1di2) - 92: 78(ptr) AccessChain 66 56 - 93: 6(int) Load 92 - 94: 7(ivec2) ImageRead 91 93 - Store 87(r01) 94 - 99: 96 Load 98(g_tTex1du2) - 100: 78(ptr) AccessChain 66 56 - 101: 6(int) Load 100 - 102: 14(ivec2) ImageRead 99 101 - Store 95(r02) 102 - 107: 104 Load 106(g_tTex2df2) - 108: 68(ptr) AccessChain 66 67 - 109: 7(ivec2) Load 108 - 110: 21(fvec2) ImageRead 107 109 - Store 103(r10) 110 - 115: 112 Load 114(g_tTex2di2) - 116: 68(ptr) AccessChain 66 67 - 117: 7(ivec2) Load 116 - 118: 7(ivec2) ImageRead 115 117 - Store 111(r11) 118 - 123: 120 Load 122(g_tTex2du2) - 124: 68(ptr) AccessChain 66 67 - 125: 7(ivec2) Load 124 - 126: 14(ivec2) ImageRead 123 125 - Store 119(r12) 126 - 131: 128 Load 130(g_tTex3df2) - 134: 133(ptr) AccessChain 66 132 - 135: 62(ivec3) Load 134 - 136: 21(fvec2) ImageRead 131 135 - Store 127(r20) 136 - 141: 138 Load 140(g_tTex3di2) - 142: 133(ptr) AccessChain 66 132 - 143: 62(ivec3) Load 142 - 144: 7(ivec2) ImageRead 141 143 - Store 137(r21) 144 - 149: 146 Load 148(g_tTex3du2) - 150: 133(ptr) AccessChain 66 132 - 151: 62(ivec3) Load 150 - 152: 14(ivec2) ImageRead 149 151 - Store 145(r22) 152 + 81: 42(fvec4) ImageRead 77 80 + 82: 20(float) CompositeExtract 81 0 + 83: 20(float) CompositeExtract 81 1 + 84: 21(fvec2) CompositeConstruct 82 83 + 86: 74 Load 76(g_tTex1df2) + 87: 78(ptr) AccessChain 66 56 + 88: 6(int) Load 87 + 89: 42(fvec4) ImageRead 86 88 + 90: 20(float) CompositeExtract 89 0 + 91: 20(float) CompositeExtract 89 1 + 92: 21(fvec2) CompositeConstruct 90 91 + Store 85(r00) 92 + 97: 94 Load 96(g_tTex1di2) + 98: 78(ptr) AccessChain 66 56 + 99: 6(int) Load 98 + 100: 63(ivec4) ImageRead 97 99 + 101: 6(int) CompositeExtract 100 0 + 102: 6(int) CompositeExtract 100 1 + 103: 7(ivec2) CompositeConstruct 101 102 + Store 93(r01) 103 + 108: 105 Load 107(g_tTex1du2) + 109: 78(ptr) AccessChain 66 56 + 110: 6(int) Load 109 + 112: 111(ivec4) ImageRead 108 110 + 113: 13(int) CompositeExtract 112 0 + 114: 13(int) CompositeExtract 112 1 + 115: 14(ivec2) CompositeConstruct 113 114 + Store 104(r02) 115 + 120: 117 Load 119(g_tTex2df2) + 121: 68(ptr) AccessChain 66 67 + 122: 7(ivec2) Load 121 + 123: 42(fvec4) ImageRead 120 122 + 124: 20(float) CompositeExtract 123 0 + 125: 20(float) CompositeExtract 123 1 + 126: 21(fvec2) CompositeConstruct 124 125 + Store 116(r10) 126 + 131: 128 Load 130(g_tTex2di2) + 132: 68(ptr) AccessChain 66 67 + 133: 7(ivec2) Load 132 + 134: 63(ivec4) ImageRead 131 133 + 135: 6(int) CompositeExtract 134 0 + 136: 6(int) CompositeExtract 134 1 + 137: 7(ivec2) CompositeConstruct 135 136 + Store 127(r11) 137 + 142: 139 Load 141(g_tTex2du2) + 143: 68(ptr) AccessChain 66 67 + 144: 7(ivec2) Load 143 + 145: 111(ivec4) ImageRead 142 144 + 146: 13(int) CompositeExtract 145 0 + 147: 13(int) CompositeExtract 145 1 + 148: 14(ivec2) CompositeConstruct 146 147 + Store 138(r12) 148 + 153: 150 Load 152(g_tTex3df2) 156: 155(ptr) AccessChain 66 154 - 157: 21(fvec2) Load 156 - Store 153(lf2) 157 - 159: 21(fvec2) FunctionCall 40(SomeValue() - Store 158(storeTemp) 159 - 160: 74 Load 76(g_tTex1df2) - 161: 78(ptr) AccessChain 66 56 - 162: 6(int) Load 161 - 163: 21(fvec2) Load 158(storeTemp) - ImageWrite 160 162 163 - 164: 74 Load 76(g_tTex1df2) - 165: 78(ptr) AccessChain 66 56 - 166: 6(int) Load 165 - 167: 21(fvec2) Load 153(lf2) - ImageWrite 164 166 167 - Store 168(storeTemp) 169 - 170: 88 Load 90(g_tTex1di2) - 171: 78(ptr) AccessChain 66 56 - 172: 6(int) Load 171 - 173: 7(ivec2) Load 168(storeTemp) - ImageWrite 170 172 173 - Store 174(storeTemp) 177 - 178: 96 Load 98(g_tTex1du2) - 179: 78(ptr) AccessChain 66 56 - 180: 6(int) Load 179 - 181: 14(ivec2) Load 174(storeTemp) - ImageWrite 178 180 181 - 185: 78(ptr) AccessChain 66 56 - 186: 6(int) Load 185 - Store 184(coordTemp) 186 - 188: 74 Load 76(g_tTex1df2) - 189: 6(int) Load 184(coordTemp) - 190: 21(fvec2) ImageRead 188 189 - Store 187(storeTemp) 190 - 192: 21(fvec2) Load 187(storeTemp) - 193: 21(fvec2) VectorTimesScalar 192 191 - Store 187(storeTemp) 193 - 194: 74 Load 76(g_tTex1df2) - 195: 6(int) Load 184(coordTemp) - 196: 21(fvec2) Load 187(storeTemp) - ImageWrite 194 195 196 - 197: 21(fvec2) Load 187(storeTemp) - Store 182(val1) 197 - 199: 78(ptr) AccessChain 66 56 - 200: 6(int) Load 199 - Store 198(coordTemp) 200 - 202: 74 Load 76(g_tTex1df2) - 203: 6(int) Load 198(coordTemp) - 204: 21(fvec2) ImageRead 202 203 - Store 201(storeTemp) 204 - 206: 21(fvec2) Load 201(storeTemp) - 207: 21(fvec2) CompositeConstruct 205 205 - 208: 21(fvec2) FSub 206 207 - Store 201(storeTemp) 208 - 209: 74 Load 76(g_tTex1df2) - 210: 6(int) Load 198(coordTemp) - 211: 21(fvec2) Load 201(storeTemp) - ImageWrite 209 210 211 - 213: 78(ptr) AccessChain 66 56 - 214: 6(int) Load 213 - Store 212(coordTemp) 214 - 216: 74 Load 76(g_tTex1df2) - 217: 6(int) Load 212(coordTemp) - 218: 21(fvec2) ImageRead 216 217 - Store 215(storeTemp) 218 - 220: 21(fvec2) Load 215(storeTemp) - 221: 21(fvec2) CompositeConstruct 219 219 - 222: 21(fvec2) FAdd 220 221 - Store 215(storeTemp) 222 - 223: 74 Load 76(g_tTex1df2) - 224: 6(int) Load 212(coordTemp) - 225: 21(fvec2) Load 215(storeTemp) - ImageWrite 223 224 225 - 227: 78(ptr) AccessChain 66 56 - 228: 6(int) Load 227 - Store 226(coordTemp) 228 - 230: 88 Load 90(g_tTex1di2) - 231: 6(int) Load 226(coordTemp) - 232: 7(ivec2) ImageRead 230 231 - Store 229(storeTemp) 232 - 233: 7(ivec2) Load 229(storeTemp) - 234: 7(ivec2) CompositeConstruct 132 132 - 235: 7(ivec2) SDiv 233 234 - Store 229(storeTemp) 235 - 236: 88 Load 90(g_tTex1di2) - 237: 6(int) Load 226(coordTemp) - 238: 7(ivec2) Load 229(storeTemp) - ImageWrite 236 237 238 - 240: 78(ptr) AccessChain 66 56 - 241: 6(int) Load 240 - Store 239(coordTemp) 241 - 243: 88 Load 90(g_tTex1di2) - 244: 6(int) Load 239(coordTemp) - 245: 7(ivec2) ImageRead 243 244 - Store 242(storeTemp) 245 - 246: 7(ivec2) Load 242(storeTemp) - 247: 7(ivec2) CompositeConstruct 132 132 - 248: 7(ivec2) SMod 246 247 - Store 242(storeTemp) 248 - 249: 88 Load 90(g_tTex1di2) - 250: 6(int) Load 239(coordTemp) - 251: 7(ivec2) Load 242(storeTemp) - ImageWrite 249 250 251 - 253: 78(ptr) AccessChain 66 56 - 254: 6(int) Load 253 - Store 252(coordTemp) 254 - 256: 88 Load 90(g_tTex1di2) - 257: 6(int) Load 252(coordTemp) - 258: 7(ivec2) ImageRead 256 257 - Store 255(storeTemp) 258 - 260: 7(ivec2) Load 255(storeTemp) - 261: 7(ivec2) CompositeConstruct 259 259 - 262: 7(ivec2) BitwiseAnd 260 261 - Store 255(storeTemp) 262 - 263: 88 Load 90(g_tTex1di2) - 264: 6(int) Load 252(coordTemp) - 265: 7(ivec2) Load 255(storeTemp) + 157: 62(ivec3) Load 156 + 158: 42(fvec4) ImageRead 153 157 + 159: 20(float) CompositeExtract 158 0 + 160: 20(float) CompositeExtract 158 1 + 161: 21(fvec2) CompositeConstruct 159 160 + Store 149(r20) 161 + 166: 163 Load 165(g_tTex3di2) + 167: 155(ptr) AccessChain 66 154 + 168: 62(ivec3) Load 167 + 169: 63(ivec4) ImageRead 166 168 + 170: 6(int) CompositeExtract 169 0 + 171: 6(int) CompositeExtract 169 1 + 172: 7(ivec2) CompositeConstruct 170 171 + Store 162(r21) 172 + 177: 174 Load 176(g_tTex3du2) + 178: 155(ptr) AccessChain 66 154 + 179: 62(ivec3) Load 178 + 180: 111(ivec4) ImageRead 177 179 + 181: 13(int) CompositeExtract 180 0 + 182: 13(int) CompositeExtract 180 1 + 183: 14(ivec2) CompositeConstruct 181 182 + Store 173(r22) 183 + 187: 186(ptr) AccessChain 66 185 + 188: 21(fvec2) Load 187 + Store 184(lf2) 188 + 190: 21(fvec2) FunctionCall 40(SomeValue() + Store 189(storeTemp) 190 + 191: 74 Load 76(g_tTex1df2) + 192: 78(ptr) AccessChain 66 56 + 193: 6(int) Load 192 + 194: 21(fvec2) Load 189(storeTemp) + ImageWrite 191 193 194 + 195: 74 Load 76(g_tTex1df2) + 196: 78(ptr) AccessChain 66 56 + 197: 6(int) Load 196 + 198: 21(fvec2) Load 184(lf2) + ImageWrite 195 197 198 + Store 199(storeTemp) 200 + 201: 94 Load 96(g_tTex1di2) + 202: 78(ptr) AccessChain 66 56 + 203: 6(int) Load 202 + 204: 7(ivec2) Load 199(storeTemp) + ImageWrite 201 203 204 + Store 205(storeTemp) 208 + 209: 105 Load 107(g_tTex1du2) + 210: 78(ptr) AccessChain 66 56 + 211: 6(int) Load 210 + 212: 14(ivec2) Load 205(storeTemp) + ImageWrite 209 211 212 + 216: 78(ptr) AccessChain 66 56 + 217: 6(int) Load 216 + Store 215(coordTemp) 217 + 219: 74 Load 76(g_tTex1df2) + 220: 6(int) Load 215(coordTemp) + 221: 42(fvec4) ImageRead 219 220 + 222: 20(float) CompositeExtract 221 0 + 223: 20(float) CompositeExtract 221 1 + 224: 21(fvec2) CompositeConstruct 222 223 + Store 218(storeTemp) 224 + 226: 21(fvec2) Load 218(storeTemp) + 227: 21(fvec2) VectorTimesScalar 226 225 + Store 218(storeTemp) 227 + 228: 74 Load 76(g_tTex1df2) + 229: 6(int) Load 215(coordTemp) + 230: 21(fvec2) Load 218(storeTemp) + ImageWrite 228 229 230 + 231: 21(fvec2) Load 218(storeTemp) + Store 213(val1) 231 + 233: 78(ptr) AccessChain 66 56 + 234: 6(int) Load 233 + Store 232(coordTemp) 234 + 236: 74 Load 76(g_tTex1df2) + 237: 6(int) Load 232(coordTemp) + 238: 42(fvec4) ImageRead 236 237 + 239: 20(float) CompositeExtract 238 0 + 240: 20(float) CompositeExtract 238 1 + 241: 21(fvec2) CompositeConstruct 239 240 + Store 235(storeTemp) 241 + 243: 21(fvec2) Load 235(storeTemp) + 244: 21(fvec2) CompositeConstruct 242 242 + 245: 21(fvec2) FSub 243 244 + Store 235(storeTemp) 245 + 246: 74 Load 76(g_tTex1df2) + 247: 6(int) Load 232(coordTemp) + 248: 21(fvec2) Load 235(storeTemp) + ImageWrite 246 247 248 + 250: 78(ptr) AccessChain 66 56 + 251: 6(int) Load 250 + Store 249(coordTemp) 251 + 253: 74 Load 76(g_tTex1df2) + 254: 6(int) Load 249(coordTemp) + 255: 42(fvec4) ImageRead 253 254 + 256: 20(float) CompositeExtract 255 0 + 257: 20(float) CompositeExtract 255 1 + 258: 21(fvec2) CompositeConstruct 256 257 + Store 252(storeTemp) 258 + 260: 21(fvec2) Load 252(storeTemp) + 261: 21(fvec2) CompositeConstruct 259 259 + 262: 21(fvec2) FAdd 260 261 + Store 252(storeTemp) 262 + 263: 74 Load 76(g_tTex1df2) + 264: 6(int) Load 249(coordTemp) + 265: 21(fvec2) Load 252(storeTemp) ImageWrite 263 264 265 267: 78(ptr) AccessChain 66 56 268: 6(int) Load 267 Store 266(coordTemp) 268 - 270: 88 Load 90(g_tTex1di2) + 270: 94 Load 96(g_tTex1di2) 271: 6(int) Load 266(coordTemp) - 272: 7(ivec2) ImageRead 270 271 - Store 269(storeTemp) 272 - 274: 7(ivec2) Load 269(storeTemp) - 275: 7(ivec2) CompositeConstruct 273 273 - 276: 7(ivec2) BitwiseOr 274 275 - Store 269(storeTemp) 276 - 277: 88 Load 90(g_tTex1di2) - 278: 6(int) Load 266(coordTemp) - 279: 7(ivec2) Load 269(storeTemp) - ImageWrite 277 278 279 - 281: 78(ptr) AccessChain 66 56 - 282: 6(int) Load 281 - Store 280(coordTemp) 282 - 284: 88 Load 90(g_tTex1di2) - 285: 6(int) Load 280(coordTemp) - 286: 7(ivec2) ImageRead 284 285 - Store 283(storeTemp) 286 - 287: 7(ivec2) Load 283(storeTemp) - 288: 7(ivec2) CompositeConstruct 132 132 - 289: 7(ivec2) ShiftLeftLogical 287 288 - Store 283(storeTemp) 289 - 290: 88 Load 90(g_tTex1di2) - 291: 6(int) Load 280(coordTemp) - 292: 7(ivec2) Load 283(storeTemp) - ImageWrite 290 291 292 - 294: 78(ptr) AccessChain 66 56 - 295: 6(int) Load 294 - Store 293(coordTemp) 295 - 297: 88 Load 90(g_tTex1di2) - 298: 6(int) Load 293(coordTemp) - 299: 7(ivec2) ImageRead 297 298 - Store 296(storeTemp) 299 - 300: 7(ivec2) Load 296(storeTemp) - 301: 7(ivec2) CompositeConstruct 132 132 - 302: 7(ivec2) ShiftRightArithmetic 300 301 - Store 296(storeTemp) 302 - 303: 88 Load 90(g_tTex1di2) - 304: 6(int) Load 293(coordTemp) - 305: 7(ivec2) Load 296(storeTemp) - ImageWrite 303 304 305 - 307: 21(fvec2) FunctionCall 40(SomeValue() - Store 306(storeTemp) 307 - 308: 104 Load 106(g_tTex2df2) - 309: 68(ptr) AccessChain 66 67 - 310: 7(ivec2) Load 309 - 311: 21(fvec2) Load 306(storeTemp) - ImageWrite 308 310 311 - 312: 104 Load 106(g_tTex2df2) - 313: 68(ptr) AccessChain 66 67 - 314: 7(ivec2) Load 313 - 315: 21(fvec2) Load 153(lf2) - ImageWrite 312 314 315 - Store 316(storeTemp) 318 - 319: 112 Load 114(g_tTex2di2) - 320: 68(ptr) AccessChain 66 67 - 321: 7(ivec2) Load 320 - 322: 7(ivec2) Load 316(storeTemp) - ImageWrite 319 321 322 - Store 323(storeTemp) 325 - 326: 120 Load 122(g_tTex2du2) - 327: 68(ptr) AccessChain 66 67 - 328: 7(ivec2) Load 327 - 329: 14(ivec2) Load 323(storeTemp) - ImageWrite 326 328 329 - 331: 21(fvec2) FunctionCall 40(SomeValue() - Store 330(storeTemp) 331 - 332: 128 Load 130(g_tTex3df2) - 333: 133(ptr) AccessChain 66 132 - 334: 62(ivec3) Load 333 - 335: 21(fvec2) Load 330(storeTemp) - ImageWrite 332 334 335 - 336: 128 Load 130(g_tTex3df2) - 337: 133(ptr) AccessChain 66 132 - 338: 62(ivec3) Load 337 - 339: 21(fvec2) Load 153(lf2) - ImageWrite 336 338 339 - Store 340(storeTemp) 342 - 343: 138 Load 140(g_tTex3di2) - 344: 133(ptr) AccessChain 66 132 - 345: 62(ivec3) Load 344 - 346: 7(ivec2) Load 340(storeTemp) - ImageWrite 343 345 346 - Store 347(storeTemp) 349 - 350: 146 Load 148(g_tTex3du2) - 351: 133(ptr) AccessChain 66 132 - 352: 62(ivec3) Load 351 - 353: 14(ivec2) Load 347(storeTemp) - ImageWrite 350 352 353 - 354: 74 Load 76(g_tTex1df2) - 355: 78(ptr) AccessChain 66 56 - 356: 6(int) Load 355 - 357: 21(fvec2) ImageRead 354 356 - Store 358(param) 357 - 359: 21(fvec2) FunctionCall 25(Fn1(vf2;) 358(param) - 360: 88 Load 90(g_tTex1di2) - 361: 78(ptr) AccessChain 66 56 - 362: 6(int) Load 361 - 363: 7(ivec2) ImageRead 360 362 - Store 364(param) 363 - 365: 7(ivec2) FunctionCall 11(Fn1(vi2;) 364(param) - 366: 96 Load 98(g_tTex1du2) - 367: 78(ptr) AccessChain 66 56 - 368: 6(int) Load 367 - 369: 14(ivec2) ImageRead 366 368 - Store 370(param) 369 - 371: 14(ivec2) FunctionCall 18(Fn1(vu2;) 370(param) - 374: 2 FunctionCall 37(Fn2(vf2;) 373(param) - 375: 21(fvec2) Load 373(param) - Store 372(tempArg) 375 - 376: 74 Load 76(g_tTex1df2) - 377: 78(ptr) AccessChain 66 56 - 378: 6(int) Load 377 - 379: 21(fvec2) Load 372(tempArg) - ImageWrite 376 378 379 - 382: 2 FunctionCall 29(Fn2(vi2;) 381(param) - 383: 7(ivec2) Load 381(param) - Store 380(tempArg) 383 - 384: 88 Load 90(g_tTex1di2) - 385: 78(ptr) AccessChain 66 56 - 386: 6(int) Load 385 - 387: 7(ivec2) Load 380(tempArg) + 272: 63(ivec4) ImageRead 270 271 + 273: 6(int) CompositeExtract 272 0 + 274: 6(int) CompositeExtract 272 1 + 275: 7(ivec2) CompositeConstruct 273 274 + Store 269(storeTemp) 275 + 276: 7(ivec2) Load 269(storeTemp) + 277: 7(ivec2) CompositeConstruct 154 154 + 278: 7(ivec2) SDiv 276 277 + Store 269(storeTemp) 278 + 279: 94 Load 96(g_tTex1di2) + 280: 6(int) Load 266(coordTemp) + 281: 7(ivec2) Load 269(storeTemp) + ImageWrite 279 280 281 + 283: 78(ptr) AccessChain 66 56 + 284: 6(int) Load 283 + Store 282(coordTemp) 284 + 286: 94 Load 96(g_tTex1di2) + 287: 6(int) Load 282(coordTemp) + 288: 63(ivec4) ImageRead 286 287 + 289: 6(int) CompositeExtract 288 0 + 290: 6(int) CompositeExtract 288 1 + 291: 7(ivec2) CompositeConstruct 289 290 + Store 285(storeTemp) 291 + 292: 7(ivec2) Load 285(storeTemp) + 293: 7(ivec2) CompositeConstruct 154 154 + 294: 7(ivec2) SMod 292 293 + Store 285(storeTemp) 294 + 295: 94 Load 96(g_tTex1di2) + 296: 6(int) Load 282(coordTemp) + 297: 7(ivec2) Load 285(storeTemp) + ImageWrite 295 296 297 + 299: 78(ptr) AccessChain 66 56 + 300: 6(int) Load 299 + Store 298(coordTemp) 300 + 302: 94 Load 96(g_tTex1di2) + 303: 6(int) Load 298(coordTemp) + 304: 63(ivec4) ImageRead 302 303 + 305: 6(int) CompositeExtract 304 0 + 306: 6(int) CompositeExtract 304 1 + 307: 7(ivec2) CompositeConstruct 305 306 + Store 301(storeTemp) 307 + 309: 7(ivec2) Load 301(storeTemp) + 310: 7(ivec2) CompositeConstruct 308 308 + 311: 7(ivec2) BitwiseAnd 309 310 + Store 301(storeTemp) 311 + 312: 94 Load 96(g_tTex1di2) + 313: 6(int) Load 298(coordTemp) + 314: 7(ivec2) Load 301(storeTemp) + ImageWrite 312 313 314 + 316: 78(ptr) AccessChain 66 56 + 317: 6(int) Load 316 + Store 315(coordTemp) 317 + 319: 94 Load 96(g_tTex1di2) + 320: 6(int) Load 315(coordTemp) + 321: 63(ivec4) ImageRead 319 320 + 322: 6(int) CompositeExtract 321 0 + 323: 6(int) CompositeExtract 321 1 + 324: 7(ivec2) CompositeConstruct 322 323 + Store 318(storeTemp) 324 + 326: 7(ivec2) Load 318(storeTemp) + 327: 7(ivec2) CompositeConstruct 325 325 + 328: 7(ivec2) BitwiseOr 326 327 + Store 318(storeTemp) 328 + 329: 94 Load 96(g_tTex1di2) + 330: 6(int) Load 315(coordTemp) + 331: 7(ivec2) Load 318(storeTemp) + ImageWrite 329 330 331 + 333: 78(ptr) AccessChain 66 56 + 334: 6(int) Load 333 + Store 332(coordTemp) 334 + 336: 94 Load 96(g_tTex1di2) + 337: 6(int) Load 332(coordTemp) + 338: 63(ivec4) ImageRead 336 337 + 339: 6(int) CompositeExtract 338 0 + 340: 6(int) CompositeExtract 338 1 + 341: 7(ivec2) CompositeConstruct 339 340 + Store 335(storeTemp) 341 + 342: 7(ivec2) Load 335(storeTemp) + 343: 7(ivec2) CompositeConstruct 154 154 + 344: 7(ivec2) ShiftLeftLogical 342 343 + Store 335(storeTemp) 344 + 345: 94 Load 96(g_tTex1di2) + 346: 6(int) Load 332(coordTemp) + 347: 7(ivec2) Load 335(storeTemp) + ImageWrite 345 346 347 + 349: 78(ptr) AccessChain 66 56 + 350: 6(int) Load 349 + Store 348(coordTemp) 350 + 352: 94 Load 96(g_tTex1di2) + 353: 6(int) Load 348(coordTemp) + 354: 63(ivec4) ImageRead 352 353 + 355: 6(int) CompositeExtract 354 0 + 356: 6(int) CompositeExtract 354 1 + 357: 7(ivec2) CompositeConstruct 355 356 + Store 351(storeTemp) 357 + 358: 7(ivec2) Load 351(storeTemp) + 359: 7(ivec2) CompositeConstruct 154 154 + 360: 7(ivec2) ShiftRightArithmetic 358 359 + Store 351(storeTemp) 360 + 361: 94 Load 96(g_tTex1di2) + 362: 6(int) Load 348(coordTemp) + 363: 7(ivec2) Load 351(storeTemp) + ImageWrite 361 362 363 + 365: 21(fvec2) FunctionCall 40(SomeValue() + Store 364(storeTemp) 365 + 366: 117 Load 119(g_tTex2df2) + 367: 68(ptr) AccessChain 66 67 + 368: 7(ivec2) Load 367 + 369: 21(fvec2) Load 364(storeTemp) + ImageWrite 366 368 369 + 370: 117 Load 119(g_tTex2df2) + 371: 68(ptr) AccessChain 66 67 + 372: 7(ivec2) Load 371 + 373: 21(fvec2) Load 184(lf2) + ImageWrite 370 372 373 + Store 374(storeTemp) 376 + 377: 128 Load 130(g_tTex2di2) + 378: 68(ptr) AccessChain 66 67 + 379: 7(ivec2) Load 378 + 380: 7(ivec2) Load 374(storeTemp) + ImageWrite 377 379 380 + Store 381(storeTemp) 383 + 384: 139 Load 141(g_tTex2du2) + 385: 68(ptr) AccessChain 66 67 + 386: 7(ivec2) Load 385 + 387: 14(ivec2) Load 381(storeTemp) ImageWrite 384 386 387 - 390: 2 FunctionCall 33(Fn2(vu2;) 389(param) - 391: 14(ivec2) Load 389(param) - Store 388(tempArg) 391 - 392: 96 Load 98(g_tTex1du2) - 393: 78(ptr) AccessChain 66 56 - 394: 6(int) Load 393 - 395: 14(ivec2) Load 388(tempArg) - ImageWrite 392 394 395 - 397: 78(ptr) AccessChain 66 56 - 398: 6(int) Load 397 - Store 396(coordTemp) 398 - 400: 74 Load 76(g_tTex1df2) - 401: 6(int) Load 396(coordTemp) - 402: 21(fvec2) ImageRead 400 401 - Store 399(storeTemp) 402 - 403: 21(fvec2) Load 399(storeTemp) - 405: 21(fvec2) CompositeConstruct 404 404 - 406: 21(fvec2) FAdd 403 405 - Store 399(storeTemp) 406 - 407: 74 Load 76(g_tTex1df2) - 408: 6(int) Load 396(coordTemp) - 409: 21(fvec2) Load 399(storeTemp) - ImageWrite 407 408 409 - 411: 78(ptr) AccessChain 66 56 - 412: 6(int) Load 411 - Store 410(coordTemp) 412 - 414: 88 Load 90(g_tTex1di2) - 415: 6(int) Load 410(coordTemp) - 416: 7(ivec2) ImageRead 414 415 - Store 413(storeTemp) 416 - 417: 7(ivec2) Load 413(storeTemp) - 418: 7(ivec2) CompositeConstruct 67 67 - 419: 7(ivec2) IAdd 417 418 - Store 413(storeTemp) 419 - 420: 88 Load 90(g_tTex1di2) - 421: 6(int) Load 410(coordTemp) - 422: 7(ivec2) Load 413(storeTemp) - ImageWrite 420 421 422 - 424: 78(ptr) AccessChain 66 56 - 425: 6(int) Load 424 - Store 423(coordTemp) 425 - 427: 96 Load 98(g_tTex1du2) - 428: 6(int) Load 423(coordTemp) - 429: 14(ivec2) ImageRead 427 428 - Store 426(storeTemp) 429 - 430: 14(ivec2) Load 426(storeTemp) - 431: 7(ivec2) CompositeConstruct 67 67 - 432: 14(ivec2) IAdd 430 431 - Store 426(storeTemp) 432 - 433: 96 Load 98(g_tTex1du2) - 434: 6(int) Load 423(coordTemp) - 435: 14(ivec2) Load 426(storeTemp) - ImageWrite 433 434 435 - 437: 78(ptr) AccessChain 66 56 - 438: 6(int) Load 437 - Store 436(coordTemp) 438 - 440: 74 Load 76(g_tTex1df2) - 441: 6(int) Load 436(coordTemp) - 442: 21(fvec2) ImageRead 440 441 - Store 439(storeTemp) 442 - 443: 21(fvec2) Load 439(storeTemp) - 444: 21(fvec2) CompositeConstruct 404 404 - 445: 21(fvec2) FSub 443 444 - Store 439(storeTemp) 445 - 446: 74 Load 76(g_tTex1df2) - 447: 6(int) Load 436(coordTemp) - 448: 21(fvec2) Load 439(storeTemp) - ImageWrite 446 447 448 - 450: 78(ptr) AccessChain 66 56 - 451: 6(int) Load 450 - Store 449(coordTemp) 451 - 453: 88 Load 90(g_tTex1di2) - 454: 6(int) Load 449(coordTemp) - 455: 7(ivec2) ImageRead 453 454 - Store 452(storeTemp) 455 - 456: 7(ivec2) Load 452(storeTemp) - 457: 7(ivec2) CompositeConstruct 67 67 - 458: 7(ivec2) ISub 456 457 - Store 452(storeTemp) 458 - 459: 88 Load 90(g_tTex1di2) - 460: 6(int) Load 449(coordTemp) - 461: 7(ivec2) Load 452(storeTemp) - ImageWrite 459 460 461 - 463: 78(ptr) AccessChain 66 56 - 464: 6(int) Load 463 - Store 462(coordTemp) 464 - 466: 96 Load 98(g_tTex1du2) - 467: 6(int) Load 462(coordTemp) - 468: 14(ivec2) ImageRead 466 467 - Store 465(storeTemp) 468 - 469: 14(ivec2) Load 465(storeTemp) - 470: 7(ivec2) CompositeConstruct 67 67 - 471: 14(ivec2) ISub 469 470 - Store 465(storeTemp) 471 - 472: 96 Load 98(g_tTex1du2) - 473: 6(int) Load 462(coordTemp) - 474: 14(ivec2) Load 465(storeTemp) - ImageWrite 472 473 474 - 476: 78(ptr) AccessChain 66 56 - 477: 6(int) Load 476 - Store 475(coordTemp) 477 - 479: 74 Load 76(g_tTex1df2) - 480: 6(int) Load 475(coordTemp) - 481: 21(fvec2) ImageRead 479 480 - Store 478(storeTempPre) 481 - 483: 21(fvec2) Load 478(storeTempPre) - Store 482(storeTempPost) 483 - 484: 21(fvec2) Load 482(storeTempPost) - 485: 21(fvec2) CompositeConstruct 404 404 - 486: 21(fvec2) FAdd 484 485 - Store 482(storeTempPost) 486 - 487: 74 Load 76(g_tTex1df2) - 488: 6(int) Load 475(coordTemp) - 489: 21(fvec2) Load 482(storeTempPost) - ImageWrite 487 488 489 - 491: 78(ptr) AccessChain 66 56 - 492: 6(int) Load 491 - Store 490(coordTemp) 492 - 494: 96 Load 98(g_tTex1du2) - 495: 6(int) Load 490(coordTemp) - 496: 14(ivec2) ImageRead 494 495 - Store 493(storeTempPre) 496 - 498: 14(ivec2) Load 493(storeTempPre) - Store 497(storeTempPost) 498 - 499: 14(ivec2) Load 497(storeTempPost) - 500: 7(ivec2) CompositeConstruct 67 67 - 501: 14(ivec2) ISub 499 500 - Store 497(storeTempPost) 501 - 502: 96 Load 98(g_tTex1du2) - 503: 6(int) Load 490(coordTemp) - 504: 14(ivec2) Load 497(storeTempPost) - ImageWrite 502 503 504 - 506: 78(ptr) AccessChain 66 56 - 507: 6(int) Load 506 - Store 505(coordTemp) 507 - 509: 88 Load 90(g_tTex1di2) - 510: 6(int) Load 505(coordTemp) - 511: 7(ivec2) ImageRead 509 510 - Store 508(storeTempPre) 511 - 513: 7(ivec2) Load 508(storeTempPre) - Store 512(storeTempPost) 513 - 514: 7(ivec2) Load 512(storeTempPost) - 515: 7(ivec2) CompositeConstruct 67 67 - 516: 7(ivec2) IAdd 514 515 - Store 512(storeTempPost) 516 - 517: 88 Load 90(g_tTex1di2) - 518: 6(int) Load 505(coordTemp) - 519: 7(ivec2) Load 512(storeTempPost) - ImageWrite 517 518 519 - 521: 78(ptr) AccessChain 66 56 - 522: 6(int) Load 521 - Store 520(coordTemp) 522 - 524: 74 Load 76(g_tTex1df2) - 525: 6(int) Load 520(coordTemp) - 526: 21(fvec2) ImageRead 524 525 - Store 523(storeTempPre) 526 - 528: 21(fvec2) Load 523(storeTempPre) - Store 527(storeTempPost) 528 - 529: 21(fvec2) Load 527(storeTempPost) - 530: 21(fvec2) CompositeConstruct 404 404 - 531: 21(fvec2) FSub 529 530 - Store 527(storeTempPost) 531 - 532: 74 Load 76(g_tTex1df2) - 533: 6(int) Load 520(coordTemp) - 534: 21(fvec2) Load 527(storeTempPost) - ImageWrite 532 533 534 - 536: 78(ptr) AccessChain 66 56 - 537: 6(int) Load 536 - Store 535(coordTemp) 537 - 539: 88 Load 90(g_tTex1di2) - 540: 6(int) Load 535(coordTemp) - 541: 7(ivec2) ImageRead 539 540 - Store 538(storeTempPre) 541 - 543: 7(ivec2) Load 538(storeTempPre) - Store 542(storeTempPost) 543 - 544: 7(ivec2) Load 542(storeTempPost) - 545: 7(ivec2) CompositeConstruct 67 67 - 546: 7(ivec2) IAdd 544 545 - Store 542(storeTempPost) 546 - 547: 88 Load 90(g_tTex1di2) - 548: 6(int) Load 535(coordTemp) - 549: 7(ivec2) Load 542(storeTempPost) - ImageWrite 547 548 549 - 551: 78(ptr) AccessChain 66 56 - 552: 6(int) Load 551 - Store 550(coordTemp) 552 - 554: 96 Load 98(g_tTex1du2) - 555: 6(int) Load 550(coordTemp) - 556: 14(ivec2) ImageRead 554 555 - Store 553(storeTempPre) 556 - 558: 14(ivec2) Load 553(storeTempPre) - Store 557(storeTempPost) 558 - 559: 14(ivec2) Load 557(storeTempPost) - 560: 7(ivec2) CompositeConstruct 67 67 - 561: 14(ivec2) ISub 559 560 - Store 557(storeTempPost) 561 - 562: 96 Load 98(g_tTex1du2) - 563: 6(int) Load 550(coordTemp) - 564: 14(ivec2) Load 557(storeTempPost) - ImageWrite 562 563 564 - 566: 104 Load 106(g_tTex2df2) - 569: 21(fvec2) ImageRead 566 568 - Store 565(storeTemp) 569 - 570: 74 Load 76(g_tTex1df2) - 571: 21(fvec2) Load 565(storeTemp) - ImageWrite 570 67 571 - 576: 575(ptr) AccessChain 573(psout) 56 - Store 576 574 - 577:43(PS_OUTPUT) Load 573(psout) - ReturnValue 577 + 389: 21(fvec2) FunctionCall 40(SomeValue() + Store 388(storeTemp) 389 + 390: 150 Load 152(g_tTex3df2) + 391: 155(ptr) AccessChain 66 154 + 392: 62(ivec3) Load 391 + 393: 21(fvec2) Load 388(storeTemp) + ImageWrite 390 392 393 + 394: 150 Load 152(g_tTex3df2) + 395: 155(ptr) AccessChain 66 154 + 396: 62(ivec3) Load 395 + 397: 21(fvec2) Load 184(lf2) + ImageWrite 394 396 397 + Store 398(storeTemp) 400 + 401: 163 Load 165(g_tTex3di2) + 402: 155(ptr) AccessChain 66 154 + 403: 62(ivec3) Load 402 + 404: 7(ivec2) Load 398(storeTemp) + ImageWrite 401 403 404 + Store 405(storeTemp) 407 + 408: 174 Load 176(g_tTex3du2) + 409: 155(ptr) AccessChain 66 154 + 410: 62(ivec3) Load 409 + 411: 14(ivec2) Load 405(storeTemp) + ImageWrite 408 410 411 + 412: 74 Load 76(g_tTex1df2) + 413: 78(ptr) AccessChain 66 56 + 414: 6(int) Load 413 + 415: 42(fvec4) ImageRead 412 414 + 416: 20(float) CompositeExtract 415 0 + 417: 20(float) CompositeExtract 415 1 + 418: 21(fvec2) CompositeConstruct 416 417 + Store 419(param) 418 + 420: 21(fvec2) FunctionCall 25(Fn1(vf2;) 419(param) + 421: 94 Load 96(g_tTex1di2) + 422: 78(ptr) AccessChain 66 56 + 423: 6(int) Load 422 + 424: 63(ivec4) ImageRead 421 423 + 425: 6(int) CompositeExtract 424 0 + 426: 6(int) CompositeExtract 424 1 + 427: 7(ivec2) CompositeConstruct 425 426 + Store 428(param) 427 + 429: 7(ivec2) FunctionCall 11(Fn1(vi2;) 428(param) + 430: 105 Load 107(g_tTex1du2) + 431: 78(ptr) AccessChain 66 56 + 432: 6(int) Load 431 + 433: 111(ivec4) ImageRead 430 432 + 434: 13(int) CompositeExtract 433 0 + 435: 13(int) CompositeExtract 433 1 + 436: 14(ivec2) CompositeConstruct 434 435 + Store 437(param) 436 + 438: 14(ivec2) FunctionCall 18(Fn1(vu2;) 437(param) + 441: 2 FunctionCall 37(Fn2(vf2;) 440(param) + 442: 21(fvec2) Load 440(param) + Store 439(tempArg) 442 + 443: 74 Load 76(g_tTex1df2) + 444: 78(ptr) AccessChain 66 56 + 445: 6(int) Load 444 + 446: 21(fvec2) Load 439(tempArg) + ImageWrite 443 445 446 + 449: 2 FunctionCall 29(Fn2(vi2;) 448(param) + 450: 7(ivec2) Load 448(param) + Store 447(tempArg) 450 + 451: 94 Load 96(g_tTex1di2) + 452: 78(ptr) AccessChain 66 56 + 453: 6(int) Load 452 + 454: 7(ivec2) Load 447(tempArg) + ImageWrite 451 453 454 + 457: 2 FunctionCall 33(Fn2(vu2;) 456(param) + 458: 14(ivec2) Load 456(param) + Store 455(tempArg) 458 + 459: 105 Load 107(g_tTex1du2) + 460: 78(ptr) AccessChain 66 56 + 461: 6(int) Load 460 + 462: 14(ivec2) Load 455(tempArg) + ImageWrite 459 461 462 + 464: 78(ptr) AccessChain 66 56 + 465: 6(int) Load 464 + Store 463(coordTemp) 465 + 467: 74 Load 76(g_tTex1df2) + 468: 6(int) Load 463(coordTemp) + 469: 42(fvec4) ImageRead 467 468 + 470: 20(float) CompositeExtract 469 0 + 471: 20(float) CompositeExtract 469 1 + 472: 21(fvec2) CompositeConstruct 470 471 + Store 466(storeTemp) 472 + 473: 21(fvec2) Load 466(storeTemp) + 475: 21(fvec2) CompositeConstruct 474 474 + 476: 21(fvec2) FAdd 473 475 + Store 466(storeTemp) 476 + 477: 74 Load 76(g_tTex1df2) + 478: 6(int) Load 463(coordTemp) + 479: 21(fvec2) Load 466(storeTemp) + ImageWrite 477 478 479 + 481: 78(ptr) AccessChain 66 56 + 482: 6(int) Load 481 + Store 480(coordTemp) 482 + 484: 94 Load 96(g_tTex1di2) + 485: 6(int) Load 480(coordTemp) + 486: 63(ivec4) ImageRead 484 485 + 487: 6(int) CompositeExtract 486 0 + 488: 6(int) CompositeExtract 486 1 + 489: 7(ivec2) CompositeConstruct 487 488 + Store 483(storeTemp) 489 + 490: 7(ivec2) Load 483(storeTemp) + 491: 7(ivec2) CompositeConstruct 67 67 + 492: 7(ivec2) IAdd 490 491 + Store 483(storeTemp) 492 + 493: 94 Load 96(g_tTex1di2) + 494: 6(int) Load 480(coordTemp) + 495: 7(ivec2) Load 483(storeTemp) + ImageWrite 493 494 495 + 497: 78(ptr) AccessChain 66 56 + 498: 6(int) Load 497 + Store 496(coordTemp) 498 + 500: 105 Load 107(g_tTex1du2) + 501: 6(int) Load 496(coordTemp) + 502: 111(ivec4) ImageRead 500 501 + 503: 13(int) CompositeExtract 502 0 + 504: 13(int) CompositeExtract 502 1 + 505: 14(ivec2) CompositeConstruct 503 504 + Store 499(storeTemp) 505 + 506: 14(ivec2) Load 499(storeTemp) + 507: 7(ivec2) CompositeConstruct 67 67 + 508: 14(ivec2) IAdd 506 507 + Store 499(storeTemp) 508 + 509: 105 Load 107(g_tTex1du2) + 510: 6(int) Load 496(coordTemp) + 511: 14(ivec2) Load 499(storeTemp) + ImageWrite 509 510 511 + 513: 78(ptr) AccessChain 66 56 + 514: 6(int) Load 513 + Store 512(coordTemp) 514 + 516: 74 Load 76(g_tTex1df2) + 517: 6(int) Load 512(coordTemp) + 518: 42(fvec4) ImageRead 516 517 + 519: 20(float) CompositeExtract 518 0 + 520: 20(float) CompositeExtract 518 1 + 521: 21(fvec2) CompositeConstruct 519 520 + Store 515(storeTemp) 521 + 522: 21(fvec2) Load 515(storeTemp) + 523: 21(fvec2) CompositeConstruct 474 474 + 524: 21(fvec2) FSub 522 523 + Store 515(storeTemp) 524 + 525: 74 Load 76(g_tTex1df2) + 526: 6(int) Load 512(coordTemp) + 527: 21(fvec2) Load 515(storeTemp) + ImageWrite 525 526 527 + 529: 78(ptr) AccessChain 66 56 + 530: 6(int) Load 529 + Store 528(coordTemp) 530 + 532: 94 Load 96(g_tTex1di2) + 533: 6(int) Load 528(coordTemp) + 534: 63(ivec4) ImageRead 532 533 + 535: 6(int) CompositeExtract 534 0 + 536: 6(int) CompositeExtract 534 1 + 537: 7(ivec2) CompositeConstruct 535 536 + Store 531(storeTemp) 537 + 538: 7(ivec2) Load 531(storeTemp) + 539: 7(ivec2) CompositeConstruct 67 67 + 540: 7(ivec2) ISub 538 539 + Store 531(storeTemp) 540 + 541: 94 Load 96(g_tTex1di2) + 542: 6(int) Load 528(coordTemp) + 543: 7(ivec2) Load 531(storeTemp) + ImageWrite 541 542 543 + 545: 78(ptr) AccessChain 66 56 + 546: 6(int) Load 545 + Store 544(coordTemp) 546 + 548: 105 Load 107(g_tTex1du2) + 549: 6(int) Load 544(coordTemp) + 550: 111(ivec4) ImageRead 548 549 + 551: 13(int) CompositeExtract 550 0 + 552: 13(int) CompositeExtract 550 1 + 553: 14(ivec2) CompositeConstruct 551 552 + Store 547(storeTemp) 553 + 554: 14(ivec2) Load 547(storeTemp) + 555: 7(ivec2) CompositeConstruct 67 67 + 556: 14(ivec2) ISub 554 555 + Store 547(storeTemp) 556 + 557: 105 Load 107(g_tTex1du2) + 558: 6(int) Load 544(coordTemp) + 559: 14(ivec2) Load 547(storeTemp) + ImageWrite 557 558 559 + 561: 78(ptr) AccessChain 66 56 + 562: 6(int) Load 561 + Store 560(coordTemp) 562 + 564: 74 Load 76(g_tTex1df2) + 565: 6(int) Load 560(coordTemp) + 566: 42(fvec4) ImageRead 564 565 + 567: 20(float) CompositeExtract 566 0 + 568: 20(float) CompositeExtract 566 1 + 569: 21(fvec2) CompositeConstruct 567 568 + Store 563(storeTempPre) 569 + 571: 21(fvec2) Load 563(storeTempPre) + Store 570(storeTempPost) 571 + 572: 21(fvec2) Load 570(storeTempPost) + 573: 21(fvec2) CompositeConstruct 474 474 + 574: 21(fvec2) FAdd 572 573 + Store 570(storeTempPost) 574 + 575: 74 Load 76(g_tTex1df2) + 576: 6(int) Load 560(coordTemp) + 577: 21(fvec2) Load 570(storeTempPost) + ImageWrite 575 576 577 + 579: 78(ptr) AccessChain 66 56 + 580: 6(int) Load 579 + Store 578(coordTemp) 580 + 582: 105 Load 107(g_tTex1du2) + 583: 6(int) Load 578(coordTemp) + 584: 111(ivec4) ImageRead 582 583 + 585: 13(int) CompositeExtract 584 0 + 586: 13(int) CompositeExtract 584 1 + 587: 14(ivec2) CompositeConstruct 585 586 + Store 581(storeTempPre) 587 + 589: 14(ivec2) Load 581(storeTempPre) + Store 588(storeTempPost) 589 + 590: 14(ivec2) Load 588(storeTempPost) + 591: 7(ivec2) CompositeConstruct 67 67 + 592: 14(ivec2) ISub 590 591 + Store 588(storeTempPost) 592 + 593: 105 Load 107(g_tTex1du2) + 594: 6(int) Load 578(coordTemp) + 595: 14(ivec2) Load 588(storeTempPost) + ImageWrite 593 594 595 + 597: 78(ptr) AccessChain 66 56 + 598: 6(int) Load 597 + Store 596(coordTemp) 598 + 600: 94 Load 96(g_tTex1di2) + 601: 6(int) Load 596(coordTemp) + 602: 63(ivec4) ImageRead 600 601 + 603: 6(int) CompositeExtract 602 0 + 604: 6(int) CompositeExtract 602 1 + 605: 7(ivec2) CompositeConstruct 603 604 + Store 599(storeTempPre) 605 + 607: 7(ivec2) Load 599(storeTempPre) + Store 606(storeTempPost) 607 + 608: 7(ivec2) Load 606(storeTempPost) + 609: 7(ivec2) CompositeConstruct 67 67 + 610: 7(ivec2) IAdd 608 609 + Store 606(storeTempPost) 610 + 611: 94 Load 96(g_tTex1di2) + 612: 6(int) Load 596(coordTemp) + 613: 7(ivec2) Load 606(storeTempPost) + ImageWrite 611 612 613 + 615: 78(ptr) AccessChain 66 56 + 616: 6(int) Load 615 + Store 614(coordTemp) 616 + 618: 74 Load 76(g_tTex1df2) + 619: 6(int) Load 614(coordTemp) + 620: 42(fvec4) ImageRead 618 619 + 621: 20(float) CompositeExtract 620 0 + 622: 20(float) CompositeExtract 620 1 + 623: 21(fvec2) CompositeConstruct 621 622 + Store 617(storeTempPre) 623 + 625: 21(fvec2) Load 617(storeTempPre) + Store 624(storeTempPost) 625 + 626: 21(fvec2) Load 624(storeTempPost) + 627: 21(fvec2) CompositeConstruct 474 474 + 628: 21(fvec2) FSub 626 627 + Store 624(storeTempPost) 628 + 629: 74 Load 76(g_tTex1df2) + 630: 6(int) Load 614(coordTemp) + 631: 21(fvec2) Load 624(storeTempPost) + ImageWrite 629 630 631 + 633: 78(ptr) AccessChain 66 56 + 634: 6(int) Load 633 + Store 632(coordTemp) 634 + 636: 94 Load 96(g_tTex1di2) + 637: 6(int) Load 632(coordTemp) + 638: 63(ivec4) ImageRead 636 637 + 639: 6(int) CompositeExtract 638 0 + 640: 6(int) CompositeExtract 638 1 + 641: 7(ivec2) CompositeConstruct 639 640 + Store 635(storeTempPre) 641 + 643: 7(ivec2) Load 635(storeTempPre) + Store 642(storeTempPost) 643 + 644: 7(ivec2) Load 642(storeTempPost) + 645: 7(ivec2) CompositeConstruct 67 67 + 646: 7(ivec2) IAdd 644 645 + Store 642(storeTempPost) 646 + 647: 94 Load 96(g_tTex1di2) + 648: 6(int) Load 632(coordTemp) + 649: 7(ivec2) Load 642(storeTempPost) + ImageWrite 647 648 649 + 651: 78(ptr) AccessChain 66 56 + 652: 6(int) Load 651 + Store 650(coordTemp) 652 + 654: 105 Load 107(g_tTex1du2) + 655: 6(int) Load 650(coordTemp) + 656: 111(ivec4) ImageRead 654 655 + 657: 13(int) CompositeExtract 656 0 + 658: 13(int) CompositeExtract 656 1 + 659: 14(ivec2) CompositeConstruct 657 658 + Store 653(storeTempPre) 659 + 661: 14(ivec2) Load 653(storeTempPre) + Store 660(storeTempPost) 661 + 662: 14(ivec2) Load 660(storeTempPost) + 663: 7(ivec2) CompositeConstruct 67 67 + 664: 14(ivec2) ISub 662 663 + Store 660(storeTempPost) 664 + 665: 105 Load 107(g_tTex1du2) + 666: 6(int) Load 650(coordTemp) + 667: 14(ivec2) Load 660(storeTempPost) + ImageWrite 665 666 667 + 669: 117 Load 119(g_tTex2df2) + 672: 42(fvec4) ImageRead 669 671 + 673: 20(float) CompositeExtract 672 0 + 674: 20(float) CompositeExtract 672 1 + 675: 21(fvec2) CompositeConstruct 673 674 + Store 668(storeTemp) 675 + 676: 74 Load 76(g_tTex1df2) + 677: 21(fvec2) Load 668(storeTemp) + ImageWrite 676 67 677 + 682: 681(ptr) AccessChain 679(psout) 56 + Store 682 680 + 683:43(PS_OUTPUT) Load 679(psout) + ReturnValue 683 FunctionEnd diff --git a/Test/baseResults/spv.rw.autoassign.frag.out b/Test/baseResults/spv.rw.autoassign.frag.out index c696c52..27db336 100644 --- a/Test/baseResults/spv.rw.autoassign.frag.out +++ b/Test/baseResults/spv.rw.autoassign.frag.out @@ -1,15 +1,14 @@ spv.rw.autoassign.frag -Validation failed // Module Version 10000 // Generated by (magic number): 8000a -// Id's are bound by 42 +// Id's are bound by 45 Capability Shader Capability Image1D Capability ImageBuffer 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 39 + EntryPoint Fragment 4 "main" 42 ExecutionMode 4 OriginUpperLeft Source HLSL 500 Name 4 "main" @@ -18,15 +17,15 @@ Validation failed Name 10 "@main(" Name 13 "r00" Name 16 "g_tTex1df1" - Name 23 "r01" - Name 26 "g_tBuf1du1" - Name 30 "psout" - Name 39 "@entryPointOutput.Color" + Name 24 "r01" + Name 27 "g_tBuf1du1" + Name 33 "psout" + Name 42 "@entryPointOutput.Color" Decorate 16(g_tTex1df1) DescriptorSet 0 Decorate 16(g_tTex1df1) Binding 20 - Decorate 26(g_tBuf1du1) DescriptorSet 0 - Decorate 26(g_tBuf1du1) Binding 21 - Decorate 39(@entryPointOutput.Color) Location 0 + Decorate 27(g_tBuf1du1) DescriptorSet 0 + Decorate 27(g_tBuf1du1) Binding 21 + Decorate 42(@entryPointOutput.Color) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -39,37 +38,40 @@ Validation failed 16(g_tTex1df1): 15(ptr) Variable UniformConstant 18: TypeInt 32 1 19: 18(int) Constant 0 - 21: TypeInt 32 0 - 22: TypePointer Function 21(int) - 24: TypeImage 21(int) Buffer nonsampled format:R32ui - 25: TypePointer UniformConstant 24 - 26(g_tBuf1du1): 25(ptr) Variable UniformConstant - 29: TypePointer Function 8(PS_OUTPUT) - 31: 6(float) Constant 0 - 32: 7(fvec4) ConstantComposite 31 31 31 31 - 33: TypePointer Function 7(fvec4) - 38: TypePointer Output 7(fvec4) -39(@entryPointOutput.Color): 38(ptr) Variable Output + 22: TypeInt 32 0 + 23: TypePointer Function 22(int) + 25: TypeImage 22(int) Buffer nonsampled format:R32ui + 26: TypePointer UniformConstant 25 + 27(g_tBuf1du1): 26(ptr) Variable UniformConstant + 29: TypeVector 22(int) 4 + 32: TypePointer Function 8(PS_OUTPUT) + 34: 6(float) Constant 0 + 35: 7(fvec4) ConstantComposite 34 34 34 34 + 36: TypePointer Function 7(fvec4) + 41: TypePointer Output 7(fvec4) +42(@entryPointOutput.Color): 41(ptr) Variable Output 4(main): 2 Function None 3 5: Label - 40:8(PS_OUTPUT) FunctionCall 10(@main() - 41: 7(fvec4) CompositeExtract 40 0 - Store 39(@entryPointOutput.Color) 41 + 43:8(PS_OUTPUT) FunctionCall 10(@main() + 44: 7(fvec4) CompositeExtract 43 0 + Store 42(@entryPointOutput.Color) 44 Return FunctionEnd 10(@main():8(PS_OUTPUT) Function None 9 11: Label 13(r00): 12(ptr) Variable Function - 23(r01): 22(ptr) Variable Function - 30(psout): 29(ptr) Variable Function + 24(r01): 23(ptr) Variable Function + 33(psout): 32(ptr) Variable Function 17: 14 Load 16(g_tTex1df1) - 20: 6(float) ImageRead 17 19 - Store 13(r00) 20 - 27: 24 Load 26(g_tBuf1du1) - 28: 21(int) ImageRead 27 19 - Store 23(r01) 28 - 34: 33(ptr) AccessChain 30(psout) 19 - Store 34 32 - 35:8(PS_OUTPUT) Load 30(psout) - ReturnValue 35 + 20: 7(fvec4) ImageRead 17 19 + 21: 6(float) CompositeExtract 20 0 + Store 13(r00) 21 + 28: 25 Load 27(g_tBuf1du1) + 30: 29(ivec4) ImageRead 28 19 + 31: 22(int) CompositeExtract 30 0 + Store 24(r01) 31 + 37: 36(ptr) AccessChain 33(psout) 19 + Store 37 35 + 38:8(PS_OUTPUT) Load 33(psout) + ReturnValue 38 FunctionEnd diff --git a/Test/hlsl.imagefetch-subvec4.comp b/Test/hlsl.imagefetch-subvec4.comp index 2a83dd2..a5d70c2 100644 --- a/Test/hlsl.imagefetch-subvec4.comp +++ b/Test/hlsl.imagefetch-subvec4.comp @@ -1,8 +1,41 @@ -Texture3D IN: register(t0); -RWTexture3D OUT: register(u1); +Texture1D i1D: register(t0); +Texture2D i2D: register(t1); +Texture3D i3D: register(t2); +Texture1DArray i1DArray: register(t3); +Texture2DArray i2DArray: register(t4); +Texture2DMS i2DMS: register(t5); +Texture2DMSArray i2DMSArray: register(t6); + +Texture1D ii1D: register(t7); +Texture2D ii2D: register(t8); +Texture3D ii3D: register(t9); +Texture1DArray ii1DArray: register(t10); +Texture2DArray ii2DArray: register(t11); +Texture2DMS ii2DMS: register(t12); +Texture2DMSArray ii2DMSArray: register(t13); + +RWTexture3D OUT: register(u0); [numthreads(8,8,8)] void main(uint3 tid: SV_DispatchThreadID) { - OUT[tid] = IN[tid]; + float f = 0.0; + f += i1D[tid.x]; + f += i2D[tid.xy]; + f += i3D[tid]; + f += i1DArray[tid.xy]; + f += i2DArray[tid]; + f += i2DMS.Load(tid.xy, 1); + f += i2DMSArray.Load(tid, 3); + + int i = 0.0; + i += ii1D[tid.x]; + i += ii2D[tid.xy]; + i += ii3D[tid]; + i += ii1DArray[tid.xy]; + i += ii2DArray[tid]; + i += ii2DMS.Load(tid.xy, 1); + i += ii2DMSArray.Load(tid, 3); + + OUT[tid] = f + float(i); } diff --git a/Test/hlsl.imageload-subvec4.comp b/Test/hlsl.imageload-subvec4.comp new file mode 100644 index 0000000..b465cdb --- /dev/null +++ b/Test/hlsl.imageload-subvec4.comp @@ -0,0 +1,33 @@ +RWTexture1D i1D: register(u0); +RWTexture2D i2D: register(u1); +RWTexture3D i3D: register(u2); +RWTexture1DArray i1DArray: register(u3); +RWTexture2DArray i2DArray: register(u4); + +RWTexture1D ii1D: register(u5); +RWTexture2D ii2D: register(u6); +RWTexture3D ii3D: register(u7); +RWTexture1DArray ii1DArray: register(u8); +RWTexture2DArray ii2DArray: register(u9); + +RWTexture3D OUT: register(u10); + +[numthreads(8,8,8)] +void main(uint3 tid: SV_DispatchThreadID) +{ + float f = 0.0; + f += i1D[tid.x]; + f += i2D[tid.xy]; + f += i3D[tid]; + f += i1DArray[tid.xy]; + f += i2DArray[tid]; + + int i = 0.0; + i += ii1D[tid.x]; + i += ii2D[tid.xy]; + i += ii3D[tid]; + i += ii1DArray[tid.xy]; + i += ii2DArray[tid]; + + OUT[tid] = f + float(i); +} diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 33deef5..5e1cbda 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -235,6 +235,7 @@ INSTANTIATE_TEST_SUITE_P( {"hlsl.groupid.comp", "main"}, {"hlsl.identifier.sample.frag", "main"}, {"hlsl.if.frag", "PixelShaderFunction"}, + {"hlsl.imageload-subvec4.comp", "main"}, {"hlsl.imagefetch-subvec4.comp", "main"}, {"hlsl.implicitBool.frag", "main"}, {"hlsl.inf.vert", "main"}, -- 2.7.4