From f3f23fece3b82d2687d0b2ea3471891e116cfc9b Mon Sep 17 00:00:00 2001 From: Nathaniel Cesario Date: Mon, 11 Sep 2023 09:52:22 -0600 Subject: [PATCH] Add a generic texel fetch test Test all core sampler functions. --- Test/baseResults/spv.floatFetch.frag.out | 4423 ++++++++++++++++++++++ Test/spv.floatFetch.frag | 941 +++++ gtests/Spv.FromFile.cpp | 1 + 3 files changed, 5365 insertions(+) create mode 100644 Test/baseResults/spv.floatFetch.frag.out create mode 100644 Test/spv.floatFetch.frag diff --git a/Test/baseResults/spv.floatFetch.frag.out b/Test/baseResults/spv.floatFetch.frag.out new file mode 100644 index 000000000..8b9fc7290 --- /dev/null +++ b/Test/baseResults/spv.floatFetch.frag.out @@ -0,0 +1,4423 @@ +spv.floatFetch.frag +Validation failed +// Module Version 10000 +// Generated by (magic number): 8000b +// Id's are bound by 3599 + + Capability Shader + Capability ImageGatherExtended + Capability StorageImageMultisample + Capability ImageCubeArray + Capability ImageRect + Capability SampledRect + Capability InputAttachment + Capability SparseResidency + Capability MinLod + Capability Sampled1D + Capability Image1D + Capability SampledCubeArray + Capability SampledBuffer + Capability ImageBuffer + Capability ImageMSArray + Capability ImageQuery + Capability ImageGatherBiasLodAMD + Extension "SPV_AMD_texture_gather_bias_lod" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 127 138 150 197 283 371 866 874 882 2665 3590 3598 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + SourceExtension "GL_AMD_texture_gather_bias_lod" + SourceExtension "GL_ARB_sparse_texture2" + SourceExtension "GL_ARB_sparse_texture_clamp" + Name 4 "main" + Name 9 "testTexture(" + Name 11 "testTextureProj(" + Name 13 "testTextureLod(" + Name 15 "testTextureOffset(" + Name 17 "testTextureProjOffset(" + Name 19 "testTextureLodOffset(" + Name 21 "testTextureProjLodOffset(" + Name 23 "testTexelFetch(" + Name 25 "testTexelFetchOffset(" + Name 27 "testTextureGrad(" + Name 29 "testTextureGradOffset(" + Name 31 "testTextureProjGrad(" + Name 33 "testTextureProjGradoffset(" + Name 35 "testTextureGather(" + Name 37 "testTextureGatherOffset(" + Name 39 "testTextureGatherOffsets(" + Name 41 "testTextureGatherLod(" + Name 43 "testTextureGatherLodOffset(" + Name 45 "testTextureGatherLodOffsets(" + Name 50 "testTextureSize(" + Name 54 "testTextureQueryLod(" + Name 57 "testTextureQueryLevels(" + Name 59 "testTextureSamples(" + Name 61 "testImageLoad(" + Name 66 "testImageStore(vf4;" + Name 65 "data" + Name 68 "testSparseTexture(" + Name 70 "testSparseTextureLod(" + Name 72 "testSparseTextureOffset(" + Name 74 "testSparseTextureLodOffset(" + Name 76 "testSparseTextureGrad(" + Name 78 "testSparseTextureGradOffset(" + Name 80 "testSparseTexelFetch(" + Name 82 "testSparseTexelFetchOffset(" + Name 84 "testSparseTextureGather(" + Name 86 "testSparseTextureGatherOffset(" + Name 88 "testSparseTextureGatherOffsets(" + Name 90 "testSparseTextureGatherLod(" + Name 92 "testSparseTextureGatherLodOffset(" + Name 94 "testSparseTextureGatherLodOffsets(" + Name 96 "testSparseImageLoad(" + Name 98 "testSparseTextureClamp(" + Name 100 "testTextureClamp(" + Name 102 "testSparseTextureOffsetClamp(" + Name 104 "testTextureOffsetClamp(" + Name 106 "testSparseTextureGradClamp(" + Name 108 "testTextureGradClamp(" + Name 110 "testSparseTextureGradOffsetClamp(" + Name 112 "testTextureGradOffsetClamp(" + Name 114 "testCombinedTextureSampler(" + Name 116 "testSubpassLoad(" + Name 118 "texel" + Name 124 "s1D" + Name 127 "c1" + Name 135 "s2D" + Name 138 "c2" + Name 146 "s3D" + Name 150 "c3" + Name 158 "sCube" + Name 167 "s1DShadow" + Name 182 "s2DShadow" + Name 194 "sCubeShadow" + Name 197 "c4" + Name 208 "s1DArray" + Name 217 "s2DArray" + Name 226 "sCubeArray" + Name 235 "s1DArrayShadow" + Name 247 "s2DArrayShadow" + Name 259 "s2DRect" + Name 268 "s2DRectShadow" + Name 280 "sCubeArrayShadow" + Name 283 "compare" + Name 293 "texel" + Name 368 "texel" + Name 371 "lod" + Name 442 "texel" + Name 521 "texel" + Name 596 "texel" + Name 657 "texel" + Name 717 "texel" + Name 773 "sBuffer" + Name 784 "s2DMS" + Name 795 "s2DMSArray" + Name 807 "texel" + Name 863 "texel" + Name 866 "dPdxy1" + Name 874 "dPdxy2" + Name 882 "dPdxy3" + Name 986 "texel" + Name 1082 "texel" + Name 1177 "texel" + Name 1272 "texel" + Name 1332 "texel" + Name 1369 "texel" + Name 1409 "texel" + Name 1437 "texel" + Name 1453 "texel" + Name 1470 "size" + Name 1688 "lod" + Name 1758 "levels" + Name 1827 "samples" + Name 1841 "texel" + Name 1844 "i1D" + Name 1853 "i2D" + Name 1862 "i3D" + Name 1871 "i2DRect" + Name 1880 "iCube" + Name 1889 "iBuffer" + Name 1898 "i1DArray" + Name 1907 "i2DArray" + Name 1916 "iCubeArray" + Name 1925 "i2DMS" + Name 1934 "i2DMSArray" + Name 1988 "texel" + Name 1991 "ResType" + Name 2009 "ResType" + Name 2059 "texel" + Name 2101 "texel" + Name 2146 "texel" + Name 2176 "texel" + Name 2258 "texel" + Name 2317 "texel" + Name 2369 "texel" + Name 2407 "texel" + Name 2466 "texel" + Name 2503 "texel" + Name 2550 "texel" + Name 2578 "texel" + Name 2594 "texel" + Name 2610 "texel" + Name 2662 "texel" + Name 2665 "lodClamp" + Name 2729 "texel" + Name 2829 "texel" + Name 2867 "texel" + Name 2937 "texel" + Name 3011 "texel" + Name 3126 "texel" + Name 3174 "texel" + Name 3262 "texel" + Name 3264 "t1D" + Name 3268 "s" + Name 3276 "t2D" + Name 3285 "t3D" + Name 3294 "tCube" + Name 3303 "sShadow" + Name 3334 "t1DArray" + Name 3343 "t2DArray" + Name 3352 "tCubeArray" + Name 3381 "t2DRect" + Name 3414 "subpass" + Name 3420 "subpassMS" + Name 3426 "result" + Name 3511 "param" + Name 3590 "fragColor" + Name 3593 "tBuffer" + Name 3595 "t2DMS" + Name 3597 "t2DMSArray" + Name 3598 "bias" + Decorate 124(s1D) DescriptorSet 0 + Decorate 124(s1D) Binding 0 + Decorate 127(c1) Location 0 + Decorate 135(s2D) DescriptorSet 0 + Decorate 135(s2D) Binding 1 + Decorate 138(c2) Location 1 + Decorate 146(s3D) DescriptorSet 0 + Decorate 146(s3D) Binding 2 + Decorate 150(c3) Location 2 + Decorate 158(sCube) DescriptorSet 0 + Decorate 158(sCube) Binding 4 + Decorate 167(s1DShadow) DescriptorSet 0 + Decorate 167(s1DShadow) Binding 11 + Decorate 182(s2DShadow) DescriptorSet 0 + Decorate 182(s2DShadow) Binding 12 + Decorate 194(sCubeShadow) DescriptorSet 0 + Decorate 194(sCubeShadow) Binding 14 + Decorate 197(c4) Location 3 + Decorate 208(s1DArray) DescriptorSet 0 + Decorate 208(s1DArray) Binding 7 + Decorate 217(s2DArray) DescriptorSet 0 + Decorate 217(s2DArray) Binding 8 + Decorate 226(sCubeArray) DescriptorSet 0 + Decorate 226(sCubeArray) Binding 9 + Decorate 235(s1DArrayShadow) DescriptorSet 0 + Decorate 235(s1DArrayShadow) Binding 15 + Decorate 247(s2DArrayShadow) DescriptorSet 0 + Decorate 247(s2DArrayShadow) Binding 16 + Decorate 259(s2DRect) DescriptorSet 0 + Decorate 259(s2DRect) Binding 3 + Decorate 268(s2DRectShadow) DescriptorSet 0 + Decorate 268(s2DRectShadow) Binding 13 + Decorate 280(sCubeArrayShadow) DescriptorSet 0 + Decorate 280(sCubeArrayShadow) Binding 17 + Decorate 283(compare) Location 4 + Decorate 371(lod) Location 5 + Decorate 773(sBuffer) DescriptorSet 0 + Decorate 773(sBuffer) Binding 5 + Decorate 784(s2DMS) DescriptorSet 0 + Decorate 784(s2DMS) Binding 6 + Decorate 795(s2DMSArray) DescriptorSet 0 + Decorate 795(s2DMSArray) Binding 10 + Decorate 866(dPdxy1) Location 8 + Decorate 874(dPdxy2) Location 9 + Decorate 882(dPdxy3) Location 10 + Decorate 1844(i1D) DescriptorSet 1 + Decorate 1844(i1D) Binding 0 + Decorate 1853(i2D) DescriptorSet 1 + Decorate 1853(i2D) Binding 1 + Decorate 1862(i3D) DescriptorSet 1 + Decorate 1862(i3D) Binding 2 + Decorate 1871(i2DRect) DescriptorSet 1 + Decorate 1871(i2DRect) Binding 3 + Decorate 1880(iCube) DescriptorSet 1 + Decorate 1880(iCube) Binding 4 + Decorate 1889(iBuffer) DescriptorSet 1 + Decorate 1889(iBuffer) Binding 8 + Decorate 1898(i1DArray) DescriptorSet 1 + Decorate 1898(i1DArray) Binding 5 + Decorate 1907(i2DArray) DescriptorSet 1 + Decorate 1907(i2DArray) Binding 6 + Decorate 1916(iCubeArray) DescriptorSet 1 + Decorate 1916(iCubeArray) Binding 7 + Decorate 1925(i2DMS) DescriptorSet 1 + Decorate 1925(i2DMS) Binding 9 + Decorate 1934(i2DMSArray) DescriptorSet 1 + Decorate 1934(i2DMSArray) Binding 10 + Decorate 2665(lodClamp) Location 7 + Decorate 3264(t1D) DescriptorSet 2 + Decorate 3264(t1D) Binding 0 + Decorate 3268(s) DescriptorSet 2 + Decorate 3268(s) Binding 11 + Decorate 3276(t2D) DescriptorSet 2 + Decorate 3276(t2D) Binding 1 + Decorate 3285(t3D) DescriptorSet 2 + Decorate 3285(t3D) Binding 2 + Decorate 3294(tCube) DescriptorSet 2 + Decorate 3294(tCube) Binding 4 + Decorate 3303(sShadow) DescriptorSet 2 + Decorate 3303(sShadow) Binding 12 + Decorate 3334(t1DArray) DescriptorSet 2 + Decorate 3334(t1DArray) Binding 5 + Decorate 3343(t2DArray) DescriptorSet 2 + Decorate 3343(t2DArray) Binding 6 + Decorate 3352(tCubeArray) DescriptorSet 2 + Decorate 3352(tCubeArray) Binding 7 + Decorate 3381(t2DRect) DescriptorSet 2 + Decorate 3381(t2DRect) Binding 3 + Decorate 3414(subpass) DescriptorSet 3 + Decorate 3414(subpass) Binding 0 + Decorate 3414(subpass) InputAttachmentIndex 0 + Decorate 3420(subpassMS) DescriptorSet 3 + Decorate 3420(subpassMS) Binding 1 + Decorate 3420(subpassMS) InputAttachmentIndex 0 + Decorate 3590(fragColor) Location 0 + Decorate 3593(tBuffer) DescriptorSet 2 + Decorate 3593(tBuffer) Binding 8 + Decorate 3595(t2DMS) DescriptorSet 2 + Decorate 3595(t2DMS) Binding 9 + Decorate 3597(t2DMSArray) DescriptorSet 2 + Decorate 3597(t2DMSArray) Binding 10 + Decorate 3598(bias) Location 6 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 47: TypeInt 32 1 + 48: TypeVector 47(int) 4 + 49: TypeFunction 48(ivec4) + 52: TypeVector 6(float) 2 + 53: TypeFunction 52(fvec2) + 56: TypeFunction 47(int) + 63: TypePointer Function 7(fvec4) + 64: TypeFunction 2 63(ptr) + 119: 6(float) Constant 0 + 120: 7(fvec4) ConstantComposite 119 119 119 119 + 121: TypeImage 6(float) 1D sampled format:Unknown + 122: TypeSampledImage 121 + 123: TypePointer UniformConstant 122 + 124(s1D): 123(ptr) Variable UniformConstant + 126: TypePointer Input 6(float) + 127(c1): 126(ptr) Variable Input + 132: TypeImage 6(float) 2D sampled format:Unknown + 133: TypeSampledImage 132 + 134: TypePointer UniformConstant 133 + 135(s2D): 134(ptr) Variable UniformConstant + 137: TypePointer Input 52(fvec2) + 138(c2): 137(ptr) Variable Input + 143: TypeImage 6(float) 3D sampled format:Unknown + 144: TypeSampledImage 143 + 145: TypePointer UniformConstant 144 + 146(s3D): 145(ptr) Variable UniformConstant + 148: TypeVector 6(float) 3 + 149: TypePointer Input 148(fvec3) + 150(c3): 149(ptr) Variable Input + 155: TypeImage 6(float) Cube sampled format:Unknown + 156: TypeSampledImage 155 + 157: TypePointer UniformConstant 156 + 158(sCube): 157(ptr) Variable UniformConstant + 164: TypeImage 6(float) 1D depth sampled format:Unknown + 165: TypeSampledImage 164 + 166: TypePointer UniformConstant 165 + 167(s1DShadow): 166(ptr) Variable UniformConstant + 172: TypeInt 32 0 + 173: 172(int) Constant 0 + 174: TypePointer Function 6(float) + 179: TypeImage 6(float) 2D depth sampled format:Unknown + 180: TypeSampledImage 179 + 181: TypePointer UniformConstant 180 + 182(s2DShadow): 181(ptr) Variable UniformConstant + 191: TypeImage 6(float) Cube depth sampled format:Unknown + 192: TypeSampledImage 191 + 193: TypePointer UniformConstant 192 +194(sCubeShadow): 193(ptr) Variable UniformConstant + 196: TypePointer Input 7(fvec4) + 197(c4): 196(ptr) Variable Input + 205: TypeImage 6(float) 1D array sampled format:Unknown + 206: TypeSampledImage 205 + 207: TypePointer UniformConstant 206 + 208(s1DArray): 207(ptr) Variable UniformConstant + 214: TypeImage 6(float) 2D array sampled format:Unknown + 215: TypeSampledImage 214 + 216: TypePointer UniformConstant 215 + 217(s2DArray): 216(ptr) Variable UniformConstant + 223: TypeImage 6(float) Cube array sampled format:Unknown + 224: TypeSampledImage 223 + 225: TypePointer UniformConstant 224 + 226(sCubeArray): 225(ptr) Variable UniformConstant + 232: TypeImage 6(float) 1D depth array sampled format:Unknown + 233: TypeSampledImage 232 + 234: TypePointer UniformConstant 233 +235(s1DArrayShadow): 234(ptr) Variable UniformConstant + 244: TypeImage 6(float) 2D depth array sampled format:Unknown + 245: TypeSampledImage 244 + 246: TypePointer UniformConstant 245 +247(s2DArrayShadow): 246(ptr) Variable UniformConstant + 256: TypeImage 6(float) Rect sampled format:Unknown + 257: TypeSampledImage 256 + 258: TypePointer UniformConstant 257 + 259(s2DRect): 258(ptr) Variable UniformConstant + 265: TypeImage 6(float) Rect depth sampled format:Unknown + 266: TypeSampledImage 265 + 267: TypePointer UniformConstant 266 +268(s2DRectShadow): 267(ptr) Variable UniformConstant + 277: TypeImage 6(float) Cube depth array sampled format:Unknown + 278: TypeSampledImage 277 + 279: TypePointer UniformConstant 278 +280(sCubeArrayShadow): 279(ptr) Variable UniformConstant + 283(compare): 126(ptr) Variable Input + 371(lod): 126(ptr) Variable Input + 445: 47(int) Constant 1 + 451: TypeVector 47(int) 2 + 452: 451(ivec2) ConstantComposite 445 445 + 458: TypeVector 47(int) 3 + 459: 458(ivec3) ConstantComposite 445 445 445 + 770: TypeImage 6(float) Buffer sampled format:Unknown + 771: TypeSampledImage 770 + 772: TypePointer UniformConstant 771 + 773(sBuffer): 772(ptr) Variable UniformConstant + 781: TypeImage 6(float) 2D multi-sampled sampled format:Unknown + 782: TypeSampledImage 781 + 783: TypePointer UniformConstant 782 + 784(s2DMS): 783(ptr) Variable UniformConstant + 792: TypeImage 6(float) 2D array multi-sampled sampled format:Unknown + 793: TypeSampledImage 792 + 794: TypePointer UniformConstant 793 + 795(s2DMSArray): 794(ptr) Variable UniformConstant + 799: 47(int) Constant 2 + 866(dPdxy1): 126(ptr) Variable Input + 874(dPdxy2): 137(ptr) Variable Input + 882(dPdxy3): 149(ptr) Variable Input + 1275: 47(int) Constant 0 + 1372: 172(int) Constant 4 + 1373: TypeArray 451(ivec2) 1372 + 1374: 1373 ConstantComposite 452 452 452 452 + 1469: TypePointer Function 48(ivec4) + 1471: 48(ivec4) ConstantComposite 1275 1275 1275 1275 + 1477: TypePointer Function 47(int) + 1492: 172(int) Constant 1 + 1507: 172(int) Constant 2 + 1687: TypePointer Function 52(fvec2) + 1689: 52(fvec2) ConstantComposite 119 119 + 1842: TypeImage 6(float) 1D nonsampled format:Rgba16f + 1843: TypePointer UniformConstant 1842 + 1844(i1D): 1843(ptr) Variable UniformConstant + 1851: TypeImage 6(float) 2D nonsampled format:Rgba16f + 1852: TypePointer UniformConstant 1851 + 1853(i2D): 1852(ptr) Variable UniformConstant + 1860: TypeImage 6(float) 3D nonsampled format:Rgba16f + 1861: TypePointer UniformConstant 1860 + 1862(i3D): 1861(ptr) Variable UniformConstant + 1869: TypeImage 6(float) Rect nonsampled format:Rgba16f + 1870: TypePointer UniformConstant 1869 + 1871(i2DRect): 1870(ptr) Variable UniformConstant + 1878: TypeImage 6(float) Cube nonsampled format:Rgba16f + 1879: TypePointer UniformConstant 1878 + 1880(iCube): 1879(ptr) Variable UniformConstant + 1887: TypeImage 6(float) Buffer nonsampled format:Rgba16f + 1888: TypePointer UniformConstant 1887 + 1889(iBuffer): 1888(ptr) Variable UniformConstant + 1896: TypeImage 6(float) 1D array nonsampled format:Rgba16f + 1897: TypePointer UniformConstant 1896 + 1898(i1DArray): 1897(ptr) Variable UniformConstant + 1905: TypeImage 6(float) 2D array nonsampled format:Rgba16f + 1906: TypePointer UniformConstant 1905 + 1907(i2DArray): 1906(ptr) Variable UniformConstant + 1914: TypeImage 6(float) Cube array nonsampled format:Rgba16f + 1915: TypePointer UniformConstant 1914 +1916(iCubeArray): 1915(ptr) Variable UniformConstant + 1923: TypeImage 6(float) 2D multi-sampled nonsampled format:Rgba16f + 1924: TypePointer UniformConstant 1923 + 1925(i2DMS): 1924(ptr) Variable UniformConstant + 1932: TypeImage 6(float) 2D array multi-sampled nonsampled format:Rgba16f + 1933: TypePointer UniformConstant 1932 +1934(i2DMSArray): 1933(ptr) Variable UniformConstant + 1991(ResType): TypeStruct 47(int) 7(fvec4) + 2009(ResType): TypeStruct 47(int) 6(float) + 2506: 451(ivec2) ConstantComposite 445 799 + 2507: 47(int) Constant 3 + 2508: 47(int) Constant 4 + 2509: 451(ivec2) ConstantComposite 2507 2508 + 2510: 47(int) Constant 15 + 2511: 47(int) Constant 16 + 2512: 451(ivec2) ConstantComposite 2510 2511 + 2513: 47(int) Constant 4294967294 + 2514: 451(ivec2) ConstantComposite 2513 1275 + 2515: 1373 ConstantComposite 2506 2509 2512 2514 + 2665(lodClamp): 126(ptr) Variable Input + 3263: TypePointer UniformConstant 121 + 3264(t1D): 3263(ptr) Variable UniformConstant + 3266: TypeSampler + 3267: TypePointer UniformConstant 3266 + 3268(s): 3267(ptr) Variable UniformConstant + 3275: TypePointer UniformConstant 132 + 3276(t2D): 3275(ptr) Variable UniformConstant + 3284: TypePointer UniformConstant 143 + 3285(t3D): 3284(ptr) Variable UniformConstant + 3293: TypePointer UniformConstant 155 + 3294(tCube): 3293(ptr) Variable UniformConstant + 3303(sShadow): 3267(ptr) Variable UniformConstant + 3333: TypePointer UniformConstant 205 + 3334(t1DArray): 3333(ptr) Variable UniformConstant + 3342: TypePointer UniformConstant 214 + 3343(t2DArray): 3342(ptr) Variable UniformConstant + 3351: TypePointer UniformConstant 223 +3352(tCubeArray): 3351(ptr) Variable UniformConstant + 3380: TypePointer UniformConstant 256 + 3381(t2DRect): 3380(ptr) Variable UniformConstant + 3412: TypeImage 6(float) SubpassData nonsampled format:Unknown + 3413: TypePointer UniformConstant 3412 + 3414(subpass): 3413(ptr) Variable UniformConstant + 3416: 451(ivec2) ConstantComposite 1275 1275 + 3418: TypeImage 6(float) SubpassData multi-sampled nonsampled format:Unknown + 3419: TypePointer UniformConstant 3418 + 3420(subpassMS): 3419(ptr) Variable UniformConstant + 3589: TypePointer Output 7(fvec4) + 3590(fragColor): 3589(ptr) Variable Output + 3592: TypePointer UniformConstant 770 + 3593(tBuffer): 3592(ptr) Variable UniformConstant + 3594: TypePointer UniformConstant 781 + 3595(t2DMS): 3594(ptr) Variable UniformConstant + 3596: TypePointer UniformConstant 792 +3597(t2DMSArray): 3596(ptr) Variable UniformConstant + 3598(bias): 126(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 3426(result): 63(ptr) Variable Function + 3511(param): 63(ptr) Variable Function + Store 3426(result) 120 + 3427: 7(fvec4) FunctionCall 9(testTexture() + 3428: 7(fvec4) Load 3426(result) + 3429: 7(fvec4) FAdd 3428 3427 + Store 3426(result) 3429 + 3430: 7(fvec4) FunctionCall 11(testTextureProj() + 3431: 7(fvec4) Load 3426(result) + 3432: 7(fvec4) FAdd 3431 3430 + Store 3426(result) 3432 + 3433: 7(fvec4) FunctionCall 13(testTextureLod() + 3434: 7(fvec4) Load 3426(result) + 3435: 7(fvec4) FAdd 3434 3433 + Store 3426(result) 3435 + 3436: 7(fvec4) FunctionCall 15(testTextureOffset() + 3437: 7(fvec4) Load 3426(result) + 3438: 7(fvec4) FAdd 3437 3436 + Store 3426(result) 3438 + 3439: 7(fvec4) FunctionCall 19(testTextureLodOffset() + 3440: 7(fvec4) Load 3426(result) + 3441: 7(fvec4) FAdd 3440 3439 + Store 3426(result) 3441 + 3442: 7(fvec4) FunctionCall 21(testTextureProjLodOffset() + 3443: 7(fvec4) Load 3426(result) + 3444: 7(fvec4) FAdd 3443 3442 + Store 3426(result) 3444 + 3445: 7(fvec4) FunctionCall 23(testTexelFetch() + 3446: 7(fvec4) Load 3426(result) + 3447: 7(fvec4) FAdd 3446 3445 + Store 3426(result) 3447 + 3448: 7(fvec4) FunctionCall 25(testTexelFetchOffset() + 3449: 7(fvec4) Load 3426(result) + 3450: 7(fvec4) FAdd 3449 3448 + Store 3426(result) 3450 + 3451: 7(fvec4) FunctionCall 27(testTextureGrad() + 3452: 7(fvec4) Load 3426(result) + 3453: 7(fvec4) FAdd 3452 3451 + Store 3426(result) 3453 + 3454: 7(fvec4) FunctionCall 29(testTextureGradOffset() + 3455: 7(fvec4) Load 3426(result) + 3456: 7(fvec4) FAdd 3455 3454 + Store 3426(result) 3456 + 3457: 7(fvec4) FunctionCall 31(testTextureProjGrad() + 3458: 7(fvec4) Load 3426(result) + 3459: 7(fvec4) FAdd 3458 3457 + Store 3426(result) 3459 + 3460: 7(fvec4) FunctionCall 33(testTextureProjGradoffset() + 3461: 7(fvec4) Load 3426(result) + 3462: 7(fvec4) FAdd 3461 3460 + Store 3426(result) 3462 + 3463: 7(fvec4) FunctionCall 35(testTextureGather() + 3464: 7(fvec4) Load 3426(result) + 3465: 7(fvec4) FAdd 3464 3463 + Store 3426(result) 3465 + 3466: 7(fvec4) FunctionCall 37(testTextureGatherOffset() + 3467: 7(fvec4) Load 3426(result) + 3468: 7(fvec4) FAdd 3467 3466 + Store 3426(result) 3468 + 3469: 7(fvec4) FunctionCall 39(testTextureGatherOffsets() + 3470: 7(fvec4) Load 3426(result) + 3471: 7(fvec4) FAdd 3470 3469 + Store 3426(result) 3471 + 3472: 7(fvec4) FunctionCall 41(testTextureGatherLod() + 3473: 7(fvec4) Load 3426(result) + 3474: 7(fvec4) FAdd 3473 3472 + Store 3426(result) 3474 + 3475: 7(fvec4) FunctionCall 43(testTextureGatherLodOffset() + 3476: 7(fvec4) Load 3426(result) + 3477: 7(fvec4) FAdd 3476 3475 + Store 3426(result) 3477 + 3478: 7(fvec4) FunctionCall 45(testTextureGatherLodOffsets() + 3479: 7(fvec4) Load 3426(result) + 3480: 7(fvec4) FAdd 3479 3478 + Store 3426(result) 3480 + 3481: 48(ivec4) FunctionCall 50(testTextureSize() + 3482: 7(fvec4) ConvertSToF 3481 + 3483: 7(fvec4) Load 3426(result) + 3484: 7(fvec4) FAdd 3483 3482 + Store 3426(result) 3484 + 3485: 52(fvec2) FunctionCall 54(testTextureQueryLod() + 3486: 6(float) CompositeExtract 3485 0 + 3487: 6(float) CompositeExtract 3485 1 + 3488: 52(fvec2) CompositeConstruct 3486 3487 + 3489: 7(fvec4) Load 3426(result) + 3490: 52(fvec2) VectorShuffle 3489 3489 0 1 + 3491: 52(fvec2) FAdd 3490 3488 + 3492: 174(ptr) AccessChain 3426(result) 173 + 3493: 6(float) CompositeExtract 3491 0 + Store 3492 3493 + 3494: 174(ptr) AccessChain 3426(result) 1492 + 3495: 6(float) CompositeExtract 3491 1 + Store 3494 3495 + 3496: 47(int) FunctionCall 57(testTextureQueryLevels() + 3497: 6(float) ConvertSToF 3496 + 3498: 174(ptr) AccessChain 3426(result) 173 + 3499: 6(float) Load 3498 + 3500: 6(float) FAdd 3499 3497 + 3501: 174(ptr) AccessChain 3426(result) 173 + Store 3501 3500 + 3502: 47(int) FunctionCall 59(testTextureSamples() + 3503: 6(float) ConvertSToF 3502 + 3504: 174(ptr) AccessChain 3426(result) 173 + 3505: 6(float) Load 3504 + 3506: 6(float) FAdd 3505 3503 + 3507: 174(ptr) AccessChain 3426(result) 173 + Store 3507 3506 + 3508: 7(fvec4) FunctionCall 61(testImageLoad() + 3509: 7(fvec4) Load 3426(result) + 3510: 7(fvec4) FAdd 3509 3508 + Store 3426(result) 3510 + 3512: 7(fvec4) Load 3426(result) + Store 3511(param) 3512 + 3513: 2 FunctionCall 66(testImageStore(vf4;) 3511(param) + 3514: 7(fvec4) FunctionCall 68(testSparseTexture() + 3515: 7(fvec4) Load 3426(result) + 3516: 7(fvec4) FAdd 3515 3514 + Store 3426(result) 3516 + 3517: 7(fvec4) FunctionCall 70(testSparseTextureLod() + 3518: 7(fvec4) Load 3426(result) + 3519: 7(fvec4) FAdd 3518 3517 + Store 3426(result) 3519 + 3520: 7(fvec4) FunctionCall 72(testSparseTextureOffset() + 3521: 7(fvec4) Load 3426(result) + 3522: 7(fvec4) FAdd 3521 3520 + Store 3426(result) 3522 + 3523: 7(fvec4) FunctionCall 74(testSparseTextureLodOffset() + 3524: 7(fvec4) Load 3426(result) + 3525: 7(fvec4) FAdd 3524 3523 + Store 3426(result) 3525 + 3526: 7(fvec4) FunctionCall 76(testSparseTextureGrad() + 3527: 7(fvec4) Load 3426(result) + 3528: 7(fvec4) FAdd 3527 3526 + Store 3426(result) 3528 + 3529: 7(fvec4) FunctionCall 78(testSparseTextureGradOffset() + 3530: 7(fvec4) Load 3426(result) + 3531: 7(fvec4) FAdd 3530 3529 + Store 3426(result) 3531 + 3532: 7(fvec4) FunctionCall 80(testSparseTexelFetch() + 3533: 7(fvec4) Load 3426(result) + 3534: 7(fvec4) FAdd 3533 3532 + Store 3426(result) 3534 + 3535: 7(fvec4) FunctionCall 82(testSparseTexelFetchOffset() + 3536: 7(fvec4) Load 3426(result) + 3537: 7(fvec4) FAdd 3536 3535 + Store 3426(result) 3537 + 3538: 7(fvec4) FunctionCall 84(testSparseTextureGather() + 3539: 7(fvec4) Load 3426(result) + 3540: 7(fvec4) FAdd 3539 3538 + Store 3426(result) 3540 + 3541: 7(fvec4) FunctionCall 86(testSparseTextureGatherOffset() + 3542: 7(fvec4) Load 3426(result) + 3543: 7(fvec4) FAdd 3542 3541 + Store 3426(result) 3543 + 3544: 7(fvec4) FunctionCall 88(testSparseTextureGatherOffsets() + 3545: 7(fvec4) Load 3426(result) + 3546: 7(fvec4) FAdd 3545 3544 + Store 3426(result) 3546 + 3547: 7(fvec4) FunctionCall 90(testSparseTextureGatherLod() + 3548: 7(fvec4) Load 3426(result) + 3549: 7(fvec4) FAdd 3548 3547 + Store 3426(result) 3549 + 3550: 7(fvec4) FunctionCall 92(testSparseTextureGatherLodOffset() + 3551: 7(fvec4) Load 3426(result) + 3552: 7(fvec4) FAdd 3551 3550 + Store 3426(result) 3552 + 3553: 7(fvec4) FunctionCall 94(testSparseTextureGatherLodOffsets() + 3554: 7(fvec4) Load 3426(result) + 3555: 7(fvec4) FAdd 3554 3553 + Store 3426(result) 3555 + 3556: 7(fvec4) FunctionCall 96(testSparseImageLoad() + 3557: 7(fvec4) Load 3426(result) + 3558: 7(fvec4) FAdd 3557 3556 + Store 3426(result) 3558 + 3559: 7(fvec4) FunctionCall 98(testSparseTextureClamp() + 3560: 7(fvec4) Load 3426(result) + 3561: 7(fvec4) FAdd 3560 3559 + Store 3426(result) 3561 + 3562: 7(fvec4) FunctionCall 100(testTextureClamp() + 3563: 7(fvec4) Load 3426(result) + 3564: 7(fvec4) FAdd 3563 3562 + Store 3426(result) 3564 + 3565: 7(fvec4) FunctionCall 102(testSparseTextureOffsetClamp() + 3566: 7(fvec4) Load 3426(result) + 3567: 7(fvec4) FAdd 3566 3565 + Store 3426(result) 3567 + 3568: 7(fvec4) FunctionCall 104(testTextureOffsetClamp() + 3569: 7(fvec4) Load 3426(result) + 3570: 7(fvec4) FAdd 3569 3568 + Store 3426(result) 3570 + 3571: 7(fvec4) FunctionCall 76(testSparseTextureGrad() + 3572: 7(fvec4) Load 3426(result) + 3573: 7(fvec4) FAdd 3572 3571 + Store 3426(result) 3573 + 3574: 7(fvec4) FunctionCall 27(testTextureGrad() + 3575: 7(fvec4) Load 3426(result) + 3576: 7(fvec4) FAdd 3575 3574 + Store 3426(result) 3576 + 3577: 7(fvec4) FunctionCall 110(testSparseTextureGradOffsetClamp() + 3578: 7(fvec4) Load 3426(result) + 3579: 7(fvec4) FAdd 3578 3577 + Store 3426(result) 3579 + 3580: 7(fvec4) FunctionCall 112(testTextureGradOffsetClamp() + 3581: 7(fvec4) Load 3426(result) + 3582: 7(fvec4) FAdd 3581 3580 + Store 3426(result) 3582 + 3583: 7(fvec4) FunctionCall 114(testCombinedTextureSampler() + 3584: 7(fvec4) Load 3426(result) + 3585: 7(fvec4) FAdd 3584 3583 + Store 3426(result) 3585 + 3586: 7(fvec4) FunctionCall 116(testSubpassLoad() + 3587: 7(fvec4) Load 3426(result) + 3588: 7(fvec4) FAdd 3587 3586 + Store 3426(result) 3588 + 3591: 7(fvec4) Load 3426(result) + Store 3590(fragColor) 3591 + Return + FunctionEnd + 9(testTexture(): 7(fvec4) Function None 8 + 10: Label + 118(texel): 63(ptr) Variable Function + Store 118(texel) 120 + 125: 122 Load 124(s1D) + 128: 6(float) Load 127(c1) + 129: 7(fvec4) ImageSampleImplicitLod 125 128 + 130: 7(fvec4) Load 118(texel) + 131: 7(fvec4) FAdd 130 129 + Store 118(texel) 131 + 136: 133 Load 135(s2D) + 139: 52(fvec2) Load 138(c2) + 140: 7(fvec4) ImageSampleImplicitLod 136 139 + 141: 7(fvec4) Load 118(texel) + 142: 7(fvec4) FAdd 141 140 + Store 118(texel) 142 + 147: 144 Load 146(s3D) + 151: 148(fvec3) Load 150(c3) + 152: 7(fvec4) ImageSampleImplicitLod 147 151 + 153: 7(fvec4) Load 118(texel) + 154: 7(fvec4) FAdd 153 152 + Store 118(texel) 154 + 159: 156 Load 158(sCube) + 160: 148(fvec3) Load 150(c3) + 161: 7(fvec4) ImageSampleImplicitLod 159 160 + 162: 7(fvec4) Load 118(texel) + 163: 7(fvec4) FAdd 162 161 + Store 118(texel) 163 + 168: 165 Load 167(s1DShadow) + 169: 148(fvec3) Load 150(c3) + 170: 6(float) CompositeExtract 169 2 + 171: 6(float) ImageSampleDrefImplicitLod 168 169 170 + 175: 174(ptr) AccessChain 118(texel) 173 + 176: 6(float) Load 175 + 177: 6(float) FAdd 176 171 + 178: 174(ptr) AccessChain 118(texel) 173 + Store 178 177 + 183: 180 Load 182(s2DShadow) + 184: 148(fvec3) Load 150(c3) + 185: 6(float) CompositeExtract 184 2 + 186: 6(float) ImageSampleDrefImplicitLod 183 184 185 + 187: 174(ptr) AccessChain 118(texel) 173 + 188: 6(float) Load 187 + 189: 6(float) FAdd 188 186 + 190: 174(ptr) AccessChain 118(texel) 173 + Store 190 189 + 195: 192 Load 194(sCubeShadow) + 198: 7(fvec4) Load 197(c4) + 199: 6(float) CompositeExtract 198 3 + 200: 6(float) ImageSampleDrefImplicitLod 195 198 199 + 201: 174(ptr) AccessChain 118(texel) 173 + 202: 6(float) Load 201 + 203: 6(float) FAdd 202 200 + 204: 174(ptr) AccessChain 118(texel) 173 + Store 204 203 + 209: 206 Load 208(s1DArray) + 210: 52(fvec2) Load 138(c2) + 211: 7(fvec4) ImageSampleImplicitLod 209 210 + 212: 7(fvec4) Load 118(texel) + 213: 7(fvec4) FAdd 212 211 + Store 118(texel) 213 + 218: 215 Load 217(s2DArray) + 219: 148(fvec3) Load 150(c3) + 220: 7(fvec4) ImageSampleImplicitLod 218 219 + 221: 7(fvec4) Load 118(texel) + 222: 7(fvec4) FAdd 221 220 + Store 118(texel) 222 + 227: 224 Load 226(sCubeArray) + 228: 7(fvec4) Load 197(c4) + 229: 7(fvec4) ImageSampleImplicitLod 227 228 + 230: 7(fvec4) Load 118(texel) + 231: 7(fvec4) FAdd 230 229 + Store 118(texel) 231 + 236: 233 Load 235(s1DArrayShadow) + 237: 148(fvec3) Load 150(c3) + 238: 6(float) CompositeExtract 237 2 + 239: 6(float) ImageSampleDrefImplicitLod 236 237 238 + 240: 174(ptr) AccessChain 118(texel) 173 + 241: 6(float) Load 240 + 242: 6(float) FAdd 241 239 + 243: 174(ptr) AccessChain 118(texel) 173 + Store 243 242 + 248: 245 Load 247(s2DArrayShadow) + 249: 7(fvec4) Load 197(c4) + 250: 6(float) CompositeExtract 249 3 + 251: 6(float) ImageSampleDrefImplicitLod 248 249 250 + 252: 174(ptr) AccessChain 118(texel) 173 + 253: 6(float) Load 252 + 254: 6(float) FAdd 253 251 + 255: 174(ptr) AccessChain 118(texel) 173 + Store 255 254 + 260: 257 Load 259(s2DRect) + 261: 52(fvec2) Load 138(c2) + 262: 7(fvec4) ImageSampleImplicitLod 260 261 + 263: 7(fvec4) Load 118(texel) + 264: 7(fvec4) FAdd 263 262 + Store 118(texel) 264 + 269: 266 Load 268(s2DRectShadow) + 270: 148(fvec3) Load 150(c3) + 271: 6(float) CompositeExtract 270 2 + 272: 6(float) ImageSampleDrefImplicitLod 269 270 271 + 273: 174(ptr) AccessChain 118(texel) 173 + 274: 6(float) Load 273 + 275: 6(float) FAdd 274 272 + 276: 174(ptr) AccessChain 118(texel) 173 + Store 276 275 + 281: 278 Load 280(sCubeArrayShadow) + 282: 7(fvec4) Load 197(c4) + 284: 6(float) Load 283(compare) + 285: 6(float) ImageSampleDrefImplicitLod 281 282 284 + 286: 174(ptr) AccessChain 118(texel) 173 + 287: 6(float) Load 286 + 288: 6(float) FAdd 287 285 + 289: 174(ptr) AccessChain 118(texel) 173 + Store 289 288 + 290: 7(fvec4) Load 118(texel) + ReturnValue 290 + FunctionEnd +11(testTextureProj(): 7(fvec4) Function None 8 + 12: Label + 293(texel): 63(ptr) Variable Function + Store 293(texel) 120 + 294: 122 Load 124(s1D) + 295: 52(fvec2) Load 138(c2) + 296: 7(fvec4) ImageSampleProjImplicitLod 294 295 + 297: 7(fvec4) Load 293(texel) + 298: 7(fvec4) FAdd 297 296 + Store 293(texel) 298 + 299: 122 Load 124(s1D) + 300: 7(fvec4) Load 197(c4) + 301: 6(float) CompositeExtract 300 3 + 302: 7(fvec4) CompositeInsert 301 300 1 + 303: 7(fvec4) ImageSampleProjImplicitLod 299 302 + 304: 7(fvec4) Load 293(texel) + 305: 7(fvec4) FAdd 304 303 + Store 293(texel) 305 + 306: 133 Load 135(s2D) + 307: 148(fvec3) Load 150(c3) + 308: 7(fvec4) ImageSampleProjImplicitLod 306 307 + 309: 7(fvec4) Load 293(texel) + 310: 7(fvec4) FAdd 309 308 + Store 293(texel) 310 + 311: 133 Load 135(s2D) + 312: 7(fvec4) Load 197(c4) + 313: 6(float) CompositeExtract 312 3 + 314: 7(fvec4) CompositeInsert 313 312 2 + 315: 7(fvec4) ImageSampleProjImplicitLod 311 314 + 316: 7(fvec4) Load 293(texel) + 317: 7(fvec4) FAdd 316 315 + Store 293(texel) 317 + 318: 144 Load 146(s3D) + 319: 7(fvec4) Load 197(c4) + 320: 7(fvec4) ImageSampleProjImplicitLod 318 319 + 321: 7(fvec4) Load 293(texel) + 322: 7(fvec4) FAdd 321 320 + Store 293(texel) 322 + 323: 165 Load 167(s1DShadow) + 324: 7(fvec4) Load 197(c4) + 325: 6(float) CompositeExtract 324 2 + 326: 6(float) CompositeExtract 324 3 + 327: 7(fvec4) CompositeInsert 326 324 1 + 328: 6(float) ImageSampleProjDrefImplicitLod 323 327 325 + 329: 174(ptr) AccessChain 293(texel) 173 + 330: 6(float) Load 329 + 331: 6(float) FAdd 330 328 + 332: 174(ptr) AccessChain 293(texel) 173 + Store 332 331 + 333: 180 Load 182(s2DShadow) + 334: 7(fvec4) Load 197(c4) + 335: 6(float) CompositeExtract 334 2 + 336: 6(float) CompositeExtract 334 3 + 337: 7(fvec4) CompositeInsert 336 334 2 + 338: 6(float) ImageSampleProjDrefImplicitLod 333 337 335 + 339: 174(ptr) AccessChain 293(texel) 173 + 340: 6(float) Load 339 + 341: 6(float) FAdd 340 338 + 342: 174(ptr) AccessChain 293(texel) 173 + Store 342 341 + 343: 257 Load 259(s2DRect) + 344: 148(fvec3) Load 150(c3) + 345: 7(fvec4) ImageSampleProjImplicitLod 343 344 + 346: 7(fvec4) Load 293(texel) + 347: 7(fvec4) FAdd 346 345 + Store 293(texel) 347 + 348: 257 Load 259(s2DRect) + 349: 7(fvec4) Load 197(c4) + 350: 6(float) CompositeExtract 349 3 + 351: 7(fvec4) CompositeInsert 350 349 2 + 352: 7(fvec4) ImageSampleProjImplicitLod 348 351 + 353: 7(fvec4) Load 293(texel) + 354: 7(fvec4) FAdd 353 352 + Store 293(texel) 354 + 355: 266 Load 268(s2DRectShadow) + 356: 7(fvec4) Load 197(c4) + 357: 6(float) CompositeExtract 356 2 + 358: 6(float) CompositeExtract 356 3 + 359: 7(fvec4) CompositeInsert 358 356 2 + 360: 6(float) ImageSampleProjDrefImplicitLod 355 359 357 + 361: 174(ptr) AccessChain 293(texel) 173 + 362: 6(float) Load 361 + 363: 6(float) FAdd 362 360 + 364: 174(ptr) AccessChain 293(texel) 173 + Store 364 363 + 365: 7(fvec4) Load 293(texel) + ReturnValue 365 + FunctionEnd +13(testTextureLod(): 7(fvec4) Function None 8 + 14: Label + 368(texel): 63(ptr) Variable Function + Store 368(texel) 120 + 369: 122 Load 124(s1D) + 370: 6(float) Load 127(c1) + 372: 6(float) Load 371(lod) + 373: 7(fvec4) ImageSampleExplicitLod 369 370 Lod 372 + 374: 7(fvec4) Load 368(texel) + 375: 7(fvec4) FAdd 374 373 + Store 368(texel) 375 + 376: 133 Load 135(s2D) + 377: 52(fvec2) Load 138(c2) + 378: 6(float) Load 371(lod) + 379: 7(fvec4) ImageSampleExplicitLod 376 377 Lod 378 + 380: 7(fvec4) Load 368(texel) + 381: 7(fvec4) FAdd 380 379 + Store 368(texel) 381 + 382: 144 Load 146(s3D) + 383: 148(fvec3) Load 150(c3) + 384: 6(float) Load 371(lod) + 385: 7(fvec4) ImageSampleExplicitLod 382 383 Lod 384 + 386: 7(fvec4) Load 368(texel) + 387: 7(fvec4) FAdd 386 385 + Store 368(texel) 387 + 388: 156 Load 158(sCube) + 389: 148(fvec3) Load 150(c3) + 390: 6(float) Load 371(lod) + 391: 7(fvec4) ImageSampleExplicitLod 388 389 Lod 390 + 392: 7(fvec4) Load 368(texel) + 393: 7(fvec4) FAdd 392 391 + Store 368(texel) 393 + 394: 165 Load 167(s1DShadow) + 395: 148(fvec3) Load 150(c3) + 396: 6(float) Load 371(lod) + 397: 6(float) CompositeExtract 395 2 + 398: 6(float) ImageSampleDrefExplicitLod 394 395 397 Lod 396 + 399: 174(ptr) AccessChain 368(texel) 173 + 400: 6(float) Load 399 + 401: 6(float) FAdd 400 398 + 402: 174(ptr) AccessChain 368(texel) 173 + Store 402 401 + 403: 180 Load 182(s2DShadow) + 404: 148(fvec3) Load 150(c3) + 405: 6(float) Load 371(lod) + 406: 6(float) CompositeExtract 404 2 + 407: 6(float) ImageSampleDrefExplicitLod 403 404 406 Lod 405 + 408: 174(ptr) AccessChain 368(texel) 173 + 409: 6(float) Load 408 + 410: 6(float) FAdd 409 407 + 411: 174(ptr) AccessChain 368(texel) 173 + Store 411 410 + 412: 206 Load 208(s1DArray) + 413: 52(fvec2) Load 138(c2) + 414: 6(float) Load 371(lod) + 415: 7(fvec4) ImageSampleExplicitLod 412 413 Lod 414 + 416: 7(fvec4) Load 368(texel) + 417: 7(fvec4) FAdd 416 415 + Store 368(texel) 417 + 418: 215 Load 217(s2DArray) + 419: 148(fvec3) Load 150(c3) + 420: 6(float) Load 371(lod) + 421: 7(fvec4) ImageSampleExplicitLod 418 419 Lod 420 + 422: 7(fvec4) Load 368(texel) + 423: 7(fvec4) FAdd 422 421 + Store 368(texel) 423 + 424: 233 Load 235(s1DArrayShadow) + 425: 148(fvec3) Load 150(c3) + 426: 6(float) Load 371(lod) + 427: 6(float) CompositeExtract 425 2 + 428: 6(float) ImageSampleDrefExplicitLod 424 425 427 Lod 426 + 429: 174(ptr) AccessChain 368(texel) 173 + 430: 6(float) Load 429 + 431: 6(float) FAdd 430 428 + 432: 174(ptr) AccessChain 368(texel) 173 + Store 432 431 + 433: 224 Load 226(sCubeArray) + 434: 7(fvec4) Load 197(c4) + 435: 6(float) Load 371(lod) + 436: 7(fvec4) ImageSampleExplicitLod 433 434 Lod 435 + 437: 7(fvec4) Load 368(texel) + 438: 7(fvec4) FAdd 437 436 + Store 368(texel) 438 + 439: 7(fvec4) Load 368(texel) + ReturnValue 439 + FunctionEnd +15(testTextureOffset(): 7(fvec4) Function None 8 + 16: Label + 442(texel): 63(ptr) Variable Function + Store 442(texel) 120 + 443: 122 Load 124(s1D) + 444: 6(float) Load 127(c1) + 446: 7(fvec4) ImageSampleImplicitLod 443 444 ConstOffset 445 + 447: 7(fvec4) Load 442(texel) + 448: 7(fvec4) FAdd 447 446 + Store 442(texel) 448 + 449: 133 Load 135(s2D) + 450: 52(fvec2) Load 138(c2) + 453: 7(fvec4) ImageSampleImplicitLod 449 450 ConstOffset 452 + 454: 7(fvec4) Load 442(texel) + 455: 7(fvec4) FAdd 454 453 + Store 442(texel) 455 + 456: 144 Load 146(s3D) + 457: 148(fvec3) Load 150(c3) + 460: 7(fvec4) ImageSampleImplicitLod 456 457 ConstOffset 459 + 461: 7(fvec4) Load 442(texel) + 462: 7(fvec4) FAdd 461 460 + Store 442(texel) 462 + 463: 257 Load 259(s2DRect) + 464: 52(fvec2) Load 138(c2) + 465: 7(fvec4) ImageSampleImplicitLod 463 464 ConstOffset 452 + 466: 7(fvec4) Load 442(texel) + 467: 7(fvec4) FAdd 466 465 + Store 442(texel) 467 + 468: 266 Load 268(s2DRectShadow) + 469: 148(fvec3) Load 150(c3) + 470: 6(float) CompositeExtract 469 2 + 471: 6(float) ImageSampleDrefImplicitLod 468 469 470 ConstOffset 452 + 472: 174(ptr) AccessChain 442(texel) 173 + 473: 6(float) Load 472 + 474: 6(float) FAdd 473 471 + 475: 174(ptr) AccessChain 442(texel) 173 + Store 475 474 + 476: 165 Load 167(s1DShadow) + 477: 148(fvec3) Load 150(c3) + 478: 6(float) CompositeExtract 477 2 + 479: 6(float) ImageSampleDrefImplicitLod 476 477 478 ConstOffset 445 + 480: 174(ptr) AccessChain 442(texel) 173 + 481: 6(float) Load 480 + 482: 6(float) FAdd 481 479 + 483: 174(ptr) AccessChain 442(texel) 173 + Store 483 482 + 484: 180 Load 182(s2DShadow) + 485: 148(fvec3) Load 150(c3) + 486: 6(float) CompositeExtract 485 2 + 487: 6(float) ImageSampleDrefImplicitLod 484 485 486 ConstOffset 452 + 488: 174(ptr) AccessChain 442(texel) 173 + 489: 6(float) Load 488 + 490: 6(float) FAdd 489 487 + 491: 174(ptr) AccessChain 442(texel) 173 + Store 491 490 + 492: 206 Load 208(s1DArray) + 493: 52(fvec2) Load 138(c2) + 494: 7(fvec4) ImageSampleImplicitLod 492 493 ConstOffset 445 + 495: 7(fvec4) Load 442(texel) + 496: 7(fvec4) FAdd 495 494 + Store 442(texel) 496 + 497: 215 Load 217(s2DArray) + 498: 148(fvec3) Load 150(c3) + 499: 7(fvec4) ImageSampleImplicitLod 497 498 ConstOffset 452 + 500: 7(fvec4) Load 442(texel) + 501: 7(fvec4) FAdd 500 499 + Store 442(texel) 501 + 502: 233 Load 235(s1DArrayShadow) + 503: 148(fvec3) Load 150(c3) + 504: 6(float) CompositeExtract 503 2 + 505: 6(float) ImageSampleDrefImplicitLod 502 503 504 ConstOffset 445 + 506: 174(ptr) AccessChain 442(texel) 173 + 507: 6(float) Load 506 + 508: 6(float) FAdd 507 505 + 509: 174(ptr) AccessChain 442(texel) 173 + Store 509 508 + 510: 245 Load 247(s2DArrayShadow) + 511: 7(fvec4) Load 197(c4) + 512: 6(float) CompositeExtract 511 3 + 513: 6(float) ImageSampleDrefImplicitLod 510 511 512 ConstOffset 452 + 514: 174(ptr) AccessChain 442(texel) 173 + 515: 6(float) Load 514 + 516: 6(float) FAdd 515 513 + 517: 174(ptr) AccessChain 442(texel) 173 + Store 517 516 + 518: 7(fvec4) Load 442(texel) + ReturnValue 518 + FunctionEnd +17(testTextureProjOffset(): 7(fvec4) Function None 8 + 18: Label + 521(texel): 63(ptr) Variable Function + Store 521(texel) 120 + 522: 122 Load 124(s1D) + 523: 52(fvec2) Load 138(c2) + 524: 7(fvec4) ImageSampleProjImplicitLod 522 523 ConstOffset 445 + 525: 7(fvec4) Load 521(texel) + 526: 7(fvec4) FAdd 525 524 + Store 521(texel) 526 + 527: 122 Load 124(s1D) + 528: 7(fvec4) Load 197(c4) + 529: 6(float) CompositeExtract 528 3 + 530: 7(fvec4) CompositeInsert 529 528 1 + 531: 7(fvec4) ImageSampleProjImplicitLod 527 530 ConstOffset 445 + 532: 7(fvec4) Load 521(texel) + 533: 7(fvec4) FAdd 532 531 + Store 521(texel) 533 + 534: 133 Load 135(s2D) + 535: 148(fvec3) Load 150(c3) + 536: 7(fvec4) ImageSampleProjImplicitLod 534 535 ConstOffset 452 + 537: 7(fvec4) Load 521(texel) + 538: 7(fvec4) FAdd 537 536 + Store 521(texel) 538 + 539: 133 Load 135(s2D) + 540: 7(fvec4) Load 197(c4) + 541: 6(float) CompositeExtract 540 3 + 542: 7(fvec4) CompositeInsert 541 540 2 + 543: 7(fvec4) ImageSampleProjImplicitLod 539 542 ConstOffset 452 + 544: 7(fvec4) Load 521(texel) + 545: 7(fvec4) FAdd 544 543 + Store 521(texel) 545 + 546: 144 Load 146(s3D) + 547: 7(fvec4) Load 197(c4) + 548: 7(fvec4) ImageSampleProjImplicitLod 546 547 ConstOffset 459 + 549: 7(fvec4) Load 521(texel) + 550: 7(fvec4) FAdd 549 548 + Store 521(texel) 550 + 551: 257 Load 259(s2DRect) + 552: 148(fvec3) Load 150(c3) + 553: 7(fvec4) ImageSampleProjImplicitLod 551 552 ConstOffset 452 + 554: 7(fvec4) Load 521(texel) + 555: 7(fvec4) FAdd 554 553 + Store 521(texel) 555 + 556: 257 Load 259(s2DRect) + 557: 7(fvec4) Load 197(c4) + 558: 6(float) CompositeExtract 557 3 + 559: 7(fvec4) CompositeInsert 558 557 2 + 560: 7(fvec4) ImageSampleProjImplicitLod 556 559 ConstOffset 452 + 561: 7(fvec4) Load 521(texel) + 562: 7(fvec4) FAdd 561 560 + Store 521(texel) 562 + 563: 266 Load 268(s2DRectShadow) + 564: 7(fvec4) Load 197(c4) + 565: 6(float) CompositeExtract 564 2 + 566: 6(float) CompositeExtract 564 3 + 567: 7(fvec4) CompositeInsert 566 564 2 + 568: 6(float) ImageSampleProjDrefImplicitLod 563 567 565 ConstOffset 452 + 569: 174(ptr) AccessChain 521(texel) 173 + 570: 6(float) Load 569 + 571: 6(float) FAdd 570 568 + 572: 174(ptr) AccessChain 521(texel) 173 + Store 572 571 + 573: 165 Load 167(s1DShadow) + 574: 7(fvec4) Load 197(c4) + 575: 6(float) CompositeExtract 574 2 + 576: 6(float) CompositeExtract 574 3 + 577: 7(fvec4) CompositeInsert 576 574 1 + 578: 6(float) ImageSampleProjDrefImplicitLod 573 577 575 ConstOffset 445 + 579: 174(ptr) AccessChain 521(texel) 173 + 580: 6(float) Load 579 + 581: 6(float) FAdd 580 578 + 582: 174(ptr) AccessChain 521(texel) 173 + Store 582 581 + 583: 180 Load 182(s2DShadow) + 584: 7(fvec4) Load 197(c4) + 585: 6(float) CompositeExtract 584 2 + 586: 6(float) CompositeExtract 584 3 + 587: 7(fvec4) CompositeInsert 586 584 2 + 588: 6(float) ImageSampleProjDrefImplicitLod 583 587 585 ConstOffset 452 + 589: 174(ptr) AccessChain 521(texel) 173 + 590: 6(float) Load 589 + 591: 6(float) FAdd 590 588 + 592: 174(ptr) AccessChain 521(texel) 173 + Store 592 591 + 593: 7(fvec4) Load 521(texel) + ReturnValue 593 + FunctionEnd +19(testTextureLodOffset(): 7(fvec4) Function None 8 + 20: Label + 596(texel): 63(ptr) Variable Function + Store 596(texel) 120 + 597: 122 Load 124(s1D) + 598: 6(float) Load 127(c1) + 599: 6(float) Load 371(lod) + 600: 7(fvec4) ImageSampleExplicitLod 597 598 Lod ConstOffset 599 445 + 601: 7(fvec4) Load 596(texel) + 602: 7(fvec4) FAdd 601 600 + Store 596(texel) 602 + 603: 133 Load 135(s2D) + 604: 52(fvec2) Load 138(c2) + 605: 6(float) Load 371(lod) + 606: 7(fvec4) ImageSampleExplicitLod 603 604 Lod ConstOffset 605 452 + 607: 7(fvec4) Load 596(texel) + 608: 7(fvec4) FAdd 607 606 + Store 596(texel) 608 + 609: 144 Load 146(s3D) + 610: 148(fvec3) Load 150(c3) + 611: 6(float) Load 371(lod) + 612: 7(fvec4) ImageSampleExplicitLod 609 610 Lod ConstOffset 611 459 + 613: 7(fvec4) Load 596(texel) + 614: 7(fvec4) FAdd 613 612 + Store 596(texel) 614 + 615: 165 Load 167(s1DShadow) + 616: 148(fvec3) Load 150(c3) + 617: 6(float) Load 371(lod) + 618: 6(float) CompositeExtract 616 2 + 619: 6(float) ImageSampleDrefExplicitLod 615 616 618 Lod ConstOffset 617 445 + 620: 174(ptr) AccessChain 596(texel) 173 + 621: 6(float) Load 620 + 622: 6(float) FAdd 621 619 + 623: 174(ptr) AccessChain 596(texel) 173 + Store 623 622 + 624: 180 Load 182(s2DShadow) + 625: 148(fvec3) Load 150(c3) + 626: 6(float) Load 371(lod) + 627: 6(float) CompositeExtract 625 2 + 628: 6(float) ImageSampleDrefExplicitLod 624 625 627 Lod ConstOffset 626 452 + 629: 174(ptr) AccessChain 596(texel) 173 + 630: 6(float) Load 629 + 631: 6(float) FAdd 630 628 + 632: 174(ptr) AccessChain 596(texel) 173 + Store 632 631 + 633: 206 Load 208(s1DArray) + 634: 52(fvec2) Load 138(c2) + 635: 6(float) Load 371(lod) + 636: 7(fvec4) ImageSampleExplicitLod 633 634 Lod ConstOffset 635 445 + 637: 7(fvec4) Load 596(texel) + 638: 7(fvec4) FAdd 637 636 + Store 596(texel) 638 + 639: 215 Load 217(s2DArray) + 640: 148(fvec3) Load 150(c3) + 641: 6(float) Load 371(lod) + 642: 7(fvec4) ImageSampleExplicitLod 639 640 Lod ConstOffset 641 452 + 643: 7(fvec4) Load 596(texel) + 644: 7(fvec4) FAdd 643 642 + Store 596(texel) 644 + 645: 233 Load 235(s1DArrayShadow) + 646: 148(fvec3) Load 150(c3) + 647: 6(float) Load 371(lod) + 648: 6(float) CompositeExtract 646 2 + 649: 6(float) ImageSampleDrefExplicitLod 645 646 648 Lod ConstOffset 647 445 + 650: 174(ptr) AccessChain 596(texel) 173 + 651: 6(float) Load 650 + 652: 6(float) FAdd 651 649 + 653: 174(ptr) AccessChain 596(texel) 173 + Store 653 652 + 654: 7(fvec4) Load 596(texel) + ReturnValue 654 + FunctionEnd +21(testTextureProjLodOffset(): 7(fvec4) Function None 8 + 22: Label + 657(texel): 63(ptr) Variable Function + Store 657(texel) 120 + 658: 122 Load 124(s1D) + 659: 52(fvec2) Load 138(c2) + 660: 6(float) Load 371(lod) + 661: 7(fvec4) ImageSampleProjExplicitLod 658 659 Lod ConstOffset 660 445 + 662: 7(fvec4) Load 657(texel) + 663: 7(fvec4) FAdd 662 661 + Store 657(texel) 663 + 664: 122 Load 124(s1D) + 665: 7(fvec4) Load 197(c4) + 666: 6(float) Load 371(lod) + 667: 6(float) CompositeExtract 665 3 + 668: 7(fvec4) CompositeInsert 667 665 1 + 669: 7(fvec4) ImageSampleProjExplicitLod 664 668 Lod ConstOffset 666 445 + 670: 7(fvec4) Load 657(texel) + 671: 7(fvec4) FAdd 670 669 + Store 657(texel) 671 + 672: 133 Load 135(s2D) + 673: 148(fvec3) Load 150(c3) + 674: 6(float) Load 371(lod) + 675: 7(fvec4) ImageSampleProjExplicitLod 672 673 Lod ConstOffset 674 452 + 676: 7(fvec4) Load 657(texel) + 677: 7(fvec4) FAdd 676 675 + Store 657(texel) 677 + 678: 133 Load 135(s2D) + 679: 7(fvec4) Load 197(c4) + 680: 6(float) Load 371(lod) + 681: 6(float) CompositeExtract 679 3 + 682: 7(fvec4) CompositeInsert 681 679 2 + 683: 7(fvec4) ImageSampleProjExplicitLod 678 682 Lod ConstOffset 680 452 + 684: 7(fvec4) Load 657(texel) + 685: 7(fvec4) FAdd 684 683 + Store 657(texel) 685 + 686: 144 Load 146(s3D) + 687: 7(fvec4) Load 197(c4) + 688: 6(float) Load 371(lod) + 689: 7(fvec4) ImageSampleProjExplicitLod 686 687 Lod ConstOffset 688 459 + 690: 7(fvec4) Load 657(texel) + 691: 7(fvec4) FAdd 690 689 + Store 657(texel) 691 + 692: 165 Load 167(s1DShadow) + 693: 7(fvec4) Load 197(c4) + 694: 6(float) Load 371(lod) + 695: 6(float) CompositeExtract 693 2 + 696: 6(float) CompositeExtract 693 3 + 697: 7(fvec4) CompositeInsert 696 693 1 + 698: 6(float) ImageSampleProjDrefExplicitLod 692 697 695 Lod ConstOffset 694 445 + 699: 174(ptr) AccessChain 657(texel) 173 + 700: 6(float) Load 699 + 701: 6(float) FAdd 700 698 + 702: 174(ptr) AccessChain 657(texel) 173 + Store 702 701 + 703: 180 Load 182(s2DShadow) + 704: 7(fvec4) Load 197(c4) + 705: 6(float) Load 371(lod) + 706: 6(float) CompositeExtract 704 2 + 707: 6(float) CompositeExtract 704 3 + 708: 7(fvec4) CompositeInsert 707 704 2 + 709: 6(float) ImageSampleProjDrefExplicitLod 703 708 706 Lod ConstOffset 705 452 + 710: 174(ptr) AccessChain 657(texel) 173 + 711: 6(float) Load 710 + 712: 6(float) FAdd 711 709 + 713: 174(ptr) AccessChain 657(texel) 173 + Store 713 712 + 714: 7(fvec4) Load 657(texel) + ReturnValue 714 + FunctionEnd +23(testTexelFetch(): 7(fvec4) Function None 8 + 24: Label + 717(texel): 63(ptr) Variable Function + Store 717(texel) 120 + 718: 122 Load 124(s1D) + 719: 6(float) Load 127(c1) + 720: 47(int) ConvertFToS 719 + 721: 6(float) Load 371(lod) + 722: 47(int) ConvertFToS 721 + 723: 121 Image 718 + 724: 7(fvec4) ImageFetch 723 720 Lod 722 + 725: 7(fvec4) Load 717(texel) + 726: 7(fvec4) FAdd 725 724 + Store 717(texel) 726 + 727: 133 Load 135(s2D) + 728: 52(fvec2) Load 138(c2) + 729: 451(ivec2) ConvertFToS 728 + 730: 6(float) Load 371(lod) + 731: 47(int) ConvertFToS 730 + 732: 132 Image 727 + 733: 7(fvec4) ImageFetch 732 729 Lod 731 + 734: 7(fvec4) Load 717(texel) + 735: 7(fvec4) FAdd 734 733 + Store 717(texel) 735 + 736: 144 Load 146(s3D) + 737: 148(fvec3) Load 150(c3) + 738: 458(ivec3) ConvertFToS 737 + 739: 6(float) Load 371(lod) + 740: 47(int) ConvertFToS 739 + 741: 143 Image 736 + 742: 7(fvec4) ImageFetch 741 738 Lod 740 + 743: 7(fvec4) Load 717(texel) + 744: 7(fvec4) FAdd 743 742 + Store 717(texel) 744 + 745: 257 Load 259(s2DRect) + 746: 52(fvec2) Load 138(c2) + 747: 451(ivec2) ConvertFToS 746 + 748: 256 Image 745 + 749: 7(fvec4) ImageFetch 748 747 + 750: 7(fvec4) Load 717(texel) + 751: 7(fvec4) FAdd 750 749 + Store 717(texel) 751 + 752: 206 Load 208(s1DArray) + 753: 52(fvec2) Load 138(c2) + 754: 451(ivec2) ConvertFToS 753 + 755: 6(float) Load 371(lod) + 756: 47(int) ConvertFToS 755 + 757: 205 Image 752 + 758: 7(fvec4) ImageFetch 757 754 Lod 756 + 759: 7(fvec4) Load 717(texel) + 760: 7(fvec4) FAdd 759 758 + Store 717(texel) 760 + 761: 215 Load 217(s2DArray) + 762: 148(fvec3) Load 150(c3) + 763: 458(ivec3) ConvertFToS 762 + 764: 6(float) Load 371(lod) + 765: 47(int) ConvertFToS 764 + 766: 214 Image 761 + 767: 7(fvec4) ImageFetch 766 763 Lod 765 + 768: 7(fvec4) Load 717(texel) + 769: 7(fvec4) FAdd 768 767 + Store 717(texel) 769 + 774: 771 Load 773(sBuffer) + 775: 6(float) Load 127(c1) + 776: 47(int) ConvertFToS 775 + 777: 770 Image 774 + 778: 7(fvec4) ImageFetch 777 776 + 779: 7(fvec4) Load 717(texel) + 780: 7(fvec4) FAdd 779 778 + Store 717(texel) 780 + 785: 782 Load 784(s2DMS) + 786: 52(fvec2) Load 138(c2) + 787: 451(ivec2) ConvertFToS 786 + 788: 781 Image 785 + 789: 7(fvec4) ImageFetch 788 787 Sample 445 + 790: 7(fvec4) Load 717(texel) + 791: 7(fvec4) FAdd 790 789 + Store 717(texel) 791 + 796: 793 Load 795(s2DMSArray) + 797: 148(fvec3) Load 150(c3) + 798: 458(ivec3) ConvertFToS 797 + 800: 792 Image 796 + 801: 7(fvec4) ImageFetch 800 798 Sample 799 + 802: 7(fvec4) Load 717(texel) + 803: 7(fvec4) FAdd 802 801 + Store 717(texel) 803 + 804: 7(fvec4) Load 717(texel) + ReturnValue 804 + FunctionEnd +25(testTexelFetchOffset(): 7(fvec4) Function None 8 + 26: Label + 807(texel): 63(ptr) Variable Function + Store 807(texel) 120 + 808: 122 Load 124(s1D) + 809: 6(float) Load 127(c1) + 810: 47(int) ConvertFToS 809 + 811: 6(float) Load 371(lod) + 812: 47(int) ConvertFToS 811 + 813: 121 Image 808 + 814: 7(fvec4) ImageFetch 813 810 Lod ConstOffset 812 445 + 815: 7(fvec4) Load 807(texel) + 816: 7(fvec4) FAdd 815 814 + Store 807(texel) 816 + 817: 133 Load 135(s2D) + 818: 52(fvec2) Load 138(c2) + 819: 451(ivec2) ConvertFToS 818 + 820: 6(float) Load 371(lod) + 821: 47(int) ConvertFToS 820 + 822: 132 Image 817 + 823: 7(fvec4) ImageFetch 822 819 Lod ConstOffset 821 452 + 824: 7(fvec4) Load 807(texel) + 825: 7(fvec4) FAdd 824 823 + Store 807(texel) 825 + 826: 144 Load 146(s3D) + 827: 148(fvec3) Load 150(c3) + 828: 458(ivec3) ConvertFToS 827 + 829: 6(float) Load 371(lod) + 830: 47(int) ConvertFToS 829 + 831: 143 Image 826 + 832: 7(fvec4) ImageFetch 831 828 Lod ConstOffset 830 459 + 833: 7(fvec4) Load 807(texel) + 834: 7(fvec4) FAdd 833 832 + Store 807(texel) 834 + 835: 257 Load 259(s2DRect) + 836: 52(fvec2) Load 138(c2) + 837: 451(ivec2) ConvertFToS 836 + 838: 256 Image 835 + 839: 7(fvec4) ImageFetch 838 837 ConstOffset 452 + 840: 7(fvec4) Load 807(texel) + 841: 7(fvec4) FAdd 840 839 + Store 807(texel) 841 + 842: 206 Load 208(s1DArray) + 843: 52(fvec2) Load 138(c2) + 844: 451(ivec2) ConvertFToS 843 + 845: 6(float) Load 371(lod) + 846: 47(int) ConvertFToS 845 + 847: 205 Image 842 + 848: 7(fvec4) ImageFetch 847 844 Lod ConstOffset 846 445 + 849: 7(fvec4) Load 807(texel) + 850: 7(fvec4) FAdd 849 848 + Store 807(texel) 850 + 851: 215 Load 217(s2DArray) + 852: 148(fvec3) Load 150(c3) + 853: 458(ivec3) ConvertFToS 852 + 854: 6(float) Load 371(lod) + 855: 47(int) ConvertFToS 854 + 856: 214 Image 851 + 857: 7(fvec4) ImageFetch 856 853 Lod ConstOffset 855 452 + 858: 7(fvec4) Load 807(texel) + 859: 7(fvec4) FAdd 858 857 + Store 807(texel) 859 + 860: 7(fvec4) Load 807(texel) + ReturnValue 860 + FunctionEnd +27(testTextureGrad(): 7(fvec4) Function None 8 + 28: Label + 863(texel): 63(ptr) Variable Function + Store 863(texel) 120 + 864: 122 Load 124(s1D) + 865: 6(float) Load 127(c1) + 867: 6(float) Load 866(dPdxy1) + 868: 6(float) Load 866(dPdxy1) + 869: 7(fvec4) ImageSampleExplicitLod 864 865 Grad 867 868 + 870: 7(fvec4) Load 863(texel) + 871: 7(fvec4) FAdd 870 869 + Store 863(texel) 871 + 872: 133 Load 135(s2D) + 873: 52(fvec2) Load 138(c2) + 875: 52(fvec2) Load 874(dPdxy2) + 876: 52(fvec2) Load 874(dPdxy2) + 877: 7(fvec4) ImageSampleExplicitLod 872 873 Grad 875 876 + 878: 7(fvec4) Load 863(texel) + 879: 7(fvec4) FAdd 878 877 + Store 863(texel) 879 + 880: 144 Load 146(s3D) + 881: 148(fvec3) Load 150(c3) + 883: 148(fvec3) Load 882(dPdxy3) + 884: 148(fvec3) Load 882(dPdxy3) + 885: 7(fvec4) ImageSampleExplicitLod 880 881 Grad 883 884 + 886: 7(fvec4) Load 863(texel) + 887: 7(fvec4) FAdd 886 885 + Store 863(texel) 887 + 888: 156 Load 158(sCube) + 889: 148(fvec3) Load 150(c3) + 890: 148(fvec3) Load 882(dPdxy3) + 891: 148(fvec3) Load 882(dPdxy3) + 892: 7(fvec4) ImageSampleExplicitLod 888 889 Grad 890 891 + 893: 7(fvec4) Load 863(texel) + 894: 7(fvec4) FAdd 893 892 + Store 863(texel) 894 + 895: 257 Load 259(s2DRect) + 896: 52(fvec2) Load 138(c2) + 897: 52(fvec2) Load 874(dPdxy2) + 898: 52(fvec2) Load 874(dPdxy2) + 899: 7(fvec4) ImageSampleExplicitLod 895 896 Grad 897 898 + 900: 7(fvec4) Load 863(texel) + 901: 7(fvec4) FAdd 900 899 + Store 863(texel) 901 + 902: 266 Load 268(s2DRectShadow) + 903: 148(fvec3) Load 150(c3) + 904: 52(fvec2) Load 874(dPdxy2) + 905: 52(fvec2) Load 874(dPdxy2) + 906: 6(float) CompositeExtract 903 2 + 907: 6(float) ImageSampleDrefExplicitLod 902 903 906 Grad 904 905 + 908: 174(ptr) AccessChain 863(texel) 173 + 909: 6(float) Load 908 + 910: 6(float) FAdd 909 907 + 911: 174(ptr) AccessChain 863(texel) 173 + Store 911 910 + 912: 165 Load 167(s1DShadow) + 913: 148(fvec3) Load 150(c3) + 914: 6(float) Load 866(dPdxy1) + 915: 6(float) Load 866(dPdxy1) + 916: 6(float) CompositeExtract 913 2 + 917: 6(float) ImageSampleDrefExplicitLod 912 913 916 Grad 914 915 + 918: 174(ptr) AccessChain 863(texel) 173 + 919: 6(float) Load 918 + 920: 6(float) FAdd 919 917 + 921: 174(ptr) AccessChain 863(texel) 173 + Store 921 920 + 922: 180 Load 182(s2DShadow) + 923: 148(fvec3) Load 150(c3) + 924: 52(fvec2) Load 874(dPdxy2) + 925: 52(fvec2) Load 874(dPdxy2) + 926: 6(float) CompositeExtract 923 2 + 927: 6(float) ImageSampleDrefExplicitLod 922 923 926 Grad 924 925 + 928: 174(ptr) AccessChain 863(texel) 173 + 929: 6(float) Load 928 + 930: 6(float) FAdd 929 927 + 931: 174(ptr) AccessChain 863(texel) 173 + Store 931 930 + 932: 192 Load 194(sCubeShadow) + 933: 7(fvec4) Load 197(c4) + 934: 148(fvec3) Load 882(dPdxy3) + 935: 148(fvec3) Load 882(dPdxy3) + 936: 6(float) CompositeExtract 933 3 + 937: 6(float) ImageSampleDrefExplicitLod 932 933 936 Grad 934 935 + 938: 174(ptr) AccessChain 863(texel) 173 + 939: 6(float) Load 938 + 940: 6(float) FAdd 939 937 + 941: 174(ptr) AccessChain 863(texel) 173 + Store 941 940 + 942: 206 Load 208(s1DArray) + 943: 52(fvec2) Load 138(c2) + 944: 6(float) Load 866(dPdxy1) + 945: 6(float) Load 866(dPdxy1) + 946: 7(fvec4) ImageSampleExplicitLod 942 943 Grad 944 945 + 947: 7(fvec4) Load 863(texel) + 948: 7(fvec4) FAdd 947 946 + Store 863(texel) 948 + 949: 215 Load 217(s2DArray) + 950: 148(fvec3) Load 150(c3) + 951: 52(fvec2) Load 874(dPdxy2) + 952: 52(fvec2) Load 874(dPdxy2) + 953: 7(fvec4) ImageSampleExplicitLod 949 950 Grad 951 952 + 954: 7(fvec4) Load 863(texel) + 955: 7(fvec4) FAdd 954 953 + Store 863(texel) 955 + 956: 233 Load 235(s1DArrayShadow) + 957: 148(fvec3) Load 150(c3) + 958: 6(float) Load 866(dPdxy1) + 959: 6(float) Load 866(dPdxy1) + 960: 6(float) CompositeExtract 957 2 + 961: 6(float) ImageSampleDrefExplicitLod 956 957 960 Grad 958 959 + 962: 174(ptr) AccessChain 863(texel) 173 + 963: 6(float) Load 962 + 964: 6(float) FAdd 963 961 + 965: 174(ptr) AccessChain 863(texel) 173 + Store 965 964 + 966: 245 Load 247(s2DArrayShadow) + 967: 7(fvec4) Load 197(c4) + 968: 52(fvec2) Load 874(dPdxy2) + 969: 52(fvec2) Load 874(dPdxy2) + 970: 6(float) CompositeExtract 967 3 + 971: 6(float) ImageSampleDrefExplicitLod 966 967 970 Grad 968 969 + 972: 174(ptr) AccessChain 863(texel) 173 + 973: 6(float) Load 972 + 974: 6(float) FAdd 973 971 + 975: 174(ptr) AccessChain 863(texel) 173 + Store 975 974 + 976: 224 Load 226(sCubeArray) + 977: 7(fvec4) Load 197(c4) + 978: 148(fvec3) Load 882(dPdxy3) + 979: 148(fvec3) Load 882(dPdxy3) + 980: 7(fvec4) ImageSampleExplicitLod 976 977 Grad 978 979 + 981: 7(fvec4) Load 863(texel) + 982: 7(fvec4) FAdd 981 980 + Store 863(texel) 982 + 983: 7(fvec4) Load 863(texel) + ReturnValue 983 + FunctionEnd +29(testTextureGradOffset(): 7(fvec4) Function None 8 + 30: Label + 986(texel): 63(ptr) Variable Function + Store 986(texel) 120 + 987: 122 Load 124(s1D) + 988: 6(float) Load 127(c1) + 989: 6(float) Load 866(dPdxy1) + 990: 6(float) Load 866(dPdxy1) + 991: 7(fvec4) ImageSampleExplicitLod 987 988 Grad ConstOffset 989 990 445 + 992: 7(fvec4) Load 986(texel) + 993: 7(fvec4) FAdd 992 991 + Store 986(texel) 993 + 994: 133 Load 135(s2D) + 995: 52(fvec2) Load 138(c2) + 996: 52(fvec2) Load 874(dPdxy2) + 997: 52(fvec2) Load 874(dPdxy2) + 998: 7(fvec4) ImageSampleExplicitLod 994 995 Grad ConstOffset 996 997 452 + 999: 7(fvec4) Load 986(texel) + 1000: 7(fvec4) FAdd 999 998 + Store 986(texel) 1000 + 1001: 144 Load 146(s3D) + 1002: 148(fvec3) Load 150(c3) + 1003: 148(fvec3) Load 882(dPdxy3) + 1004: 148(fvec3) Load 882(dPdxy3) + 1005: 7(fvec4) ImageSampleExplicitLod 1001 1002 Grad ConstOffset 1003 1004 459 + 1006: 7(fvec4) Load 986(texel) + 1007: 7(fvec4) FAdd 1006 1005 + Store 986(texel) 1007 + 1008: 257 Load 259(s2DRect) + 1009: 52(fvec2) Load 138(c2) + 1010: 52(fvec2) Load 874(dPdxy2) + 1011: 52(fvec2) Load 874(dPdxy2) + 1012: 7(fvec4) ImageSampleExplicitLod 1008 1009 Grad ConstOffset 1010 1011 452 + 1013: 7(fvec4) Load 986(texel) + 1014: 7(fvec4) FAdd 1013 1012 + Store 986(texel) 1014 + 1015: 266 Load 268(s2DRectShadow) + 1016: 148(fvec3) Load 150(c3) + 1017: 52(fvec2) Load 874(dPdxy2) + 1018: 52(fvec2) Load 874(dPdxy2) + 1019: 6(float) CompositeExtract 1016 2 + 1020: 6(float) ImageSampleDrefExplicitLod 1015 1016 1019 Grad ConstOffset 1017 1018 452 + 1021: 174(ptr) AccessChain 986(texel) 173 + 1022: 6(float) Load 1021 + 1023: 6(float) FAdd 1022 1020 + 1024: 174(ptr) AccessChain 986(texel) 173 + Store 1024 1023 + 1025: 165 Load 167(s1DShadow) + 1026: 148(fvec3) Load 150(c3) + 1027: 6(float) Load 866(dPdxy1) + 1028: 6(float) Load 866(dPdxy1) + 1029: 6(float) CompositeExtract 1026 2 + 1030: 6(float) ImageSampleDrefExplicitLod 1025 1026 1029 Grad ConstOffset 1027 1028 445 + 1031: 174(ptr) AccessChain 986(texel) 173 + 1032: 6(float) Load 1031 + 1033: 6(float) FAdd 1032 1030 + 1034: 174(ptr) AccessChain 986(texel) 173 + Store 1034 1033 + 1035: 180 Load 182(s2DShadow) + 1036: 148(fvec3) Load 150(c3) + 1037: 52(fvec2) Load 874(dPdxy2) + 1038: 52(fvec2) Load 874(dPdxy2) + 1039: 6(float) CompositeExtract 1036 2 + 1040: 6(float) ImageSampleDrefExplicitLod 1035 1036 1039 Grad ConstOffset 1037 1038 452 + 1041: 174(ptr) AccessChain 986(texel) 173 + 1042: 6(float) Load 1041 + 1043: 6(float) FAdd 1042 1040 + 1044: 174(ptr) AccessChain 986(texel) 173 + Store 1044 1043 + 1045: 206 Load 208(s1DArray) + 1046: 52(fvec2) Load 138(c2) + 1047: 6(float) Load 866(dPdxy1) + 1048: 6(float) Load 866(dPdxy1) + 1049: 7(fvec4) ImageSampleExplicitLod 1045 1046 Grad ConstOffset 1047 1048 445 + 1050: 7(fvec4) Load 986(texel) + 1051: 7(fvec4) FAdd 1050 1049 + Store 986(texel) 1051 + 1052: 215 Load 217(s2DArray) + 1053: 148(fvec3) Load 150(c3) + 1054: 52(fvec2) Load 874(dPdxy2) + 1055: 52(fvec2) Load 874(dPdxy2) + 1056: 7(fvec4) ImageSampleExplicitLod 1052 1053 Grad ConstOffset 1054 1055 452 + 1057: 7(fvec4) Load 986(texel) + 1058: 7(fvec4) FAdd 1057 1056 + Store 986(texel) 1058 + 1059: 233 Load 235(s1DArrayShadow) + 1060: 148(fvec3) Load 150(c3) + 1061: 6(float) Load 866(dPdxy1) + 1062: 6(float) Load 866(dPdxy1) + 1063: 6(float) CompositeExtract 1060 2 + 1064: 6(float) ImageSampleDrefExplicitLod 1059 1060 1063 Grad ConstOffset 1061 1062 445 + 1065: 174(ptr) AccessChain 986(texel) 173 + 1066: 6(float) Load 1065 + 1067: 6(float) FAdd 1066 1064 + 1068: 174(ptr) AccessChain 986(texel) 173 + Store 1068 1067 + 1069: 245 Load 247(s2DArrayShadow) + 1070: 7(fvec4) Load 197(c4) + 1071: 52(fvec2) Load 874(dPdxy2) + 1072: 52(fvec2) Load 874(dPdxy2) + 1073: 6(float) CompositeExtract 1070 3 + 1074: 6(float) ImageSampleDrefExplicitLod 1069 1070 1073 Grad ConstOffset 1071 1072 452 + 1075: 174(ptr) AccessChain 986(texel) 173 + 1076: 6(float) Load 1075 + 1077: 6(float) FAdd 1076 1074 + 1078: 174(ptr) AccessChain 986(texel) 173 + Store 1078 1077 + 1079: 7(fvec4) Load 986(texel) + ReturnValue 1079 + FunctionEnd +31(testTextureProjGrad(): 7(fvec4) Function None 8 + 32: Label + 1082(texel): 63(ptr) Variable Function + Store 1082(texel) 120 + 1083: 122 Load 124(s1D) + 1084: 52(fvec2) Load 138(c2) + 1085: 6(float) Load 866(dPdxy1) + 1086: 6(float) Load 866(dPdxy1) + 1087: 7(fvec4) ImageSampleProjExplicitLod 1083 1084 Grad 1085 1086 + 1088: 7(fvec4) Load 1082(texel) + 1089: 7(fvec4) FAdd 1088 1087 + Store 1082(texel) 1089 + 1090: 122 Load 124(s1D) + 1091: 7(fvec4) Load 197(c4) + 1092: 6(float) Load 866(dPdxy1) + 1093: 6(float) Load 866(dPdxy1) + 1094: 6(float) CompositeExtract 1091 3 + 1095: 7(fvec4) CompositeInsert 1094 1091 1 + 1096: 7(fvec4) ImageSampleProjExplicitLod 1090 1095 Grad 1092 1093 + 1097: 7(fvec4) Load 1082(texel) + 1098: 7(fvec4) FAdd 1097 1096 + Store 1082(texel) 1098 + 1099: 133 Load 135(s2D) + 1100: 148(fvec3) Load 150(c3) + 1101: 52(fvec2) Load 874(dPdxy2) + 1102: 52(fvec2) Load 874(dPdxy2) + 1103: 7(fvec4) ImageSampleProjExplicitLod 1099 1100 Grad 1101 1102 + 1104: 7(fvec4) Load 1082(texel) + 1105: 7(fvec4) FAdd 1104 1103 + Store 1082(texel) 1105 + 1106: 133 Load 135(s2D) + 1107: 7(fvec4) Load 197(c4) + 1108: 52(fvec2) Load 874(dPdxy2) + 1109: 52(fvec2) Load 874(dPdxy2) + 1110: 6(float) CompositeExtract 1107 3 + 1111: 7(fvec4) CompositeInsert 1110 1107 2 + 1112: 7(fvec4) ImageSampleProjExplicitLod 1106 1111 Grad 1108 1109 + 1113: 7(fvec4) Load 1082(texel) + 1114: 7(fvec4) FAdd 1113 1112 + Store 1082(texel) 1114 + 1115: 144 Load 146(s3D) + 1116: 7(fvec4) Load 197(c4) + 1117: 148(fvec3) Load 882(dPdxy3) + 1118: 148(fvec3) Load 882(dPdxy3) + 1119: 7(fvec4) ImageSampleProjExplicitLod 1115 1116 Grad 1117 1118 + 1120: 7(fvec4) Load 1082(texel) + 1121: 7(fvec4) FAdd 1120 1119 + Store 1082(texel) 1121 + 1122: 257 Load 259(s2DRect) + 1123: 148(fvec3) Load 150(c3) + 1124: 52(fvec2) Load 874(dPdxy2) + 1125: 52(fvec2) Load 874(dPdxy2) + 1126: 7(fvec4) ImageSampleProjExplicitLod 1122 1123 Grad 1124 1125 + 1127: 7(fvec4) Load 1082(texel) + 1128: 7(fvec4) FAdd 1127 1126 + Store 1082(texel) 1128 + 1129: 257 Load 259(s2DRect) + 1130: 7(fvec4) Load 197(c4) + 1131: 52(fvec2) Load 874(dPdxy2) + 1132: 52(fvec2) Load 874(dPdxy2) + 1133: 6(float) CompositeExtract 1130 3 + 1134: 7(fvec4) CompositeInsert 1133 1130 2 + 1135: 7(fvec4) ImageSampleProjExplicitLod 1129 1134 Grad 1131 1132 + 1136: 7(fvec4) Load 1082(texel) + 1137: 7(fvec4) FAdd 1136 1135 + Store 1082(texel) 1137 + 1138: 266 Load 268(s2DRectShadow) + 1139: 7(fvec4) Load 197(c4) + 1140: 52(fvec2) Load 874(dPdxy2) + 1141: 52(fvec2) Load 874(dPdxy2) + 1142: 6(float) CompositeExtract 1139 2 + 1143: 6(float) CompositeExtract 1139 3 + 1144: 7(fvec4) CompositeInsert 1143 1139 2 + 1145: 6(float) ImageSampleProjDrefExplicitLod 1138 1144 1142 Grad 1140 1141 + 1146: 174(ptr) AccessChain 1082(texel) 173 + 1147: 6(float) Load 1146 + 1148: 6(float) FAdd 1147 1145 + 1149: 174(ptr) AccessChain 1082(texel) 173 + Store 1149 1148 + 1150: 165 Load 167(s1DShadow) + 1151: 7(fvec4) Load 197(c4) + 1152: 6(float) Load 866(dPdxy1) + 1153: 6(float) Load 866(dPdxy1) + 1154: 6(float) CompositeExtract 1151 2 + 1155: 6(float) CompositeExtract 1151 3 + 1156: 7(fvec4) CompositeInsert 1155 1151 1 + 1157: 6(float) ImageSampleProjDrefExplicitLod 1150 1156 1154 Grad 1152 1153 + 1158: 174(ptr) AccessChain 1082(texel) 173 + 1159: 6(float) Load 1158 + 1160: 6(float) FAdd 1159 1157 + 1161: 174(ptr) AccessChain 1082(texel) 173 + Store 1161 1160 + 1162: 180 Load 182(s2DShadow) + 1163: 7(fvec4) Load 197(c4) + 1164: 52(fvec2) Load 874(dPdxy2) + 1165: 52(fvec2) Load 874(dPdxy2) + 1166: 6(float) CompositeExtract 1163 2 + 1167: 6(float) CompositeExtract 1163 3 + 1168: 7(fvec4) CompositeInsert 1167 1163 2 + 1169: 6(float) ImageSampleProjDrefExplicitLod 1162 1168 1166 Grad 1164 1165 + 1170: 174(ptr) AccessChain 1082(texel) 173 + 1171: 6(float) Load 1170 + 1172: 6(float) FAdd 1171 1169 + 1173: 174(ptr) AccessChain 1082(texel) 173 + Store 1173 1172 + 1174: 7(fvec4) Load 1082(texel) + ReturnValue 1174 + FunctionEnd +33(testTextureProjGradoffset(): 7(fvec4) Function None 8 + 34: Label + 1177(texel): 63(ptr) Variable Function + Store 1177(texel) 120 + 1178: 122 Load 124(s1D) + 1179: 52(fvec2) Load 138(c2) + 1180: 6(float) Load 866(dPdxy1) + 1181: 6(float) Load 866(dPdxy1) + 1182: 7(fvec4) ImageSampleProjExplicitLod 1178 1179 Grad ConstOffset 1180 1181 445 + 1183: 7(fvec4) Load 1177(texel) + 1184: 7(fvec4) FAdd 1183 1182 + Store 1177(texel) 1184 + 1185: 122 Load 124(s1D) + 1186: 7(fvec4) Load 197(c4) + 1187: 6(float) Load 866(dPdxy1) + 1188: 6(float) Load 866(dPdxy1) + 1189: 6(float) CompositeExtract 1186 3 + 1190: 7(fvec4) CompositeInsert 1189 1186 1 + 1191: 7(fvec4) ImageSampleProjExplicitLod 1185 1190 Grad ConstOffset 1187 1188 445 + 1192: 7(fvec4) Load 1177(texel) + 1193: 7(fvec4) FAdd 1192 1191 + Store 1177(texel) 1193 + 1194: 133 Load 135(s2D) + 1195: 148(fvec3) Load 150(c3) + 1196: 52(fvec2) Load 874(dPdxy2) + 1197: 52(fvec2) Load 874(dPdxy2) + 1198: 7(fvec4) ImageSampleProjExplicitLod 1194 1195 Grad ConstOffset 1196 1197 452 + 1199: 7(fvec4) Load 1177(texel) + 1200: 7(fvec4) FAdd 1199 1198 + Store 1177(texel) 1200 + 1201: 133 Load 135(s2D) + 1202: 7(fvec4) Load 197(c4) + 1203: 52(fvec2) Load 874(dPdxy2) + 1204: 52(fvec2) Load 874(dPdxy2) + 1205: 6(float) CompositeExtract 1202 3 + 1206: 7(fvec4) CompositeInsert 1205 1202 2 + 1207: 7(fvec4) ImageSampleProjExplicitLod 1201 1206 Grad ConstOffset 1203 1204 452 + 1208: 7(fvec4) Load 1177(texel) + 1209: 7(fvec4) FAdd 1208 1207 + Store 1177(texel) 1209 + 1210: 257 Load 259(s2DRect) + 1211: 148(fvec3) Load 150(c3) + 1212: 52(fvec2) Load 874(dPdxy2) + 1213: 52(fvec2) Load 874(dPdxy2) + 1214: 7(fvec4) ImageSampleProjExplicitLod 1210 1211 Grad ConstOffset 1212 1213 452 + 1215: 7(fvec4) Load 1177(texel) + 1216: 7(fvec4) FAdd 1215 1214 + Store 1177(texel) 1216 + 1217: 257 Load 259(s2DRect) + 1218: 7(fvec4) Load 197(c4) + 1219: 52(fvec2) Load 874(dPdxy2) + 1220: 52(fvec2) Load 874(dPdxy2) + 1221: 6(float) CompositeExtract 1218 3 + 1222: 7(fvec4) CompositeInsert 1221 1218 2 + 1223: 7(fvec4) ImageSampleProjExplicitLod 1217 1222 Grad ConstOffset 1219 1220 452 + 1224: 7(fvec4) Load 1177(texel) + 1225: 7(fvec4) FAdd 1224 1223 + Store 1177(texel) 1225 + 1226: 266 Load 268(s2DRectShadow) + 1227: 7(fvec4) Load 197(c4) + 1228: 52(fvec2) Load 874(dPdxy2) + 1229: 52(fvec2) Load 874(dPdxy2) + 1230: 6(float) CompositeExtract 1227 2 + 1231: 6(float) CompositeExtract 1227 3 + 1232: 7(fvec4) CompositeInsert 1231 1227 2 + 1233: 6(float) ImageSampleProjDrefExplicitLod 1226 1232 1230 Grad ConstOffset 1228 1229 452 + 1234: 174(ptr) AccessChain 1177(texel) 173 + 1235: 6(float) Load 1234 + 1236: 6(float) FAdd 1235 1233 + 1237: 174(ptr) AccessChain 1177(texel) 173 + Store 1237 1236 + 1238: 144 Load 146(s3D) + 1239: 7(fvec4) Load 197(c4) + 1240: 148(fvec3) Load 882(dPdxy3) + 1241: 148(fvec3) Load 882(dPdxy3) + 1242: 7(fvec4) ImageSampleProjExplicitLod 1238 1239 Grad ConstOffset 1240 1241 459 + 1243: 7(fvec4) Load 1177(texel) + 1244: 7(fvec4) FAdd 1243 1242 + Store 1177(texel) 1244 + 1245: 165 Load 167(s1DShadow) + 1246: 7(fvec4) Load 197(c4) + 1247: 6(float) Load 866(dPdxy1) + 1248: 6(float) Load 866(dPdxy1) + 1249: 6(float) CompositeExtract 1246 2 + 1250: 6(float) CompositeExtract 1246 3 + 1251: 7(fvec4) CompositeInsert 1250 1246 1 + 1252: 6(float) ImageSampleProjDrefExplicitLod 1245 1251 1249 Grad ConstOffset 1247 1248 445 + 1253: 174(ptr) AccessChain 1177(texel) 173 + 1254: 6(float) Load 1253 + 1255: 6(float) FAdd 1254 1252 + 1256: 174(ptr) AccessChain 1177(texel) 173 + Store 1256 1255 + 1257: 180 Load 182(s2DShadow) + 1258: 7(fvec4) Load 197(c4) + 1259: 52(fvec2) Load 874(dPdxy2) + 1260: 52(fvec2) Load 874(dPdxy2) + 1261: 6(float) CompositeExtract 1258 2 + 1262: 6(float) CompositeExtract 1258 3 + 1263: 7(fvec4) CompositeInsert 1262 1258 2 + 1264: 6(float) ImageSampleProjDrefExplicitLod 1257 1263 1261 Grad ConstOffset 1259 1260 452 + 1265: 174(ptr) AccessChain 1177(texel) 173 + 1266: 6(float) Load 1265 + 1267: 6(float) FAdd 1266 1264 + 1268: 174(ptr) AccessChain 1177(texel) 173 + Store 1268 1267 + 1269: 7(fvec4) Load 1177(texel) + ReturnValue 1269 + FunctionEnd +35(testTextureGather(): 7(fvec4) Function None 8 + 36: Label + 1272(texel): 63(ptr) Variable Function + Store 1272(texel) 120 + 1273: 133 Load 135(s2D) + 1274: 52(fvec2) Load 138(c2) + 1276: 7(fvec4) ImageGather 1273 1274 1275 + 1277: 7(fvec4) Load 1272(texel) + 1278: 7(fvec4) FAdd 1277 1276 + Store 1272(texel) 1278 + 1279: 215 Load 217(s2DArray) + 1280: 148(fvec3) Load 150(c3) + 1281: 7(fvec4) ImageGather 1279 1280 1275 + 1282: 7(fvec4) Load 1272(texel) + 1283: 7(fvec4) FAdd 1282 1281 + Store 1272(texel) 1283 + 1284: 156 Load 158(sCube) + 1285: 148(fvec3) Load 150(c3) + 1286: 7(fvec4) ImageGather 1284 1285 1275 + 1287: 7(fvec4) Load 1272(texel) + 1288: 7(fvec4) FAdd 1287 1286 + Store 1272(texel) 1288 + 1289: 224 Load 226(sCubeArray) + 1290: 7(fvec4) Load 197(c4) + 1291: 7(fvec4) ImageGather 1289 1290 1275 + 1292: 7(fvec4) Load 1272(texel) + 1293: 7(fvec4) FAdd 1292 1291 + Store 1272(texel) 1293 + 1294: 257 Load 259(s2DRect) + 1295: 52(fvec2) Load 138(c2) + 1296: 7(fvec4) ImageGather 1294 1295 1275 + 1297: 7(fvec4) Load 1272(texel) + 1298: 7(fvec4) FAdd 1297 1296 + Store 1272(texel) 1298 + 1299: 180 Load 182(s2DShadow) + 1300: 52(fvec2) Load 138(c2) + 1301: 6(float) Load 283(compare) + 1302: 7(fvec4) ImageDrefGather 1299 1300 1301 + 1303: 7(fvec4) Load 1272(texel) + 1304: 7(fvec4) FAdd 1303 1302 + Store 1272(texel) 1304 + 1305: 245 Load 247(s2DArrayShadow) + 1306: 148(fvec3) Load 150(c3) + 1307: 6(float) Load 283(compare) + 1308: 7(fvec4) ImageDrefGather 1305 1306 1307 + 1309: 7(fvec4) Load 1272(texel) + 1310: 7(fvec4) FAdd 1309 1308 + Store 1272(texel) 1310 + 1311: 192 Load 194(sCubeShadow) + 1312: 148(fvec3) Load 150(c3) + 1313: 6(float) Load 283(compare) + 1314: 7(fvec4) ImageDrefGather 1311 1312 1313 + 1315: 7(fvec4) Load 1272(texel) + 1316: 7(fvec4) FAdd 1315 1314 + Store 1272(texel) 1316 + 1317: 278 Load 280(sCubeArrayShadow) + 1318: 7(fvec4) Load 197(c4) + 1319: 6(float) Load 283(compare) + 1320: 7(fvec4) ImageDrefGather 1317 1318 1319 + 1321: 7(fvec4) Load 1272(texel) + 1322: 7(fvec4) FAdd 1321 1320 + Store 1272(texel) 1322 + 1323: 266 Load 268(s2DRectShadow) + 1324: 52(fvec2) Load 138(c2) + 1325: 6(float) Load 283(compare) + 1326: 7(fvec4) ImageDrefGather 1323 1324 1325 + 1327: 7(fvec4) Load 1272(texel) + 1328: 7(fvec4) FAdd 1327 1326 + Store 1272(texel) 1328 + 1329: 7(fvec4) Load 1272(texel) + ReturnValue 1329 + FunctionEnd +37(testTextureGatherOffset(): 7(fvec4) Function None 8 + 38: Label + 1332(texel): 63(ptr) Variable Function + Store 1332(texel) 120 + 1333: 133 Load 135(s2D) + 1334: 52(fvec2) Load 138(c2) + 1335: 7(fvec4) ImageGather 1333 1334 1275 ConstOffset 452 + 1336: 7(fvec4) Load 1332(texel) + 1337: 7(fvec4) FAdd 1336 1335 + Store 1332(texel) 1337 + 1338: 215 Load 217(s2DArray) + 1339: 148(fvec3) Load 150(c3) + 1340: 7(fvec4) ImageGather 1338 1339 1275 ConstOffset 452 + 1341: 7(fvec4) Load 1332(texel) + 1342: 7(fvec4) FAdd 1341 1340 + Store 1332(texel) 1342 + 1343: 257 Load 259(s2DRect) + 1344: 52(fvec2) Load 138(c2) + 1345: 7(fvec4) ImageGather 1343 1344 1275 ConstOffset 452 + 1346: 7(fvec4) Load 1332(texel) + 1347: 7(fvec4) FAdd 1346 1345 + Store 1332(texel) 1347 + 1348: 180 Load 182(s2DShadow) + 1349: 52(fvec2) Load 138(c2) + 1350: 6(float) Load 283(compare) + 1351: 7(fvec4) ImageDrefGather 1348 1349 1350 ConstOffset 452 + 1352: 7(fvec4) Load 1332(texel) + 1353: 7(fvec4) FAdd 1352 1351 + Store 1332(texel) 1353 + 1354: 245 Load 247(s2DArrayShadow) + 1355: 148(fvec3) Load 150(c3) + 1356: 6(float) Load 283(compare) + 1357: 7(fvec4) ImageDrefGather 1354 1355 1356 ConstOffset 452 + 1358: 7(fvec4) Load 1332(texel) + 1359: 7(fvec4) FAdd 1358 1357 + Store 1332(texel) 1359 + 1360: 266 Load 268(s2DRectShadow) + 1361: 52(fvec2) Load 138(c2) + 1362: 6(float) Load 283(compare) + 1363: 7(fvec4) ImageDrefGather 1360 1361 1362 ConstOffset 452 + 1364: 7(fvec4) Load 1332(texel) + 1365: 7(fvec4) FAdd 1364 1363 + Store 1332(texel) 1365 + 1366: 7(fvec4) Load 1332(texel) + ReturnValue 1366 + FunctionEnd +39(testTextureGatherOffsets(): 7(fvec4) Function None 8 + 40: Label + 1369(texel): 63(ptr) Variable Function + Store 1369(texel) 120 + 1370: 133 Load 135(s2D) + 1371: 52(fvec2) Load 138(c2) + 1375: 7(fvec4) ImageGather 1370 1371 1275 ConstOffsets 1374 + 1376: 7(fvec4) Load 1369(texel) + 1377: 7(fvec4) FAdd 1376 1375 + Store 1369(texel) 1377 + 1378: 215 Load 217(s2DArray) + 1379: 148(fvec3) Load 150(c3) + 1380: 7(fvec4) ImageGather 1378 1379 1275 ConstOffsets 1374 + 1381: 7(fvec4) Load 1369(texel) + 1382: 7(fvec4) FAdd 1381 1380 + Store 1369(texel) 1382 + 1383: 257 Load 259(s2DRect) + 1384: 52(fvec2) Load 138(c2) + 1385: 7(fvec4) ImageGather 1383 1384 1275 ConstOffsets 1374 + 1386: 7(fvec4) Load 1369(texel) + 1387: 7(fvec4) FAdd 1386 1385 + Store 1369(texel) 1387 + 1388: 180 Load 182(s2DShadow) + 1389: 52(fvec2) Load 138(c2) + 1390: 6(float) Load 283(compare) + 1391: 7(fvec4) ImageDrefGather 1388 1389 1390 ConstOffsets 1374 + 1392: 7(fvec4) Load 1369(texel) + 1393: 7(fvec4) FAdd 1392 1391 + Store 1369(texel) 1393 + 1394: 245 Load 247(s2DArrayShadow) + 1395: 148(fvec3) Load 150(c3) + 1396: 6(float) Load 283(compare) + 1397: 7(fvec4) ImageDrefGather 1394 1395 1396 ConstOffsets 1374 + 1398: 7(fvec4) Load 1369(texel) + 1399: 7(fvec4) FAdd 1398 1397 + Store 1369(texel) 1399 + 1400: 266 Load 268(s2DRectShadow) + 1401: 52(fvec2) Load 138(c2) + 1402: 6(float) Load 283(compare) + 1403: 7(fvec4) ImageDrefGather 1400 1401 1402 ConstOffsets 1374 + 1404: 7(fvec4) Load 1369(texel) + 1405: 7(fvec4) FAdd 1404 1403 + Store 1369(texel) 1405 + 1406: 7(fvec4) Load 1369(texel) + ReturnValue 1406 + FunctionEnd +41(testTextureGatherLod(): 7(fvec4) Function None 8 + 42: Label + 1409(texel): 63(ptr) Variable Function + Store 1409(texel) 120 + 1410: 133 Load 135(s2D) + 1411: 52(fvec2) Load 138(c2) + 1412: 6(float) Load 371(lod) + 1413: 7(fvec4) ImageGather 1410 1411 1275 Lod 1412 + 1414: 7(fvec4) Load 1409(texel) + 1415: 7(fvec4) FAdd 1414 1413 + Store 1409(texel) 1415 + 1416: 215 Load 217(s2DArray) + 1417: 148(fvec3) Load 150(c3) + 1418: 6(float) Load 371(lod) + 1419: 7(fvec4) ImageGather 1416 1417 1275 Lod 1418 + 1420: 7(fvec4) Load 1409(texel) + 1421: 7(fvec4) FAdd 1420 1419 + Store 1409(texel) 1421 + 1422: 156 Load 158(sCube) + 1423: 148(fvec3) Load 150(c3) + 1424: 6(float) Load 371(lod) + 1425: 7(fvec4) ImageGather 1422 1423 1275 Lod 1424 + 1426: 7(fvec4) Load 1409(texel) + 1427: 7(fvec4) FAdd 1426 1425 + Store 1409(texel) 1427 + 1428: 224 Load 226(sCubeArray) + 1429: 7(fvec4) Load 197(c4) + 1430: 6(float) Load 371(lod) + 1431: 7(fvec4) ImageGather 1428 1429 1275 Lod 1430 + 1432: 7(fvec4) Load 1409(texel) + 1433: 7(fvec4) FAdd 1432 1431 + Store 1409(texel) 1433 + 1434: 7(fvec4) Load 1409(texel) + ReturnValue 1434 + FunctionEnd +43(testTextureGatherLodOffset(): 7(fvec4) Function None 8 + 44: Label + 1437(texel): 63(ptr) Variable Function + Store 1437(texel) 120 + 1438: 133 Load 135(s2D) + 1439: 52(fvec2) Load 138(c2) + 1440: 6(float) Load 371(lod) + 1441: 7(fvec4) ImageGather 1438 1439 1275 Lod ConstOffset 1440 452 + 1442: 7(fvec4) Load 1437(texel) + 1443: 7(fvec4) FAdd 1442 1441 + Store 1437(texel) 1443 + 1444: 215 Load 217(s2DArray) + 1445: 148(fvec3) Load 150(c3) + 1446: 6(float) Load 371(lod) + 1447: 7(fvec4) ImageGather 1444 1445 1275 Lod ConstOffset 1446 452 + 1448: 7(fvec4) Load 1437(texel) + 1449: 7(fvec4) FAdd 1448 1447 + Store 1437(texel) 1449 + 1450: 7(fvec4) Load 1437(texel) + ReturnValue 1450 + FunctionEnd +45(testTextureGatherLodOffsets(): 7(fvec4) Function None 8 + 46: Label + 1453(texel): 63(ptr) Variable Function + Store 1453(texel) 120 + 1454: 133 Load 135(s2D) + 1455: 52(fvec2) Load 138(c2) + 1456: 6(float) Load 371(lod) + 1457: 7(fvec4) ImageGather 1454 1455 1275 Lod ConstOffsets 1456 1374 + 1458: 7(fvec4) Load 1453(texel) + 1459: 7(fvec4) FAdd 1458 1457 + Store 1453(texel) 1459 + 1460: 215 Load 217(s2DArray) + 1461: 148(fvec3) Load 150(c3) + 1462: 6(float) Load 371(lod) + 1463: 7(fvec4) ImageGather 1460 1461 1275 Lod ConstOffsets 1462 1374 + 1464: 7(fvec4) Load 1453(texel) + 1465: 7(fvec4) FAdd 1464 1463 + Store 1453(texel) 1465 + 1466: 7(fvec4) Load 1453(texel) + ReturnValue 1466 + FunctionEnd +50(testTextureSize(): 48(ivec4) Function None 49 + 51: Label + 1470(size): 1469(ptr) Variable Function + Store 1470(size) 1471 + 1472: 122 Load 124(s1D) + 1473: 6(float) Load 371(lod) + 1474: 47(int) ConvertFToS 1473 + 1475: 121 Image 1472 + 1476: 47(int) ImageQuerySizeLod 1475 1474 + 1478: 1477(ptr) AccessChain 1470(size) 173 + 1479: 47(int) Load 1478 + 1480: 47(int) IAdd 1479 1476 + 1481: 1477(ptr) AccessChain 1470(size) 173 + Store 1481 1480 + 1482: 133 Load 135(s2D) + 1483: 6(float) Load 371(lod) + 1484: 47(int) ConvertFToS 1483 + 1485: 132 Image 1482 + 1486: 451(ivec2) ImageQuerySizeLod 1485 1484 + 1487: 48(ivec4) Load 1470(size) + 1488: 451(ivec2) VectorShuffle 1487 1487 0 1 + 1489: 451(ivec2) IAdd 1488 1486 + 1490: 1477(ptr) AccessChain 1470(size) 173 + 1491: 47(int) CompositeExtract 1489 0 + Store 1490 1491 + 1493: 1477(ptr) AccessChain 1470(size) 1492 + 1494: 47(int) CompositeExtract 1489 1 + Store 1493 1494 + 1495: 144 Load 146(s3D) + 1496: 6(float) Load 371(lod) + 1497: 47(int) ConvertFToS 1496 + 1498: 143 Image 1495 + 1499: 458(ivec3) ImageQuerySizeLod 1498 1497 + 1500: 48(ivec4) Load 1470(size) + 1501: 458(ivec3) VectorShuffle 1500 1500 0 1 2 + 1502: 458(ivec3) IAdd 1501 1499 + 1503: 1477(ptr) AccessChain 1470(size) 173 + 1504: 47(int) CompositeExtract 1502 0 + Store 1503 1504 + 1505: 1477(ptr) AccessChain 1470(size) 1492 + 1506: 47(int) CompositeExtract 1502 1 + Store 1505 1506 + 1508: 1477(ptr) AccessChain 1470(size) 1507 + 1509: 47(int) CompositeExtract 1502 2 + Store 1508 1509 + 1510: 156 Load 158(sCube) + 1511: 6(float) Load 371(lod) + 1512: 47(int) ConvertFToS 1511 + 1513: 155 Image 1510 + 1514: 451(ivec2) ImageQuerySizeLod 1513 1512 + 1515: 48(ivec4) Load 1470(size) + 1516: 451(ivec2) VectorShuffle 1515 1515 0 1 + 1517: 451(ivec2) IAdd 1516 1514 + 1518: 1477(ptr) AccessChain 1470(size) 173 + 1519: 47(int) CompositeExtract 1517 0 + Store 1518 1519 + 1520: 1477(ptr) AccessChain 1470(size) 1492 + 1521: 47(int) CompositeExtract 1517 1 + Store 1520 1521 + 1522: 165 Load 167(s1DShadow) + 1523: 6(float) Load 371(lod) + 1524: 47(int) ConvertFToS 1523 + 1525: 164 Image 1522 + 1526: 47(int) ImageQuerySizeLod 1525 1524 + 1527: 1477(ptr) AccessChain 1470(size) 173 + 1528: 47(int) Load 1527 + 1529: 47(int) IAdd 1528 1526 + 1530: 1477(ptr) AccessChain 1470(size) 173 + Store 1530 1529 + 1531: 180 Load 182(s2DShadow) + 1532: 6(float) Load 371(lod) + 1533: 47(int) ConvertFToS 1532 + 1534: 179 Image 1531 + 1535: 451(ivec2) ImageQuerySizeLod 1534 1533 + 1536: 48(ivec4) Load 1470(size) + 1537: 451(ivec2) VectorShuffle 1536 1536 0 1 + 1538: 451(ivec2) IAdd 1537 1535 + 1539: 1477(ptr) AccessChain 1470(size) 173 + 1540: 47(int) CompositeExtract 1538 0 + Store 1539 1540 + 1541: 1477(ptr) AccessChain 1470(size) 1492 + 1542: 47(int) CompositeExtract 1538 1 + Store 1541 1542 + 1543: 192 Load 194(sCubeShadow) + 1544: 6(float) Load 371(lod) + 1545: 47(int) ConvertFToS 1544 + 1546: 191 Image 1543 + 1547: 451(ivec2) ImageQuerySizeLod 1546 1545 + 1548: 48(ivec4) Load 1470(size) + 1549: 451(ivec2) VectorShuffle 1548 1548 0 1 + 1550: 451(ivec2) IAdd 1549 1547 + 1551: 1477(ptr) AccessChain 1470(size) 173 + 1552: 47(int) CompositeExtract 1550 0 + Store 1551 1552 + 1553: 1477(ptr) AccessChain 1470(size) 1492 + 1554: 47(int) CompositeExtract 1550 1 + Store 1553 1554 + 1555: 224 Load 226(sCubeArray) + 1556: 6(float) Load 371(lod) + 1557: 47(int) ConvertFToS 1556 + 1558: 223 Image 1555 + 1559: 458(ivec3) ImageQuerySizeLod 1558 1557 + 1560: 48(ivec4) Load 1470(size) + 1561: 458(ivec3) VectorShuffle 1560 1560 0 1 2 + 1562: 458(ivec3) IAdd 1561 1559 + 1563: 1477(ptr) AccessChain 1470(size) 173 + 1564: 47(int) CompositeExtract 1562 0 + Store 1563 1564 + 1565: 1477(ptr) AccessChain 1470(size) 1492 + 1566: 47(int) CompositeExtract 1562 1 + Store 1565 1566 + 1567: 1477(ptr) AccessChain 1470(size) 1507 + 1568: 47(int) CompositeExtract 1562 2 + Store 1567 1568 + 1569: 278 Load 280(sCubeArrayShadow) + 1570: 6(float) Load 371(lod) + 1571: 47(int) ConvertFToS 1570 + 1572: 277 Image 1569 + 1573: 458(ivec3) ImageQuerySizeLod 1572 1571 + 1574: 48(ivec4) Load 1470(size) + 1575: 458(ivec3) VectorShuffle 1574 1574 0 1 2 + 1576: 458(ivec3) IAdd 1575 1573 + 1577: 1477(ptr) AccessChain 1470(size) 173 + 1578: 47(int) CompositeExtract 1576 0 + Store 1577 1578 + 1579: 1477(ptr) AccessChain 1470(size) 1492 + 1580: 47(int) CompositeExtract 1576 1 + Store 1579 1580 + 1581: 1477(ptr) AccessChain 1470(size) 1507 + 1582: 47(int) CompositeExtract 1576 2 + Store 1581 1582 + 1583: 257 Load 259(s2DRect) + 1584: 256 Image 1583 + 1585: 451(ivec2) ImageQuerySize 1584 + 1586: 48(ivec4) Load 1470(size) + 1587: 451(ivec2) VectorShuffle 1586 1586 0 1 + 1588: 451(ivec2) IAdd 1587 1585 + 1589: 1477(ptr) AccessChain 1470(size) 173 + 1590: 47(int) CompositeExtract 1588 0 + Store 1589 1590 + 1591: 1477(ptr) AccessChain 1470(size) 1492 + 1592: 47(int) CompositeExtract 1588 1 + Store 1591 1592 + 1593: 266 Load 268(s2DRectShadow) + 1594: 265 Image 1593 + 1595: 451(ivec2) ImageQuerySize 1594 + 1596: 48(ivec4) Load 1470(size) + 1597: 451(ivec2) VectorShuffle 1596 1596 0 1 + 1598: 451(ivec2) IAdd 1597 1595 + 1599: 1477(ptr) AccessChain 1470(size) 173 + 1600: 47(int) CompositeExtract 1598 0 + Store 1599 1600 + 1601: 1477(ptr) AccessChain 1470(size) 1492 + 1602: 47(int) CompositeExtract 1598 1 + Store 1601 1602 + 1603: 206 Load 208(s1DArray) + 1604: 6(float) Load 371(lod) + 1605: 47(int) ConvertFToS 1604 + 1606: 205 Image 1603 + 1607: 451(ivec2) ImageQuerySizeLod 1606 1605 + 1608: 48(ivec4) Load 1470(size) + 1609: 451(ivec2) VectorShuffle 1608 1608 0 1 + 1610: 451(ivec2) IAdd 1609 1607 + 1611: 1477(ptr) AccessChain 1470(size) 173 + 1612: 47(int) CompositeExtract 1610 0 + Store 1611 1612 + 1613: 1477(ptr) AccessChain 1470(size) 1492 + 1614: 47(int) CompositeExtract 1610 1 + Store 1613 1614 + 1615: 215 Load 217(s2DArray) + 1616: 6(float) Load 371(lod) + 1617: 47(int) ConvertFToS 1616 + 1618: 214 Image 1615 + 1619: 458(ivec3) ImageQuerySizeLod 1618 1617 + 1620: 48(ivec4) Load 1470(size) + 1621: 458(ivec3) VectorShuffle 1620 1620 0 1 2 + 1622: 458(ivec3) IAdd 1621 1619 + 1623: 1477(ptr) AccessChain 1470(size) 173 + 1624: 47(int) CompositeExtract 1622 0 + Store 1623 1624 + 1625: 1477(ptr) AccessChain 1470(size) 1492 + 1626: 47(int) CompositeExtract 1622 1 + Store 1625 1626 + 1627: 1477(ptr) AccessChain 1470(size) 1507 + 1628: 47(int) CompositeExtract 1622 2 + Store 1627 1628 + 1629: 233 Load 235(s1DArrayShadow) + 1630: 6(float) Load 371(lod) + 1631: 47(int) ConvertFToS 1630 + 1632: 232 Image 1629 + 1633: 451(ivec2) ImageQuerySizeLod 1632 1631 + 1634: 48(ivec4) Load 1470(size) + 1635: 451(ivec2) VectorShuffle 1634 1634 0 1 + 1636: 451(ivec2) IAdd 1635 1633 + 1637: 1477(ptr) AccessChain 1470(size) 173 + 1638: 47(int) CompositeExtract 1636 0 + Store 1637 1638 + 1639: 1477(ptr) AccessChain 1470(size) 1492 + 1640: 47(int) CompositeExtract 1636 1 + Store 1639 1640 + 1641: 245 Load 247(s2DArrayShadow) + 1642: 6(float) Load 371(lod) + 1643: 47(int) ConvertFToS 1642 + 1644: 244 Image 1641 + 1645: 458(ivec3) ImageQuerySizeLod 1644 1643 + 1646: 48(ivec4) Load 1470(size) + 1647: 458(ivec3) VectorShuffle 1646 1646 0 1 2 + 1648: 458(ivec3) IAdd 1647 1645 + 1649: 1477(ptr) AccessChain 1470(size) 173 + 1650: 47(int) CompositeExtract 1648 0 + Store 1649 1650 + 1651: 1477(ptr) AccessChain 1470(size) 1492 + 1652: 47(int) CompositeExtract 1648 1 + Store 1651 1652 + 1653: 1477(ptr) AccessChain 1470(size) 1507 + 1654: 47(int) CompositeExtract 1648 2 + Store 1653 1654 + 1655: 771 Load 773(sBuffer) + 1656: 770 Image 1655 + 1657: 47(int) ImageQuerySize 1656 + 1658: 1477(ptr) AccessChain 1470(size) 173 + 1659: 47(int) Load 1658 + 1660: 47(int) IAdd 1659 1657 + 1661: 1477(ptr) AccessChain 1470(size) 173 + Store 1661 1660 + 1662: 782 Load 784(s2DMS) + 1663: 781 Image 1662 + 1664: 451(ivec2) ImageQuerySize 1663 + 1665: 48(ivec4) Load 1470(size) + 1666: 451(ivec2) VectorShuffle 1665 1665 0 1 + 1667: 451(ivec2) IAdd 1666 1664 + 1668: 1477(ptr) AccessChain 1470(size) 173 + 1669: 47(int) CompositeExtract 1667 0 + Store 1668 1669 + 1670: 1477(ptr) AccessChain 1470(size) 1492 + 1671: 47(int) CompositeExtract 1667 1 + Store 1670 1671 + 1672: 793 Load 795(s2DMSArray) + 1673: 792 Image 1672 + 1674: 458(ivec3) ImageQuerySize 1673 + 1675: 48(ivec4) Load 1470(size) + 1676: 458(ivec3) VectorShuffle 1675 1675 0 1 2 + 1677: 458(ivec3) IAdd 1676 1674 + 1678: 1477(ptr) AccessChain 1470(size) 173 + 1679: 47(int) CompositeExtract 1677 0 + Store 1678 1679 + 1680: 1477(ptr) AccessChain 1470(size) 1492 + 1681: 47(int) CompositeExtract 1677 1 + Store 1680 1681 + 1682: 1477(ptr) AccessChain 1470(size) 1507 + 1683: 47(int) CompositeExtract 1677 2 + Store 1682 1683 + 1684: 48(ivec4) Load 1470(size) + ReturnValue 1684 + FunctionEnd +54(testTextureQueryLod(): 52(fvec2) Function None 53 + 55: Label + 1688(lod): 1687(ptr) Variable Function + Store 1688(lod) 1689 + 1690: 122 Load 124(s1D) + 1691: 6(float) Load 127(c1) + 1692: 52(fvec2) ImageQueryLod 1690 1691 + 1693: 52(fvec2) Load 1688(lod) + 1694: 52(fvec2) FAdd 1693 1692 + Store 1688(lod) 1694 + 1695: 133 Load 135(s2D) + 1696: 52(fvec2) Load 138(c2) + 1697: 52(fvec2) ImageQueryLod 1695 1696 + 1698: 52(fvec2) Load 1688(lod) + 1699: 52(fvec2) FAdd 1698 1697 + Store 1688(lod) 1699 + 1700: 144 Load 146(s3D) + 1701: 148(fvec3) Load 150(c3) + 1702: 52(fvec2) ImageQueryLod 1700 1701 + 1703: 52(fvec2) Load 1688(lod) + 1704: 52(fvec2) FAdd 1703 1702 + Store 1688(lod) 1704 + 1705: 156 Load 158(sCube) + 1706: 148(fvec3) Load 150(c3) + 1707: 52(fvec2) ImageQueryLod 1705 1706 + 1708: 52(fvec2) Load 1688(lod) + 1709: 52(fvec2) FAdd 1708 1707 + Store 1688(lod) 1709 + 1710: 206 Load 208(s1DArray) + 1711: 6(float) Load 127(c1) + 1712: 52(fvec2) ImageQueryLod 1710 1711 + 1713: 52(fvec2) Load 1688(lod) + 1714: 52(fvec2) FAdd 1713 1712 + Store 1688(lod) 1714 + 1715: 215 Load 217(s2DArray) + 1716: 52(fvec2) Load 138(c2) + 1717: 52(fvec2) ImageQueryLod 1715 1716 + 1718: 52(fvec2) Load 1688(lod) + 1719: 52(fvec2) FAdd 1718 1717 + Store 1688(lod) 1719 + 1720: 224 Load 226(sCubeArray) + 1721: 148(fvec3) Load 150(c3) + 1722: 52(fvec2) ImageQueryLod 1720 1721 + 1723: 52(fvec2) Load 1688(lod) + 1724: 52(fvec2) FAdd 1723 1722 + Store 1688(lod) 1724 + 1725: 165 Load 167(s1DShadow) + 1726: 6(float) Load 127(c1) + 1727: 52(fvec2) ImageQueryLod 1725 1726 + 1728: 52(fvec2) Load 1688(lod) + 1729: 52(fvec2) FAdd 1728 1727 + Store 1688(lod) 1729 + 1730: 180 Load 182(s2DShadow) + 1731: 52(fvec2) Load 138(c2) + 1732: 52(fvec2) ImageQueryLod 1730 1731 + 1733: 52(fvec2) Load 1688(lod) + 1734: 52(fvec2) FAdd 1733 1732 + Store 1688(lod) 1734 + 1735: 278 Load 280(sCubeArrayShadow) + 1736: 148(fvec3) Load 150(c3) + 1737: 52(fvec2) ImageQueryLod 1735 1736 + 1738: 52(fvec2) Load 1688(lod) + 1739: 52(fvec2) FAdd 1738 1737 + Store 1688(lod) 1739 + 1740: 233 Load 235(s1DArrayShadow) + 1741: 6(float) Load 127(c1) + 1742: 52(fvec2) ImageQueryLod 1740 1741 + 1743: 52(fvec2) Load 1688(lod) + 1744: 52(fvec2) FAdd 1743 1742 + Store 1688(lod) 1744 + 1745: 245 Load 247(s2DArrayShadow) + 1746: 52(fvec2) Load 138(c2) + 1747: 52(fvec2) ImageQueryLod 1745 1746 + 1748: 52(fvec2) Load 1688(lod) + 1749: 52(fvec2) FAdd 1748 1747 + Store 1688(lod) 1749 + 1750: 278 Load 280(sCubeArrayShadow) + 1751: 148(fvec3) Load 150(c3) + 1752: 52(fvec2) ImageQueryLod 1750 1751 + 1753: 52(fvec2) Load 1688(lod) + 1754: 52(fvec2) FAdd 1753 1752 + Store 1688(lod) 1754 + 1755: 52(fvec2) Load 1688(lod) + ReturnValue 1755 + FunctionEnd +57(testTextureQueryLevels(): 47(int) Function None 56 + 58: Label + 1758(levels): 1477(ptr) Variable Function + Store 1758(levels) 1275 + 1759: 122 Load 124(s1D) + 1760: 121 Image 1759 + 1761: 47(int) ImageQueryLevels 1760 + 1762: 47(int) Load 1758(levels) + 1763: 47(int) IAdd 1762 1761 + Store 1758(levels) 1763 + 1764: 133 Load 135(s2D) + 1765: 132 Image 1764 + 1766: 47(int) ImageQueryLevels 1765 + 1767: 47(int) Load 1758(levels) + 1768: 47(int) IAdd 1767 1766 + Store 1758(levels) 1768 + 1769: 144 Load 146(s3D) + 1770: 143 Image 1769 + 1771: 47(int) ImageQueryLevels 1770 + 1772: 47(int) Load 1758(levels) + 1773: 47(int) IAdd 1772 1771 + Store 1758(levels) 1773 + 1774: 156 Load 158(sCube) + 1775: 155 Image 1774 + 1776: 47(int) ImageQueryLevels 1775 + 1777: 47(int) Load 1758(levels) + 1778: 47(int) IAdd 1777 1776 + Store 1758(levels) 1778 + 1779: 165 Load 167(s1DShadow) + 1780: 164 Image 1779 + 1781: 47(int) ImageQueryLevels 1780 + 1782: 47(int) Load 1758(levels) + 1783: 47(int) IAdd 1782 1781 + Store 1758(levels) 1783 + 1784: 180 Load 182(s2DShadow) + 1785: 179 Image 1784 + 1786: 47(int) ImageQueryLevels 1785 + 1787: 47(int) Load 1758(levels) + 1788: 47(int) IAdd 1787 1786 + Store 1758(levels) 1788 + 1789: 192 Load 194(sCubeShadow) + 1790: 191 Image 1789 + 1791: 47(int) ImageQueryLevels 1790 + 1792: 47(int) Load 1758(levels) + 1793: 47(int) IAdd 1792 1791 + Store 1758(levels) 1793 + 1794: 224 Load 226(sCubeArray) + 1795: 223 Image 1794 + 1796: 47(int) ImageQueryLevels 1795 + 1797: 47(int) Load 1758(levels) + 1798: 47(int) IAdd 1797 1796 + Store 1758(levels) 1798 + 1799: 278 Load 280(sCubeArrayShadow) + 1800: 277 Image 1799 + 1801: 47(int) ImageQueryLevels 1800 + 1802: 47(int) Load 1758(levels) + 1803: 47(int) IAdd 1802 1801 + Store 1758(levels) 1803 + 1804: 206 Load 208(s1DArray) + 1805: 205 Image 1804 + 1806: 47(int) ImageQueryLevels 1805 + 1807: 47(int) Load 1758(levels) + 1808: 47(int) IAdd 1807 1806 + Store 1758(levels) 1808 + 1809: 215 Load 217(s2DArray) + 1810: 214 Image 1809 + 1811: 47(int) ImageQueryLevels 1810 + 1812: 47(int) Load 1758(levels) + 1813: 47(int) IAdd 1812 1811 + Store 1758(levels) 1813 + 1814: 233 Load 235(s1DArrayShadow) + 1815: 232 Image 1814 + 1816: 47(int) ImageQueryLevels 1815 + 1817: 47(int) Load 1758(levels) + 1818: 47(int) IAdd 1817 1816 + Store 1758(levels) 1818 + 1819: 245 Load 247(s2DArrayShadow) + 1820: 244 Image 1819 + 1821: 47(int) ImageQueryLevels 1820 + 1822: 47(int) Load 1758(levels) + 1823: 47(int) IAdd 1822 1821 + Store 1758(levels) 1823 + 1824: 47(int) Load 1758(levels) + ReturnValue 1824 + FunctionEnd +59(testTextureSamples(): 47(int) Function None 56 + 60: Label + 1827(samples): 1477(ptr) Variable Function + Store 1827(samples) 1275 + 1828: 782 Load 784(s2DMS) + 1829: 781 Image 1828 + 1830: 47(int) ImageQuerySamples 1829 + 1831: 47(int) Load 1827(samples) + 1832: 47(int) IAdd 1831 1830 + Store 1827(samples) 1832 + 1833: 793 Load 795(s2DMSArray) + 1834: 792 Image 1833 + 1835: 47(int) ImageQuerySamples 1834 + 1836: 47(int) Load 1827(samples) + 1837: 47(int) IAdd 1836 1835 + Store 1827(samples) 1837 + 1838: 47(int) Load 1827(samples) + ReturnValue 1838 + FunctionEnd +61(testImageLoad(): 7(fvec4) Function None 8 + 62: Label + 1841(texel): 63(ptr) Variable Function + Store 1841(texel) 120 + 1845: 1842 Load 1844(i1D) + 1846: 6(float) Load 127(c1) + 1847: 47(int) ConvertFToS 1846 + 1848: 7(fvec4) ImageRead 1845 1847 + 1849: 7(fvec4) Load 1841(texel) + 1850: 7(fvec4) FAdd 1849 1848 + Store 1841(texel) 1850 + 1854: 1851 Load 1853(i2D) + 1855: 52(fvec2) Load 138(c2) + 1856: 451(ivec2) ConvertFToS 1855 + 1857: 7(fvec4) ImageRead 1854 1856 + 1858: 7(fvec4) Load 1841(texel) + 1859: 7(fvec4) FAdd 1858 1857 + Store 1841(texel) 1859 + 1863: 1860 Load 1862(i3D) + 1864: 148(fvec3) Load 150(c3) + 1865: 458(ivec3) ConvertFToS 1864 + 1866: 7(fvec4) ImageRead 1863 1865 + 1867: 7(fvec4) Load 1841(texel) + 1868: 7(fvec4) FAdd 1867 1866 + Store 1841(texel) 1868 + 1872: 1869 Load 1871(i2DRect) + 1873: 52(fvec2) Load 138(c2) + 1874: 451(ivec2) ConvertFToS 1873 + 1875: 7(fvec4) ImageRead 1872 1874 + 1876: 7(fvec4) Load 1841(texel) + 1877: 7(fvec4) FAdd 1876 1875 + Store 1841(texel) 1877 + 1881: 1878 Load 1880(iCube) + 1882: 148(fvec3) Load 150(c3) + 1883: 458(ivec3) ConvertFToS 1882 + 1884: 7(fvec4) ImageRead 1881 1883 + 1885: 7(fvec4) Load 1841(texel) + 1886: 7(fvec4) FAdd 1885 1884 + Store 1841(texel) 1886 + 1890: 1887 Load 1889(iBuffer) + 1891: 6(float) Load 127(c1) + 1892: 47(int) ConvertFToS 1891 + 1893: 7(fvec4) ImageRead 1890 1892 + 1894: 7(fvec4) Load 1841(texel) + 1895: 7(fvec4) FAdd 1894 1893 + Store 1841(texel) 1895 + 1899: 1896 Load 1898(i1DArray) + 1900: 52(fvec2) Load 138(c2) + 1901: 451(ivec2) ConvertFToS 1900 + 1902: 7(fvec4) ImageRead 1899 1901 + 1903: 7(fvec4) Load 1841(texel) + 1904: 7(fvec4) FAdd 1903 1902 + Store 1841(texel) 1904 + 1908: 1905 Load 1907(i2DArray) + 1909: 148(fvec3) Load 150(c3) + 1910: 458(ivec3) ConvertFToS 1909 + 1911: 7(fvec4) ImageRead 1908 1910 + 1912: 7(fvec4) Load 1841(texel) + 1913: 7(fvec4) FAdd 1912 1911 + Store 1841(texel) 1913 + 1917: 1914 Load 1916(iCubeArray) + 1918: 148(fvec3) Load 150(c3) + 1919: 458(ivec3) ConvertFToS 1918 + 1920: 7(fvec4) ImageRead 1917 1919 + 1921: 7(fvec4) Load 1841(texel) + 1922: 7(fvec4) FAdd 1921 1920 + Store 1841(texel) 1922 + 1926: 1923 Load 1925(i2DMS) + 1927: 52(fvec2) Load 138(c2) + 1928: 451(ivec2) ConvertFToS 1927 + 1929: 7(fvec4) ImageRead 1926 1928 Sample 445 + 1930: 7(fvec4) Load 1841(texel) + 1931: 7(fvec4) FAdd 1930 1929 + Store 1841(texel) 1931 + 1935: 1932 Load 1934(i2DMSArray) + 1936: 148(fvec3) Load 150(c3) + 1937: 458(ivec3) ConvertFToS 1936 + 1938: 7(fvec4) ImageRead 1935 1937 Sample 445 + 1939: 7(fvec4) Load 1841(texel) + 1940: 7(fvec4) FAdd 1939 1938 + Store 1841(texel) 1940 + 1941: 7(fvec4) Load 1841(texel) + ReturnValue 1941 + FunctionEnd +66(testImageStore(vf4;): 2 Function None 64 + 65(data): 63(ptr) FunctionParameter + 67: Label + 1944: 1842 Load 1844(i1D) + 1945: 6(float) Load 127(c1) + 1946: 47(int) ConvertFToS 1945 + 1947: 7(fvec4) Load 65(data) + ImageWrite 1944 1946 1947 + 1948: 1851 Load 1853(i2D) + 1949: 52(fvec2) Load 138(c2) + 1950: 451(ivec2) ConvertFToS 1949 + 1951: 7(fvec4) Load 65(data) + ImageWrite 1948 1950 1951 + 1952: 1860 Load 1862(i3D) + 1953: 148(fvec3) Load 150(c3) + 1954: 458(ivec3) ConvertFToS 1953 + 1955: 7(fvec4) Load 65(data) + ImageWrite 1952 1954 1955 + 1956: 1869 Load 1871(i2DRect) + 1957: 52(fvec2) Load 138(c2) + 1958: 451(ivec2) ConvertFToS 1957 + 1959: 7(fvec4) Load 65(data) + ImageWrite 1956 1958 1959 + 1960: 1878 Load 1880(iCube) + 1961: 148(fvec3) Load 150(c3) + 1962: 458(ivec3) ConvertFToS 1961 + 1963: 7(fvec4) Load 65(data) + ImageWrite 1960 1962 1963 + 1964: 1887 Load 1889(iBuffer) + 1965: 6(float) Load 127(c1) + 1966: 47(int) ConvertFToS 1965 + 1967: 7(fvec4) Load 65(data) + ImageWrite 1964 1966 1967 + 1968: 1896 Load 1898(i1DArray) + 1969: 52(fvec2) Load 138(c2) + 1970: 451(ivec2) ConvertFToS 1969 + 1971: 7(fvec4) Load 65(data) + ImageWrite 1968 1970 1971 + 1972: 1905 Load 1907(i2DArray) + 1973: 148(fvec3) Load 150(c3) + 1974: 458(ivec3) ConvertFToS 1973 + 1975: 7(fvec4) Load 65(data) + ImageWrite 1972 1974 1975 + 1976: 1914 Load 1916(iCubeArray) + 1977: 148(fvec3) Load 150(c3) + 1978: 458(ivec3) ConvertFToS 1977 + 1979: 7(fvec4) Load 65(data) + ImageWrite 1976 1978 1979 + 1980: 1923 Load 1925(i2DMS) + 1981: 52(fvec2) Load 138(c2) + 1982: 451(ivec2) ConvertFToS 1981 + 1983: 7(fvec4) Load 65(data) + ImageWrite 1980 1982 1983 Sample 445 + 1984: 1932 Load 1934(i2DMSArray) + 1985: 148(fvec3) Load 150(c3) + 1986: 458(ivec3) ConvertFToS 1985 + 1987: 7(fvec4) Load 65(data) + ImageWrite 1984 1986 1987 Sample 445 + Return + FunctionEnd +68(testSparseTexture(): 7(fvec4) Function None 8 + 69: Label + 1988(texel): 63(ptr) Variable Function + Store 1988(texel) 120 + 1989: 133 Load 135(s2D) + 1990: 52(fvec2) Load 138(c2) + 1992:1991(ResType) ImageSparseSampleImplicitLod 1989 1990 + 1993: 7(fvec4) CompositeExtract 1992 1 + Store 1988(texel) 1993 + 1994: 47(int) CompositeExtract 1992 0 + 1995: 144 Load 146(s3D) + 1996: 148(fvec3) Load 150(c3) + 1997:1991(ResType) ImageSparseSampleImplicitLod 1995 1996 + 1998: 7(fvec4) CompositeExtract 1997 1 + Store 1988(texel) 1998 + 1999: 47(int) CompositeExtract 1997 0 + 2000: 156 Load 158(sCube) + 2001: 148(fvec3) Load 150(c3) + 2002:1991(ResType) ImageSparseSampleImplicitLod 2000 2001 + 2003: 7(fvec4) CompositeExtract 2002 1 + Store 1988(texel) 2003 + 2004: 47(int) CompositeExtract 2002 0 + 2005: 180 Load 182(s2DShadow) + 2006: 148(fvec3) Load 150(c3) + 2007: 174(ptr) AccessChain 1988(texel) 173 + 2008: 6(float) CompositeExtract 2006 2 + 2010:2009(ResType) ImageSparseSampleDrefImplicitLod 2005 2006 2008 + 2011: 6(float) CompositeExtract 2010 1 + Store 2007 2011 + 2012: 47(int) CompositeExtract 2010 0 + 2013: 192 Load 194(sCubeShadow) + 2014: 7(fvec4) Load 197(c4) + 2015: 174(ptr) AccessChain 1988(texel) 173 + 2016: 6(float) CompositeExtract 2014 3 + 2017:2009(ResType) ImageSparseSampleDrefImplicitLod 2013 2014 2016 + 2018: 6(float) CompositeExtract 2017 1 + Store 2015 2018 + 2019: 47(int) CompositeExtract 2017 0 + 2020: 215 Load 217(s2DArray) + 2021: 148(fvec3) Load 150(c3) + 2022:1991(ResType) ImageSparseSampleImplicitLod 2020 2021 + 2023: 7(fvec4) CompositeExtract 2022 1 + Store 1988(texel) 2023 + 2024: 47(int) CompositeExtract 2022 0 + 2025: 224 Load 226(sCubeArray) + 2026: 7(fvec4) Load 197(c4) + 2027:1991(ResType) ImageSparseSampleImplicitLod 2025 2026 + 2028: 7(fvec4) CompositeExtract 2027 1 + Store 1988(texel) 2028 + 2029: 47(int) CompositeExtract 2027 0 + 2030: 245 Load 247(s2DArrayShadow) + 2031: 7(fvec4) Load 197(c4) + 2032: 174(ptr) AccessChain 1988(texel) 173 + 2033: 6(float) CompositeExtract 2031 3 + 2034:2009(ResType) ImageSparseSampleDrefImplicitLod 2030 2031 2033 + 2035: 6(float) CompositeExtract 2034 1 + Store 2032 2035 + 2036: 47(int) CompositeExtract 2034 0 + 2037: 257 Load 259(s2DRect) + 2038: 52(fvec2) Load 138(c2) + 2039:1991(ResType) ImageSparseSampleImplicitLod 2037 2038 + 2040: 7(fvec4) CompositeExtract 2039 1 + Store 1988(texel) 2040 + 2041: 47(int) CompositeExtract 2039 0 + 2042: 266 Load 268(s2DRectShadow) + 2043: 148(fvec3) Load 150(c3) + 2044: 174(ptr) AccessChain 1988(texel) 173 + 2045: 6(float) CompositeExtract 2043 2 + 2046:2009(ResType) ImageSparseSampleDrefImplicitLod 2042 2043 2045 + 2047: 6(float) CompositeExtract 2046 1 + Store 2044 2047 + 2048: 47(int) CompositeExtract 2046 0 + 2049: 278 Load 280(sCubeArrayShadow) + 2050: 7(fvec4) Load 197(c4) + 2051: 6(float) Load 283(compare) + 2052: 174(ptr) AccessChain 1988(texel) 173 + 2053:2009(ResType) ImageSparseSampleDrefImplicitLod 2049 2050 2051 + 2054: 6(float) CompositeExtract 2053 1 + Store 2052 2054 + 2055: 47(int) CompositeExtract 2053 0 + 2056: 7(fvec4) Load 1988(texel) + ReturnValue 2056 + FunctionEnd +70(testSparseTextureLod(): 7(fvec4) Function None 8 + 71: Label + 2059(texel): 63(ptr) Variable Function + Store 2059(texel) 120 + 2060: 133 Load 135(s2D) + 2061: 52(fvec2) Load 138(c2) + 2062: 6(float) Load 371(lod) + 2063:1991(ResType) ImageSparseSampleExplicitLod 2060 2061 Lod 2062 + 2064: 7(fvec4) CompositeExtract 2063 1 + Store 2059(texel) 2064 + 2065: 47(int) CompositeExtract 2063 0 + 2066: 144 Load 146(s3D) + 2067: 148(fvec3) Load 150(c3) + 2068: 6(float) Load 371(lod) + 2069:1991(ResType) ImageSparseSampleExplicitLod 2066 2067 Lod 2068 + 2070: 7(fvec4) CompositeExtract 2069 1 + Store 2059(texel) 2070 + 2071: 47(int) CompositeExtract 2069 0 + 2072: 156 Load 158(sCube) + 2073: 148(fvec3) Load 150(c3) + 2074: 6(float) Load 371(lod) + 2075:1991(ResType) ImageSparseSampleExplicitLod 2072 2073 Lod 2074 + 2076: 7(fvec4) CompositeExtract 2075 1 + Store 2059(texel) 2076 + 2077: 47(int) CompositeExtract 2075 0 + 2078: 180 Load 182(s2DShadow) + 2079: 148(fvec3) Load 150(c3) + 2080: 6(float) Load 371(lod) + 2081: 174(ptr) AccessChain 2059(texel) 173 + 2082: 6(float) CompositeExtract 2079 2 + 2083:2009(ResType) ImageSparseSampleDrefExplicitLod 2078 2079 2082 Lod 2080 + 2084: 6(float) CompositeExtract 2083 1 + Store 2081 2084 + 2085: 47(int) CompositeExtract 2083 0 + 2086: 215 Load 217(s2DArray) + 2087: 148(fvec3) Load 150(c3) + 2088: 6(float) Load 371(lod) + 2089:1991(ResType) ImageSparseSampleExplicitLod 2086 2087 Lod 2088 + 2090: 7(fvec4) CompositeExtract 2089 1 + Store 2059(texel) 2090 + 2091: 47(int) CompositeExtract 2089 0 + 2092: 224 Load 226(sCubeArray) + 2093: 7(fvec4) Load 197(c4) + 2094: 6(float) Load 371(lod) + 2095:1991(ResType) ImageSparseSampleExplicitLod 2092 2093 Lod 2094 + 2096: 7(fvec4) CompositeExtract 2095 1 + Store 2059(texel) 2096 + 2097: 47(int) CompositeExtract 2095 0 + 2098: 7(fvec4) Load 2059(texel) + ReturnValue 2098 + FunctionEnd +72(testSparseTextureOffset(): 7(fvec4) Function None 8 + 73: Label + 2101(texel): 63(ptr) Variable Function + Store 2101(texel) 120 + 2102: 133 Load 135(s2D) + 2103: 52(fvec2) Load 138(c2) + 2104:1991(ResType) ImageSparseSampleImplicitLod 2102 2103 ConstOffset 452 + 2105: 7(fvec4) CompositeExtract 2104 1 + Store 2101(texel) 2105 + 2106: 47(int) CompositeExtract 2104 0 + 2107: 144 Load 146(s3D) + 2108: 148(fvec3) Load 150(c3) + 2109:1991(ResType) ImageSparseSampleImplicitLod 2107 2108 ConstOffset 459 + 2110: 7(fvec4) CompositeExtract 2109 1 + Store 2101(texel) 2110 + 2111: 47(int) CompositeExtract 2109 0 + 2112: 257 Load 259(s2DRect) + 2113: 52(fvec2) Load 138(c2) + 2114:1991(ResType) ImageSparseSampleImplicitLod 2112 2113 ConstOffset 452 + 2115: 7(fvec4) CompositeExtract 2114 1 + Store 2101(texel) 2115 + 2116: 47(int) CompositeExtract 2114 0 + 2117: 266 Load 268(s2DRectShadow) + 2118: 148(fvec3) Load 150(c3) + 2119: 174(ptr) AccessChain 2101(texel) 173 + 2120: 6(float) CompositeExtract 2118 2 + 2121:2009(ResType) ImageSparseSampleDrefImplicitLod 2117 2118 2120 ConstOffset 452 + 2122: 6(float) CompositeExtract 2121 1 + Store 2119 2122 + 2123: 47(int) CompositeExtract 2121 0 + 2124: 180 Load 182(s2DShadow) + 2125: 148(fvec3) Load 150(c3) + 2126: 174(ptr) AccessChain 2101(texel) 173 + 2127: 6(float) CompositeExtract 2125 2 + 2128:2009(ResType) ImageSparseSampleDrefImplicitLod 2124 2125 2127 ConstOffset 452 + 2129: 6(float) CompositeExtract 2128 1 + Store 2126 2129 + 2130: 47(int) CompositeExtract 2128 0 + 2131: 215 Load 217(s2DArray) + 2132: 148(fvec3) Load 150(c3) + 2133:1991(ResType) ImageSparseSampleImplicitLod 2131 2132 ConstOffset 452 + 2134: 7(fvec4) CompositeExtract 2133 1 + Store 2101(texel) 2134 + 2135: 47(int) CompositeExtract 2133 0 + 2136: 245 Load 247(s2DArrayShadow) + 2137: 7(fvec4) Load 197(c4) + 2138: 174(ptr) AccessChain 2101(texel) 173 + 2139: 6(float) CompositeExtract 2137 3 + 2140:2009(ResType) ImageSparseSampleDrefImplicitLod 2136 2137 2139 ConstOffset 452 + 2141: 6(float) CompositeExtract 2140 1 + Store 2138 2141 + 2142: 47(int) CompositeExtract 2140 0 + 2143: 7(fvec4) Load 2101(texel) + ReturnValue 2143 + FunctionEnd +74(testSparseTextureLodOffset(): 7(fvec4) Function None 8 + 75: Label + 2146(texel): 63(ptr) Variable Function + Store 2146(texel) 120 + 2147: 133 Load 135(s2D) + 2148: 52(fvec2) Load 138(c2) + 2149: 6(float) Load 371(lod) + 2150:1991(ResType) ImageSparseSampleExplicitLod 2147 2148 Lod ConstOffset 2149 452 + 2151: 7(fvec4) CompositeExtract 2150 1 + Store 2146(texel) 2151 + 2152: 47(int) CompositeExtract 2150 0 + 2153: 144 Load 146(s3D) + 2154: 148(fvec3) Load 150(c3) + 2155: 6(float) Load 371(lod) + 2156:1991(ResType) ImageSparseSampleExplicitLod 2153 2154 Lod ConstOffset 2155 459 + 2157: 7(fvec4) CompositeExtract 2156 1 + Store 2146(texel) 2157 + 2158: 47(int) CompositeExtract 2156 0 + 2159: 180 Load 182(s2DShadow) + 2160: 148(fvec3) Load 150(c3) + 2161: 6(float) Load 371(lod) + 2162: 174(ptr) AccessChain 2146(texel) 173 + 2163: 6(float) CompositeExtract 2160 2 + 2164:2009(ResType) ImageSparseSampleDrefExplicitLod 2159 2160 2163 Lod ConstOffset 2161 452 + 2165: 6(float) CompositeExtract 2164 1 + Store 2162 2165 + 2166: 47(int) CompositeExtract 2164 0 + 2167: 215 Load 217(s2DArray) + 2168: 148(fvec3) Load 150(c3) + 2169: 6(float) Load 371(lod) + 2170:1991(ResType) ImageSparseSampleExplicitLod 2167 2168 Lod ConstOffset 2169 452 + 2171: 7(fvec4) CompositeExtract 2170 1 + Store 2146(texel) 2171 + 2172: 47(int) CompositeExtract 2170 0 + 2173: 7(fvec4) Load 2146(texel) + ReturnValue 2173 + FunctionEnd +76(testSparseTextureGrad(): 7(fvec4) Function None 8 + 77: Label + 2176(texel): 63(ptr) Variable Function + Store 2176(texel) 120 + 2177: 133 Load 135(s2D) + 2178: 52(fvec2) Load 138(c2) + 2179: 52(fvec2) Load 874(dPdxy2) + 2180: 52(fvec2) Load 874(dPdxy2) + 2181:1991(ResType) ImageSparseSampleExplicitLod 2177 2178 Grad 2179 2180 + 2182: 7(fvec4) CompositeExtract 2181 1 + Store 2176(texel) 2182 + 2183: 47(int) CompositeExtract 2181 0 + 2184: 144 Load 146(s3D) + 2185: 148(fvec3) Load 150(c3) + 2186: 148(fvec3) Load 882(dPdxy3) + 2187: 148(fvec3) Load 882(dPdxy3) + 2188:1991(ResType) ImageSparseSampleExplicitLod 2184 2185 Grad 2186 2187 + 2189: 7(fvec4) CompositeExtract 2188 1 + Store 2176(texel) 2189 + 2190: 47(int) CompositeExtract 2188 0 + 2191: 156 Load 158(sCube) + 2192: 148(fvec3) Load 150(c3) + 2193: 148(fvec3) Load 882(dPdxy3) + 2194: 148(fvec3) Load 882(dPdxy3) + 2195:1991(ResType) ImageSparseSampleExplicitLod 2191 2192 Grad 2193 2194 + 2196: 7(fvec4) CompositeExtract 2195 1 + Store 2176(texel) 2196 + 2197: 47(int) CompositeExtract 2195 0 + 2198: 257 Load 259(s2DRect) + 2199: 52(fvec2) Load 138(c2) + 2200: 52(fvec2) Load 874(dPdxy2) + 2201: 52(fvec2) Load 874(dPdxy2) + 2202:1991(ResType) ImageSparseSampleExplicitLod 2198 2199 Grad 2200 2201 + 2203: 7(fvec4) CompositeExtract 2202 1 + Store 2176(texel) 2203 + 2204: 47(int) CompositeExtract 2202 0 + 2205: 266 Load 268(s2DRectShadow) + 2206: 148(fvec3) Load 150(c3) + 2207: 52(fvec2) Load 874(dPdxy2) + 2208: 52(fvec2) Load 874(dPdxy2) + 2209: 174(ptr) AccessChain 2176(texel) 173 + 2210: 6(float) CompositeExtract 2206 2 + 2211:2009(ResType) ImageSparseSampleDrefExplicitLod 2205 2206 2210 Grad 2207 2208 + 2212: 6(float) CompositeExtract 2211 1 + Store 2209 2212 + 2213: 47(int) CompositeExtract 2211 0 + 2214: 180 Load 182(s2DShadow) + 2215: 148(fvec3) Load 150(c3) + 2216: 52(fvec2) Load 874(dPdxy2) + 2217: 52(fvec2) Load 874(dPdxy2) + 2218: 174(ptr) AccessChain 2176(texel) 173 + 2219: 6(float) CompositeExtract 2215 2 + 2220:2009(ResType) ImageSparseSampleDrefExplicitLod 2214 2215 2219 Grad 2216 2217 + 2221: 6(float) CompositeExtract 2220 1 + Store 2218 2221 + 2222: 47(int) CompositeExtract 2220 0 + 2223: 192 Load 194(sCubeShadow) + 2224: 7(fvec4) Load 197(c4) + 2225: 148(fvec3) Load 882(dPdxy3) + 2226: 148(fvec3) Load 882(dPdxy3) + 2227: 174(ptr) AccessChain 2176(texel) 173 + 2228: 6(float) CompositeExtract 2224 3 + 2229:2009(ResType) ImageSparseSampleDrefExplicitLod 2223 2224 2228 Grad 2225 2226 + 2230: 6(float) CompositeExtract 2229 1 + Store 2227 2230 + 2231: 47(int) CompositeExtract 2229 0 + 2232: 215 Load 217(s2DArray) + 2233: 148(fvec3) Load 150(c3) + 2234: 52(fvec2) Load 874(dPdxy2) + 2235: 52(fvec2) Load 874(dPdxy2) + 2236:1991(ResType) ImageSparseSampleExplicitLod 2232 2233 Grad 2234 2235 + 2237: 7(fvec4) CompositeExtract 2236 1 + Store 2176(texel) 2237 + 2238: 47(int) CompositeExtract 2236 0 + 2239: 245 Load 247(s2DArrayShadow) + 2240: 7(fvec4) Load 197(c4) + 2241: 52(fvec2) Load 874(dPdxy2) + 2242: 52(fvec2) Load 874(dPdxy2) + 2243: 174(ptr) AccessChain 2176(texel) 173 + 2244: 6(float) CompositeExtract 2240 3 + 2245:2009(ResType) ImageSparseSampleDrefExplicitLod 2239 2240 2244 Grad 2241 2242 + 2246: 6(float) CompositeExtract 2245 1 + Store 2243 2246 + 2247: 47(int) CompositeExtract 2245 0 + 2248: 224 Load 226(sCubeArray) + 2249: 7(fvec4) Load 197(c4) + 2250: 148(fvec3) Load 882(dPdxy3) + 2251: 148(fvec3) Load 882(dPdxy3) + 2252:1991(ResType) ImageSparseSampleExplicitLod 2248 2249 Grad 2250 2251 + 2253: 7(fvec4) CompositeExtract 2252 1 + Store 2176(texel) 2253 + 2254: 47(int) CompositeExtract 2252 0 + 2255: 7(fvec4) Load 2176(texel) + ReturnValue 2255 + FunctionEnd +78(testSparseTextureGradOffset(): 7(fvec4) Function None 8 + 79: Label + 2258(texel): 63(ptr) Variable Function + Store 2258(texel) 120 + 2259: 133 Load 135(s2D) + 2260: 52(fvec2) Load 138(c2) + 2261: 52(fvec2) Load 874(dPdxy2) + 2262: 52(fvec2) Load 874(dPdxy2) + 2263:1991(ResType) ImageSparseSampleExplicitLod 2259 2260 Grad ConstOffset 2261 2262 452 + 2264: 7(fvec4) CompositeExtract 2263 1 + Store 2258(texel) 2264 + 2265: 47(int) CompositeExtract 2263 0 + 2266: 144 Load 146(s3D) + 2267: 148(fvec3) Load 150(c3) + 2268: 148(fvec3) Load 882(dPdxy3) + 2269: 148(fvec3) Load 882(dPdxy3) + 2270:1991(ResType) ImageSparseSampleExplicitLod 2266 2267 Grad ConstOffset 2268 2269 459 + 2271: 7(fvec4) CompositeExtract 2270 1 + Store 2258(texel) 2271 + 2272: 47(int) CompositeExtract 2270 0 + 2273: 257 Load 259(s2DRect) + 2274: 52(fvec2) Load 138(c2) + 2275: 52(fvec2) Load 874(dPdxy2) + 2276: 52(fvec2) Load 874(dPdxy2) + 2277:1991(ResType) ImageSparseSampleExplicitLod 2273 2274 Grad ConstOffset 2275 2276 452 + 2278: 7(fvec4) CompositeExtract 2277 1 + Store 2258(texel) 2278 + 2279: 47(int) CompositeExtract 2277 0 + 2280: 266 Load 268(s2DRectShadow) + 2281: 148(fvec3) Load 150(c3) + 2282: 52(fvec2) Load 874(dPdxy2) + 2283: 52(fvec2) Load 874(dPdxy2) + 2284: 174(ptr) AccessChain 2258(texel) 173 + 2285: 6(float) CompositeExtract 2281 2 + 2286:2009(ResType) ImageSparseSampleDrefExplicitLod 2280 2281 2285 Grad ConstOffset 2282 2283 452 + 2287: 6(float) CompositeExtract 2286 1 + Store 2284 2287 + 2288: 47(int) CompositeExtract 2286 0 + 2289: 180 Load 182(s2DShadow) + 2290: 148(fvec3) Load 150(c3) + 2291: 52(fvec2) Load 874(dPdxy2) + 2292: 52(fvec2) Load 874(dPdxy2) + 2293: 174(ptr) AccessChain 2258(texel) 173 + 2294: 6(float) CompositeExtract 2290 2 + 2295:2009(ResType) ImageSparseSampleDrefExplicitLod 2289 2290 2294 Grad ConstOffset 2291 2292 452 + 2296: 6(float) CompositeExtract 2295 1 + Store 2293 2296 + 2297: 47(int) CompositeExtract 2295 0 + 2298: 215 Load 217(s2DArray) + 2299: 148(fvec3) Load 150(c3) + 2300: 52(fvec2) Load 874(dPdxy2) + 2301: 52(fvec2) Load 874(dPdxy2) + 2302:1991(ResType) ImageSparseSampleExplicitLod 2298 2299 Grad ConstOffset 2300 2301 452 + 2303: 7(fvec4) CompositeExtract 2302 1 + Store 2258(texel) 2303 + 2304: 47(int) CompositeExtract 2302 0 + 2305: 245 Load 247(s2DArrayShadow) + 2306: 7(fvec4) Load 197(c4) + 2307: 52(fvec2) Load 874(dPdxy2) + 2308: 52(fvec2) Load 874(dPdxy2) + 2309: 174(ptr) AccessChain 2258(texel) 173 + 2310: 6(float) CompositeExtract 2306 3 + 2311:2009(ResType) ImageSparseSampleDrefExplicitLod 2305 2306 2310 Grad ConstOffset 2307 2308 452 + 2312: 6(float) CompositeExtract 2311 1 + Store 2309 2312 + 2313: 47(int) CompositeExtract 2311 0 + 2314: 7(fvec4) Load 2258(texel) + ReturnValue 2314 + FunctionEnd +80(testSparseTexelFetch(): 7(fvec4) Function None 8 + 81: Label + 2317(texel): 63(ptr) Variable Function + Store 2317(texel) 120 + 2318: 133 Load 135(s2D) + 2319: 52(fvec2) Load 138(c2) + 2320: 451(ivec2) ConvertFToS 2319 + 2321: 6(float) Load 371(lod) + 2322: 47(int) ConvertFToS 2321 + 2323: 132 Image 2318 + 2324:1991(ResType) ImageSparseFetch 2323 2320 Lod 2322 + 2325: 7(fvec4) CompositeExtract 2324 1 + Store 2317(texel) 2325 + 2326: 47(int) CompositeExtract 2324 0 + 2327: 144 Load 146(s3D) + 2328: 148(fvec3) Load 150(c3) + 2329: 458(ivec3) ConvertFToS 2328 + 2330: 6(float) Load 371(lod) + 2331: 47(int) ConvertFToS 2330 + 2332: 143 Image 2327 + 2333:1991(ResType) ImageSparseFetch 2332 2329 Lod 2331 + 2334: 7(fvec4) CompositeExtract 2333 1 + Store 2317(texel) 2334 + 2335: 47(int) CompositeExtract 2333 0 + 2336: 257 Load 259(s2DRect) + 2337: 52(fvec2) Load 138(c2) + 2338: 451(ivec2) ConvertFToS 2337 + 2339: 256 Image 2336 + 2340:1991(ResType) ImageSparseFetch 2339 2338 + 2341: 7(fvec4) CompositeExtract 2340 1 + Store 2317(texel) 2341 + 2342: 47(int) CompositeExtract 2340 0 + 2343: 215 Load 217(s2DArray) + 2344: 148(fvec3) Load 150(c3) + 2345: 458(ivec3) ConvertFToS 2344 + 2346: 6(float) Load 371(lod) + 2347: 47(int) ConvertFToS 2346 + 2348: 214 Image 2343 + 2349:1991(ResType) ImageSparseFetch 2348 2345 Lod 2347 + 2350: 7(fvec4) CompositeExtract 2349 1 + Store 2317(texel) 2350 + 2351: 47(int) CompositeExtract 2349 0 + 2352: 782 Load 784(s2DMS) + 2353: 52(fvec2) Load 138(c2) + 2354: 451(ivec2) ConvertFToS 2353 + 2355: 781 Image 2352 + 2356:1991(ResType) ImageSparseFetch 2355 2354 Sample 445 + 2357: 7(fvec4) CompositeExtract 2356 1 + Store 2317(texel) 2357 + 2358: 47(int) CompositeExtract 2356 0 + 2359: 793 Load 795(s2DMSArray) + 2360: 148(fvec3) Load 150(c3) + 2361: 458(ivec3) ConvertFToS 2360 + 2362: 792 Image 2359 + 2363:1991(ResType) ImageSparseFetch 2362 2361 Sample 799 + 2364: 7(fvec4) CompositeExtract 2363 1 + Store 2317(texel) 2364 + 2365: 47(int) CompositeExtract 2363 0 + 2366: 7(fvec4) Load 2317(texel) + ReturnValue 2366 + FunctionEnd +82(testSparseTexelFetchOffset(): 7(fvec4) Function None 8 + 83: Label + 2369(texel): 63(ptr) Variable Function + Store 2369(texel) 120 + 2370: 133 Load 135(s2D) + 2371: 52(fvec2) Load 138(c2) + 2372: 451(ivec2) ConvertFToS 2371 + 2373: 6(float) Load 371(lod) + 2374: 47(int) ConvertFToS 2373 + 2375: 132 Image 2370 + 2376:1991(ResType) ImageSparseFetch 2375 2372 Lod ConstOffset 2374 452 + 2377: 7(fvec4) CompositeExtract 2376 1 + Store 2369(texel) 2377 + 2378: 47(int) CompositeExtract 2376 0 + 2379: 144 Load 146(s3D) + 2380: 148(fvec3) Load 150(c3) + 2381: 458(ivec3) ConvertFToS 2380 + 2382: 6(float) Load 371(lod) + 2383: 47(int) ConvertFToS 2382 + 2384: 143 Image 2379 + 2385:1991(ResType) ImageSparseFetch 2384 2381 Lod ConstOffset 2383 459 + 2386: 7(fvec4) CompositeExtract 2385 1 + Store 2369(texel) 2386 + 2387: 47(int) CompositeExtract 2385 0 + 2388: 257 Load 259(s2DRect) + 2389: 52(fvec2) Load 138(c2) + 2390: 451(ivec2) ConvertFToS 2389 + 2391: 256 Image 2388 + 2392:1991(ResType) ImageSparseFetch 2391 2390 ConstOffset 452 + 2393: 7(fvec4) CompositeExtract 2392 1 + Store 2369(texel) 2393 + 2394: 47(int) CompositeExtract 2392 0 + 2395: 215 Load 217(s2DArray) + 2396: 148(fvec3) Load 150(c3) + 2397: 458(ivec3) ConvertFToS 2396 + 2398: 6(float) Load 371(lod) + 2399: 47(int) ConvertFToS 2398 + 2400: 214 Image 2395 + 2401:1991(ResType) ImageSparseFetch 2400 2397 Lod ConstOffset 2399 452 + 2402: 7(fvec4) CompositeExtract 2401 1 + Store 2369(texel) 2402 + 2403: 47(int) CompositeExtract 2401 0 + 2404: 7(fvec4) Load 2369(texel) + ReturnValue 2404 + FunctionEnd +84(testSparseTextureGather(): 7(fvec4) Function None 8 + 85: Label + 2407(texel): 63(ptr) Variable Function + Store 2407(texel) 120 + 2408: 133 Load 135(s2D) + 2409: 52(fvec2) Load 138(c2) + 2410:1991(ResType) ImageSparseGather 2408 2409 1275 + 2411: 7(fvec4) CompositeExtract 2410 1 + Store 2407(texel) 2411 + 2412: 47(int) CompositeExtract 2410 0 + 2413: 215 Load 217(s2DArray) + 2414: 148(fvec3) Load 150(c3) + 2415:1991(ResType) ImageSparseGather 2413 2414 1275 + 2416: 7(fvec4) CompositeExtract 2415 1 + Store 2407(texel) 2416 + 2417: 47(int) CompositeExtract 2415 0 + 2418: 156 Load 158(sCube) + 2419: 148(fvec3) Load 150(c3) + 2420:1991(ResType) ImageSparseGather 2418 2419 1275 + 2421: 7(fvec4) CompositeExtract 2420 1 + Store 2407(texel) 2421 + 2422: 47(int) CompositeExtract 2420 0 + 2423: 224 Load 226(sCubeArray) + 2424: 7(fvec4) Load 197(c4) + 2425:1991(ResType) ImageSparseGather 2423 2424 1275 + 2426: 7(fvec4) CompositeExtract 2425 1 + Store 2407(texel) 2426 + 2427: 47(int) CompositeExtract 2425 0 + 2428: 257 Load 259(s2DRect) + 2429: 52(fvec2) Load 138(c2) + 2430:1991(ResType) ImageSparseGather 2428 2429 1275 + 2431: 7(fvec4) CompositeExtract 2430 1 + Store 2407(texel) 2431 + 2432: 47(int) CompositeExtract 2430 0 + 2433: 180 Load 182(s2DShadow) + 2434: 52(fvec2) Load 138(c2) + 2435: 6(float) Load 283(compare) + 2436:1991(ResType) ImageSparseDrefGather 2433 2434 2435 + 2437: 7(fvec4) CompositeExtract 2436 1 + Store 2407(texel) 2437 + 2438: 47(int) CompositeExtract 2436 0 + 2439: 245 Load 247(s2DArrayShadow) + 2440: 148(fvec3) Load 150(c3) + 2441: 6(float) Load 283(compare) + 2442:1991(ResType) ImageSparseDrefGather 2439 2440 2441 + 2443: 7(fvec4) CompositeExtract 2442 1 + Store 2407(texel) 2443 + 2444: 47(int) CompositeExtract 2442 0 + 2445: 192 Load 194(sCubeShadow) + 2446: 148(fvec3) Load 150(c3) + 2447: 6(float) Load 283(compare) + 2448:1991(ResType) ImageSparseDrefGather 2445 2446 2447 + 2449: 7(fvec4) CompositeExtract 2448 1 + Store 2407(texel) 2449 + 2450: 47(int) CompositeExtract 2448 0 + 2451: 278 Load 280(sCubeArrayShadow) + 2452: 7(fvec4) Load 197(c4) + 2453: 6(float) Load 283(compare) + 2454:1991(ResType) ImageSparseDrefGather 2451 2452 2453 + 2455: 7(fvec4) CompositeExtract 2454 1 + Store 2407(texel) 2455 + 2456: 47(int) CompositeExtract 2454 0 + 2457: 266 Load 268(s2DRectShadow) + 2458: 52(fvec2) Load 138(c2) + 2459: 6(float) Load 283(compare) + 2460:1991(ResType) ImageSparseDrefGather 2457 2458 2459 + 2461: 7(fvec4) CompositeExtract 2460 1 + Store 2407(texel) 2461 + 2462: 47(int) CompositeExtract 2460 0 + 2463: 7(fvec4) Load 2407(texel) + ReturnValue 2463 + FunctionEnd +86(testSparseTextureGatherOffset(): 7(fvec4) Function None 8 + 87: Label + 2466(texel): 63(ptr) Variable Function + Store 2466(texel) 120 + 2467: 133 Load 135(s2D) + 2468: 52(fvec2) Load 138(c2) + 2469:1991(ResType) ImageSparseGather 2467 2468 1275 ConstOffset 452 + 2470: 7(fvec4) CompositeExtract 2469 1 + Store 2466(texel) 2470 + 2471: 47(int) CompositeExtract 2469 0 + 2472: 215 Load 217(s2DArray) + 2473: 148(fvec3) Load 150(c3) + 2474:1991(ResType) ImageSparseGather 2472 2473 1275 ConstOffset 452 + 2475: 7(fvec4) CompositeExtract 2474 1 + Store 2466(texel) 2475 + 2476: 47(int) CompositeExtract 2474 0 + 2477: 257 Load 259(s2DRect) + 2478: 52(fvec2) Load 138(c2) + 2479:1991(ResType) ImageSparseGather 2477 2478 1275 ConstOffset 452 + 2480: 7(fvec4) CompositeExtract 2479 1 + Store 2466(texel) 2480 + 2481: 47(int) CompositeExtract 2479 0 + 2482: 180 Load 182(s2DShadow) + 2483: 52(fvec2) Load 138(c2) + 2484: 6(float) Load 283(compare) + 2485:1991(ResType) ImageSparseDrefGather 2482 2483 2484 ConstOffset 452 + 2486: 7(fvec4) CompositeExtract 2485 1 + Store 2466(texel) 2486 + 2487: 47(int) CompositeExtract 2485 0 + 2488: 245 Load 247(s2DArrayShadow) + 2489: 148(fvec3) Load 150(c3) + 2490: 6(float) Load 283(compare) + 2491:1991(ResType) ImageSparseDrefGather 2488 2489 2490 ConstOffset 452 + 2492: 7(fvec4) CompositeExtract 2491 1 + Store 2466(texel) 2492 + 2493: 47(int) CompositeExtract 2491 0 + 2494: 266 Load 268(s2DRectShadow) + 2495: 52(fvec2) Load 138(c2) + 2496: 6(float) Load 283(compare) + 2497:1991(ResType) ImageSparseDrefGather 2494 2495 2496 ConstOffset 452 + 2498: 7(fvec4) CompositeExtract 2497 1 + Store 2466(texel) 2498 + 2499: 47(int) CompositeExtract 2497 0 + 2500: 7(fvec4) Load 2466(texel) + ReturnValue 2500 + FunctionEnd +88(testSparseTextureGatherOffsets(): 7(fvec4) Function None 8 + 89: Label + 2503(texel): 63(ptr) Variable Function + Store 2503(texel) 120 + 2504: 133 Load 135(s2D) + 2505: 52(fvec2) Load 138(c2) + 2516:1991(ResType) ImageSparseGather 2504 2505 1275 ConstOffsets 2515 + 2517: 7(fvec4) CompositeExtract 2516 1 + Store 2503(texel) 2517 + 2518: 47(int) CompositeExtract 2516 0 + 2519: 215 Load 217(s2DArray) + 2520: 148(fvec3) Load 150(c3) + 2521:1991(ResType) ImageSparseGather 2519 2520 1275 ConstOffsets 2515 + 2522: 7(fvec4) CompositeExtract 2521 1 + Store 2503(texel) 2522 + 2523: 47(int) CompositeExtract 2521 0 + 2524: 257 Load 259(s2DRect) + 2525: 52(fvec2) Load 138(c2) + 2526:1991(ResType) ImageSparseGather 2524 2525 1275 ConstOffsets 2515 + 2527: 7(fvec4) CompositeExtract 2526 1 + Store 2503(texel) 2527 + 2528: 47(int) CompositeExtract 2526 0 + 2529: 180 Load 182(s2DShadow) + 2530: 52(fvec2) Load 138(c2) + 2531: 6(float) Load 283(compare) + 2532:1991(ResType) ImageSparseDrefGather 2529 2530 2531 ConstOffsets 2515 + 2533: 7(fvec4) CompositeExtract 2532 1 + Store 2503(texel) 2533 + 2534: 47(int) CompositeExtract 2532 0 + 2535: 245 Load 247(s2DArrayShadow) + 2536: 148(fvec3) Load 150(c3) + 2537: 6(float) Load 283(compare) + 2538:1991(ResType) ImageSparseDrefGather 2535 2536 2537 ConstOffsets 2515 + 2539: 7(fvec4) CompositeExtract 2538 1 + Store 2503(texel) 2539 + 2540: 47(int) CompositeExtract 2538 0 + 2541: 266 Load 268(s2DRectShadow) + 2542: 52(fvec2) Load 138(c2) + 2543: 6(float) Load 283(compare) + 2544:1991(ResType) ImageSparseDrefGather 2541 2542 2543 ConstOffsets 2515 + 2545: 7(fvec4) CompositeExtract 2544 1 + Store 2503(texel) 2545 + 2546: 47(int) CompositeExtract 2544 0 + 2547: 7(fvec4) Load 2503(texel) + ReturnValue 2547 + FunctionEnd +90(testSparseTextureGatherLod(): 7(fvec4) Function None 8 + 91: Label + 2550(texel): 63(ptr) Variable Function + Store 2550(texel) 120 + 2551: 133 Load 135(s2D) + 2552: 52(fvec2) Load 138(c2) + 2553: 6(float) Load 371(lod) + 2554:1991(ResType) ImageSparseGather 2551 2552 1275 Lod 2553 + 2555: 7(fvec4) CompositeExtract 2554 1 + Store 2550(texel) 2555 + 2556: 47(int) CompositeExtract 2554 0 + 2557: 215 Load 217(s2DArray) + 2558: 148(fvec3) Load 150(c3) + 2559: 6(float) Load 371(lod) + 2560:1991(ResType) ImageSparseGather 2557 2558 1275 Lod 2559 + 2561: 7(fvec4) CompositeExtract 2560 1 + Store 2550(texel) 2561 + 2562: 47(int) CompositeExtract 2560 0 + 2563: 156 Load 158(sCube) + 2564: 148(fvec3) Load 150(c3) + 2565: 6(float) Load 371(lod) + 2566:1991(ResType) ImageSparseGather 2563 2564 1275 Lod 2565 + 2567: 7(fvec4) CompositeExtract 2566 1 + Store 2550(texel) 2567 + 2568: 47(int) CompositeExtract 2566 0 + 2569: 224 Load 226(sCubeArray) + 2570: 7(fvec4) Load 197(c4) + 2571: 6(float) Load 371(lod) + 2572:1991(ResType) ImageSparseGather 2569 2570 1275 Lod 2571 + 2573: 7(fvec4) CompositeExtract 2572 1 + Store 2550(texel) 2573 + 2574: 47(int) CompositeExtract 2572 0 + 2575: 7(fvec4) Load 2550(texel) + ReturnValue 2575 + FunctionEnd +92(testSparseTextureGatherLodOffset(): 7(fvec4) Function None 8 + 93: Label + 2578(texel): 63(ptr) Variable Function + Store 2578(texel) 120 + 2579: 133 Load 135(s2D) + 2580: 52(fvec2) Load 138(c2) + 2581: 6(float) Load 371(lod) + 2582:1991(ResType) ImageSparseGather 2579 2580 1275 Lod ConstOffset 2581 452 + 2583: 7(fvec4) CompositeExtract 2582 1 + Store 2578(texel) 2583 + 2584: 47(int) CompositeExtract 2582 0 + 2585: 215 Load 217(s2DArray) + 2586: 148(fvec3) Load 150(c3) + 2587: 6(float) Load 371(lod) + 2588:1991(ResType) ImageSparseGather 2585 2586 1275 Lod ConstOffset 2587 452 + 2589: 7(fvec4) CompositeExtract 2588 1 + Store 2578(texel) 2589 + 2590: 47(int) CompositeExtract 2588 0 + 2591: 7(fvec4) Load 2578(texel) + ReturnValue 2591 + FunctionEnd +94(testSparseTextureGatherLodOffsets(): 7(fvec4) Function None 8 + 95: Label + 2594(texel): 63(ptr) Variable Function + Store 2594(texel) 120 + 2595: 133 Load 135(s2D) + 2596: 52(fvec2) Load 138(c2) + 2597: 6(float) Load 371(lod) + 2598:1991(ResType) ImageSparseGather 2595 2596 1275 Lod ConstOffsets 2597 1374 + 2599: 7(fvec4) CompositeExtract 2598 1 + Store 2594(texel) 2599 + 2600: 47(int) CompositeExtract 2598 0 + 2601: 215 Load 217(s2DArray) + 2602: 148(fvec3) Load 150(c3) + 2603: 6(float) Load 371(lod) + 2604:1991(ResType) ImageSparseGather 2601 2602 1275 Lod ConstOffsets 2603 1374 + 2605: 7(fvec4) CompositeExtract 2604 1 + Store 2594(texel) 2605 + 2606: 47(int) CompositeExtract 2604 0 + 2607: 7(fvec4) Load 2594(texel) + ReturnValue 2607 + FunctionEnd +96(testSparseImageLoad(): 7(fvec4) Function None 8 + 97: Label + 2610(texel): 63(ptr) Variable Function + Store 2610(texel) 120 + 2611: 1851 Load 1853(i2D) + 2612: 52(fvec2) Load 138(c2) + 2613: 451(ivec2) ConvertFToS 2612 + 2614:1991(ResType) ImageSparseRead 2611 2613 + 2615: 7(fvec4) CompositeExtract 2614 1 + Store 2610(texel) 2615 + 2616: 47(int) CompositeExtract 2614 0 + 2617: 1860 Load 1862(i3D) + 2618: 148(fvec3) Load 150(c3) + 2619: 458(ivec3) ConvertFToS 2618 + 2620:1991(ResType) ImageSparseRead 2617 2619 + 2621: 7(fvec4) CompositeExtract 2620 1 + Store 2610(texel) 2621 + 2622: 47(int) CompositeExtract 2620 0 + 2623: 1869 Load 1871(i2DRect) + 2624: 52(fvec2) Load 138(c2) + 2625: 451(ivec2) ConvertFToS 2624 + 2626:1991(ResType) ImageSparseRead 2623 2625 + 2627: 7(fvec4) CompositeExtract 2626 1 + Store 2610(texel) 2627 + 2628: 47(int) CompositeExtract 2626 0 + 2629: 1878 Load 1880(iCube) + 2630: 148(fvec3) Load 150(c3) + 2631: 458(ivec3) ConvertFToS 2630 + 2632:1991(ResType) ImageSparseRead 2629 2631 + 2633: 7(fvec4) CompositeExtract 2632 1 + Store 2610(texel) 2633 + 2634: 47(int) CompositeExtract 2632 0 + 2635: 1905 Load 1907(i2DArray) + 2636: 148(fvec3) Load 150(c3) + 2637: 458(ivec3) ConvertFToS 2636 + 2638:1991(ResType) ImageSparseRead 2635 2637 + 2639: 7(fvec4) CompositeExtract 2638 1 + Store 2610(texel) 2639 + 2640: 47(int) CompositeExtract 2638 0 + 2641: 1914 Load 1916(iCubeArray) + 2642: 148(fvec3) Load 150(c3) + 2643: 458(ivec3) ConvertFToS 2642 + 2644:1991(ResType) ImageSparseRead 2641 2643 + 2645: 7(fvec4) CompositeExtract 2644 1 + Store 2610(texel) 2645 + 2646: 47(int) CompositeExtract 2644 0 + 2647: 1923 Load 1925(i2DMS) + 2648: 52(fvec2) Load 138(c2) + 2649: 451(ivec2) ConvertFToS 2648 + 2650:1991(ResType) ImageSparseRead 2647 2649 Sample 445 + 2651: 7(fvec4) CompositeExtract 2650 1 + Store 2610(texel) 2651 + 2652: 47(int) CompositeExtract 2650 0 + 2653: 1932 Load 1934(i2DMSArray) + 2654: 148(fvec3) Load 150(c3) + 2655: 458(ivec3) ConvertFToS 2654 + 2656:1991(ResType) ImageSparseRead 2653 2655 Sample 799 + 2657: 7(fvec4) CompositeExtract 2656 1 + Store 2610(texel) 2657 + 2658: 47(int) CompositeExtract 2656 0 + 2659: 7(fvec4) Load 2610(texel) + ReturnValue 2659 + FunctionEnd +98(testSparseTextureClamp(): 7(fvec4) Function None 8 + 99: Label + 2662(texel): 63(ptr) Variable Function + Store 2662(texel) 120 + 2663: 133 Load 135(s2D) + 2664: 52(fvec2) Load 138(c2) + 2666: 6(float) Load 2665(lodClamp) + 2667:1991(ResType) ImageSparseSampleImplicitLod 2663 2664 MinLod 2666 + 2668: 7(fvec4) CompositeExtract 2667 1 + Store 2662(texel) 2668 + 2669: 47(int) CompositeExtract 2667 0 + 2670: 144 Load 146(s3D) + 2671: 148(fvec3) Load 150(c3) + 2672: 6(float) Load 2665(lodClamp) + 2673:1991(ResType) ImageSparseSampleImplicitLod 2670 2671 MinLod 2672 + 2674: 7(fvec4) CompositeExtract 2673 1 + Store 2662(texel) 2674 + 2675: 47(int) CompositeExtract 2673 0 + 2676: 156 Load 158(sCube) + 2677: 148(fvec3) Load 150(c3) + 2678: 6(float) Load 2665(lodClamp) + 2679:1991(ResType) ImageSparseSampleImplicitLod 2676 2677 MinLod 2678 + 2680: 7(fvec4) CompositeExtract 2679 1 + Store 2662(texel) 2680 + 2681: 47(int) CompositeExtract 2679 0 + 2682: 180 Load 182(s2DShadow) + 2683: 148(fvec3) Load 150(c3) + 2684: 6(float) Load 2665(lodClamp) + 2685: 174(ptr) AccessChain 2662(texel) 173 + 2686: 6(float) CompositeExtract 2683 2 + 2687:2009(ResType) ImageSparseSampleDrefImplicitLod 2682 2683 2686 MinLod 2684 + 2688: 6(float) CompositeExtract 2687 1 + Store 2685 2688 + 2689: 47(int) CompositeExtract 2687 0 + 2690: 192 Load 194(sCubeShadow) + 2691: 7(fvec4) Load 197(c4) + 2692: 6(float) Load 2665(lodClamp) + 2693: 174(ptr) AccessChain 2662(texel) 173 + 2694: 6(float) CompositeExtract 2691 3 + 2695:2009(ResType) ImageSparseSampleDrefImplicitLod 2690 2691 2694 MinLod 2692 + 2696: 6(float) CompositeExtract 2695 1 + Store 2693 2696 + 2697: 47(int) CompositeExtract 2695 0 + 2698: 215 Load 217(s2DArray) + 2699: 148(fvec3) Load 150(c3) + 2700: 6(float) Load 2665(lodClamp) + 2701:1991(ResType) ImageSparseSampleImplicitLod 2698 2699 MinLod 2700 + 2702: 7(fvec4) CompositeExtract 2701 1 + Store 2662(texel) 2702 + 2703: 47(int) CompositeExtract 2701 0 + 2704: 224 Load 226(sCubeArray) + 2705: 7(fvec4) Load 197(c4) + 2706: 6(float) Load 2665(lodClamp) + 2707:1991(ResType) ImageSparseSampleImplicitLod 2704 2705 MinLod 2706 + 2708: 7(fvec4) CompositeExtract 2707 1 + Store 2662(texel) 2708 + 2709: 47(int) CompositeExtract 2707 0 + 2710: 245 Load 247(s2DArrayShadow) + 2711: 7(fvec4) Load 197(c4) + 2712: 6(float) Load 2665(lodClamp) + 2713: 174(ptr) AccessChain 2662(texel) 173 + 2714: 6(float) CompositeExtract 2711 3 + 2715:2009(ResType) ImageSparseSampleDrefImplicitLod 2710 2711 2714 MinLod 2712 + 2716: 6(float) CompositeExtract 2715 1 + Store 2713 2716 + 2717: 47(int) CompositeExtract 2715 0 + 2718: 278 Load 280(sCubeArrayShadow) + 2719: 7(fvec4) Load 197(c4) + 2720: 6(float) Load 283(compare) + 2721: 6(float) Load 2665(lodClamp) + 2722: 174(ptr) AccessChain 2662(texel) 173 + 2723:2009(ResType) ImageSparseSampleDrefImplicitLod 2718 2719 2720 MinLod 2721 + 2724: 6(float) CompositeExtract 2723 1 + Store 2722 2724 + 2725: 47(int) CompositeExtract 2723 0 + 2726: 7(fvec4) Load 2662(texel) + ReturnValue 2726 + FunctionEnd +100(testTextureClamp(): 7(fvec4) Function None 8 + 101: Label + 2729(texel): 63(ptr) Variable Function + Store 2729(texel) 120 + 2730: 122 Load 124(s1D) + 2731: 6(float) Load 127(c1) + 2732: 6(float) Load 2665(lodClamp) + 2733: 7(fvec4) ImageSampleImplicitLod 2730 2731 MinLod 2732 + 2734: 7(fvec4) Load 2729(texel) + 2735: 7(fvec4) FAdd 2734 2733 + Store 2729(texel) 2735 + 2736: 133 Load 135(s2D) + 2737: 52(fvec2) Load 138(c2) + 2738: 6(float) Load 2665(lodClamp) + 2739: 7(fvec4) ImageSampleImplicitLod 2736 2737 MinLod 2738 + 2740: 7(fvec4) Load 2729(texel) + 2741: 7(fvec4) FAdd 2740 2739 + Store 2729(texel) 2741 + 2742: 144 Load 146(s3D) + 2743: 148(fvec3) Load 150(c3) + 2744: 6(float) Load 2665(lodClamp) + 2745: 7(fvec4) ImageSampleImplicitLod 2742 2743 MinLod 2744 + 2746: 7(fvec4) Load 2729(texel) + 2747: 7(fvec4) FAdd 2746 2745 + Store 2729(texel) 2747 + 2748: 156 Load 158(sCube) + 2749: 148(fvec3) Load 150(c3) + 2750: 6(float) Load 2665(lodClamp) + 2751: 7(fvec4) ImageSampleImplicitLod 2748 2749 MinLod 2750 + 2752: 7(fvec4) Load 2729(texel) + 2753: 7(fvec4) FAdd 2752 2751 + Store 2729(texel) 2753 + 2754: 165 Load 167(s1DShadow) + 2755: 148(fvec3) Load 150(c3) + 2756: 6(float) Load 2665(lodClamp) + 2757: 6(float) CompositeExtract 2755 2 + 2758: 6(float) ImageSampleDrefImplicitLod 2754 2755 2757 MinLod 2756 + 2759: 174(ptr) AccessChain 2729(texel) 173 + 2760: 6(float) Load 2759 + 2761: 6(float) FAdd 2760 2758 + 2762: 174(ptr) AccessChain 2729(texel) 173 + Store 2762 2761 + 2763: 180 Load 182(s2DShadow) + 2764: 148(fvec3) Load 150(c3) + 2765: 6(float) Load 2665(lodClamp) + 2766: 6(float) CompositeExtract 2764 2 + 2767: 6(float) ImageSampleDrefImplicitLod 2763 2764 2766 MinLod 2765 + 2768: 174(ptr) AccessChain 2729(texel) 173 + 2769: 6(float) Load 2768 + 2770: 6(float) FAdd 2769 2767 + 2771: 174(ptr) AccessChain 2729(texel) 173 + Store 2771 2770 + 2772: 192 Load 194(sCubeShadow) + 2773: 7(fvec4) Load 197(c4) + 2774: 6(float) Load 2665(lodClamp) + 2775: 6(float) CompositeExtract 2773 3 + 2776: 6(float) ImageSampleDrefImplicitLod 2772 2773 2775 MinLod 2774 + 2777: 174(ptr) AccessChain 2729(texel) 173 + 2778: 6(float) Load 2777 + 2779: 6(float) FAdd 2778 2776 + 2780: 174(ptr) AccessChain 2729(texel) 173 + Store 2780 2779 + 2781: 206 Load 208(s1DArray) + 2782: 52(fvec2) Load 138(c2) + 2783: 6(float) Load 2665(lodClamp) + 2784: 7(fvec4) ImageSampleImplicitLod 2781 2782 MinLod 2783 + 2785: 7(fvec4) Load 2729(texel) + 2786: 7(fvec4) FAdd 2785 2784 + Store 2729(texel) 2786 + 2787: 215 Load 217(s2DArray) + 2788: 148(fvec3) Load 150(c3) + 2789: 6(float) Load 2665(lodClamp) + 2790: 7(fvec4) ImageSampleImplicitLod 2787 2788 MinLod 2789 + 2791: 7(fvec4) Load 2729(texel) + 2792: 7(fvec4) FAdd 2791 2790 + Store 2729(texel) 2792 + 2793: 224 Load 226(sCubeArray) + 2794: 7(fvec4) Load 197(c4) + 2795: 6(float) Load 2665(lodClamp) + 2796: 7(fvec4) ImageSampleImplicitLod 2793 2794 MinLod 2795 + 2797: 7(fvec4) Load 2729(texel) + 2798: 7(fvec4) FAdd 2797 2796 + Store 2729(texel) 2798 + 2799: 233 Load 235(s1DArrayShadow) + 2800: 148(fvec3) Load 150(c3) + 2801: 6(float) Load 2665(lodClamp) + 2802: 6(float) CompositeExtract 2800 2 + 2803: 6(float) ImageSampleDrefImplicitLod 2799 2800 2802 MinLod 2801 + 2804: 174(ptr) AccessChain 2729(texel) 173 + 2805: 6(float) Load 2804 + 2806: 6(float) FAdd 2805 2803 + 2807: 174(ptr) AccessChain 2729(texel) 173 + Store 2807 2806 + 2808: 245 Load 247(s2DArrayShadow) + 2809: 7(fvec4) Load 197(c4) + 2810: 6(float) Load 2665(lodClamp) + 2811: 6(float) CompositeExtract 2809 3 + 2812: 6(float) ImageSampleDrefImplicitLod 2808 2809 2811 MinLod 2810 + 2813: 174(ptr) AccessChain 2729(texel) 173 + 2814: 6(float) Load 2813 + 2815: 6(float) FAdd 2814 2812 + 2816: 174(ptr) AccessChain 2729(texel) 173 + Store 2816 2815 + 2817: 278 Load 280(sCubeArrayShadow) + 2818: 7(fvec4) Load 197(c4) + 2819: 6(float) Load 283(compare) + 2820: 6(float) Load 2665(lodClamp) + 2821: 6(float) ImageSampleDrefImplicitLod 2817 2818 2819 MinLod 2820 + 2822: 174(ptr) AccessChain 2729(texel) 173 + 2823: 6(float) Load 2822 + 2824: 6(float) FAdd 2823 2821 + 2825: 174(ptr) AccessChain 2729(texel) 173 + Store 2825 2824 + 2826: 7(fvec4) Load 2729(texel) + ReturnValue 2826 + FunctionEnd +102(testSparseTextureOffsetClamp(): 7(fvec4) Function None 8 + 103: Label + 2829(texel): 63(ptr) Variable Function + Store 2829(texel) 120 + 2830: 133 Load 135(s2D) + 2831: 52(fvec2) Load 138(c2) + 2832: 6(float) Load 2665(lodClamp) + 2833:1991(ResType) ImageSparseSampleImplicitLod 2830 2831 ConstOffset MinLod 452 2832 + 2834: 7(fvec4) CompositeExtract 2833 1 + Store 2829(texel) 2834 + 2835: 47(int) CompositeExtract 2833 0 + 2836: 144 Load 146(s3D) + 2837: 148(fvec3) Load 150(c3) + 2838: 6(float) Load 2665(lodClamp) + 2839:1991(ResType) ImageSparseSampleImplicitLod 2836 2837 ConstOffset MinLod 459 2838 + 2840: 7(fvec4) CompositeExtract 2839 1 + Store 2829(texel) 2840 + 2841: 47(int) CompositeExtract 2839 0 + 2842: 180 Load 182(s2DShadow) + 2843: 148(fvec3) Load 150(c3) + 2844: 6(float) Load 2665(lodClamp) + 2845: 174(ptr) AccessChain 2829(texel) 173 + 2846: 6(float) CompositeExtract 2843 2 + 2847:2009(ResType) ImageSparseSampleDrefImplicitLod 2842 2843 2846 ConstOffset MinLod 452 2844 + 2848: 6(float) CompositeExtract 2847 1 + Store 2845 2848 + 2849: 47(int) CompositeExtract 2847 0 + 2850: 215 Load 217(s2DArray) + 2851: 148(fvec3) Load 150(c3) + 2852: 6(float) Load 2665(lodClamp) + 2853:1991(ResType) ImageSparseSampleImplicitLod 2850 2851 ConstOffset MinLod 452 2852 + 2854: 7(fvec4) CompositeExtract 2853 1 + Store 2829(texel) 2854 + 2855: 47(int) CompositeExtract 2853 0 + 2856: 245 Load 247(s2DArrayShadow) + 2857: 7(fvec4) Load 197(c4) + 2858: 6(float) Load 2665(lodClamp) + 2859: 174(ptr) AccessChain 2829(texel) 173 + 2860: 6(float) CompositeExtract 2857 3 + 2861:2009(ResType) ImageSparseSampleDrefImplicitLod 2856 2857 2860 ConstOffset MinLod 452 2858 + 2862: 6(float) CompositeExtract 2861 1 + Store 2859 2862 + 2863: 47(int) CompositeExtract 2861 0 + 2864: 7(fvec4) Load 2829(texel) + ReturnValue 2864 + FunctionEnd +104(testTextureOffsetClamp(): 7(fvec4) Function None 8 + 105: Label + 2867(texel): 63(ptr) Variable Function + Store 2867(texel) 120 + 2868: 122 Load 124(s1D) + 2869: 6(float) Load 127(c1) + 2870: 6(float) Load 2665(lodClamp) + 2871: 7(fvec4) ImageSampleImplicitLod 2868 2869 ConstOffset MinLod 445 2870 + 2872: 7(fvec4) Load 2867(texel) + 2873: 7(fvec4) FAdd 2872 2871 + Store 2867(texel) 2873 + 2874: 133 Load 135(s2D) + 2875: 52(fvec2) Load 138(c2) + 2876: 6(float) Load 2665(lodClamp) + 2877: 7(fvec4) ImageSampleImplicitLod 2874 2875 ConstOffset MinLod 452 2876 + 2878: 7(fvec4) Load 2867(texel) + 2879: 7(fvec4) FAdd 2878 2877 + Store 2867(texel) 2879 + 2880: 144 Load 146(s3D) + 2881: 148(fvec3) Load 150(c3) + 2882: 6(float) Load 2665(lodClamp) + 2883: 7(fvec4) ImageSampleImplicitLod 2880 2881 ConstOffset MinLod 459 2882 + 2884: 7(fvec4) Load 2867(texel) + 2885: 7(fvec4) FAdd 2884 2883 + Store 2867(texel) 2885 + 2886: 165 Load 167(s1DShadow) + 2887: 148(fvec3) Load 150(c3) + 2888: 6(float) Load 2665(lodClamp) + 2889: 6(float) CompositeExtract 2887 2 + 2890: 6(float) ImageSampleDrefImplicitLod 2886 2887 2889 ConstOffset MinLod 445 2888 + 2891: 174(ptr) AccessChain 2867(texel) 173 + 2892: 6(float) Load 2891 + 2893: 6(float) FAdd 2892 2890 + 2894: 174(ptr) AccessChain 2867(texel) 173 + Store 2894 2893 + 2895: 180 Load 182(s2DShadow) + 2896: 148(fvec3) Load 150(c3) + 2897: 6(float) Load 2665(lodClamp) + 2898: 6(float) CompositeExtract 2896 2 + 2899: 6(float) ImageSampleDrefImplicitLod 2895 2896 2898 ConstOffset MinLod 452 2897 + 2900: 174(ptr) AccessChain 2867(texel) 173 + 2901: 6(float) Load 2900 + 2902: 6(float) FAdd 2901 2899 + 2903: 174(ptr) AccessChain 2867(texel) 173 + Store 2903 2902 + 2904: 206 Load 208(s1DArray) + 2905: 52(fvec2) Load 138(c2) + 2906: 6(float) Load 2665(lodClamp) + 2907: 7(fvec4) ImageSampleImplicitLod 2904 2905 ConstOffset MinLod 445 2906 + 2908: 7(fvec4) Load 2867(texel) + 2909: 7(fvec4) FAdd 2908 2907 + Store 2867(texel) 2909 + 2910: 215 Load 217(s2DArray) + 2911: 148(fvec3) Load 150(c3) + 2912: 6(float) Load 2665(lodClamp) + 2913: 7(fvec4) ImageSampleImplicitLod 2910 2911 ConstOffset MinLod 452 2912 + 2914: 7(fvec4) Load 2867(texel) + 2915: 7(fvec4) FAdd 2914 2913 + Store 2867(texel) 2915 + 2916: 233 Load 235(s1DArrayShadow) + 2917: 148(fvec3) Load 150(c3) + 2918: 6(float) Load 2665(lodClamp) + 2919: 6(float) CompositeExtract 2917 2 + 2920: 6(float) ImageSampleDrefImplicitLod 2916 2917 2919 ConstOffset MinLod 445 2918 + 2921: 174(ptr) AccessChain 2867(texel) 173 + 2922: 6(float) Load 2921 + 2923: 6(float) FAdd 2922 2920 + 2924: 174(ptr) AccessChain 2867(texel) 173 + Store 2924 2923 + 2925: 245 Load 247(s2DArrayShadow) + 2926: 7(fvec4) Load 197(c4) + 2927: 6(float) Load 2665(lodClamp) + 2928: 6(float) CompositeExtract 2926 3 + 2929: 6(float) ImageSampleDrefImplicitLod 2925 2926 2928 ConstOffset MinLod 452 2927 + 2930: 174(ptr) AccessChain 2867(texel) 173 + 2931: 6(float) Load 2930 + 2932: 6(float) FAdd 2931 2929 + 2933: 174(ptr) AccessChain 2867(texel) 173 + Store 2933 2932 + 2934: 7(fvec4) Load 2867(texel) + ReturnValue 2934 + FunctionEnd +106(testSparseTextureGradClamp(): 7(fvec4) Function None 8 + 107: Label + 2937(texel): 63(ptr) Variable Function + Store 2937(texel) 120 + 2938: 133 Load 135(s2D) + 2939: 52(fvec2) Load 138(c2) + 2940: 52(fvec2) Load 874(dPdxy2) + 2941: 52(fvec2) Load 874(dPdxy2) + 2942: 6(float) Load 2665(lodClamp) + 2943:1991(ResType) ImageSparseSampleExplicitLod 2938 2939 Grad MinLod 2940 2941 2942 + 2944: 7(fvec4) CompositeExtract 2943 1 + Store 2937(texel) 2944 + 2945: 47(int) CompositeExtract 2943 0 + 2946: 144 Load 146(s3D) + 2947: 148(fvec3) Load 150(c3) + 2948: 148(fvec3) Load 882(dPdxy3) + 2949: 148(fvec3) Load 882(dPdxy3) + 2950: 6(float) Load 2665(lodClamp) + 2951:1991(ResType) ImageSparseSampleExplicitLod 2946 2947 Grad MinLod 2948 2949 2950 + 2952: 7(fvec4) CompositeExtract 2951 1 + Store 2937(texel) 2952 + 2953: 47(int) CompositeExtract 2951 0 + 2954: 156 Load 158(sCube) + 2955: 148(fvec3) Load 150(c3) + 2956: 148(fvec3) Load 882(dPdxy3) + 2957: 148(fvec3) Load 882(dPdxy3) + 2958: 6(float) Load 2665(lodClamp) + 2959:1991(ResType) ImageSparseSampleExplicitLod 2954 2955 Grad MinLod 2956 2957 2958 + 2960: 7(fvec4) CompositeExtract 2959 1 + Store 2937(texel) 2960 + 2961: 47(int) CompositeExtract 2959 0 + 2962: 180 Load 182(s2DShadow) + 2963: 148(fvec3) Load 150(c3) + 2964: 52(fvec2) Load 874(dPdxy2) + 2965: 52(fvec2) Load 874(dPdxy2) + 2966: 6(float) Load 2665(lodClamp) + 2967: 174(ptr) AccessChain 2937(texel) 173 + 2968: 6(float) CompositeExtract 2963 2 + 2969:2009(ResType) ImageSparseSampleDrefExplicitLod 2962 2963 2968 Grad MinLod 2964 2965 2966 + 2970: 6(float) CompositeExtract 2969 1 + Store 2967 2970 + 2971: 47(int) CompositeExtract 2969 0 + 2972: 192 Load 194(sCubeShadow) + 2973: 7(fvec4) Load 197(c4) + 2974: 148(fvec3) Load 882(dPdxy3) + 2975: 148(fvec3) Load 882(dPdxy3) + 2976: 6(float) Load 2665(lodClamp) + 2977: 174(ptr) AccessChain 2937(texel) 173 + 2978: 6(float) CompositeExtract 2973 3 + 2979:2009(ResType) ImageSparseSampleDrefExplicitLod 2972 2973 2978 Grad MinLod 2974 2975 2976 + 2980: 6(float) CompositeExtract 2979 1 + Store 2977 2980 + 2981: 47(int) CompositeExtract 2979 0 + 2982: 215 Load 217(s2DArray) + 2983: 148(fvec3) Load 150(c3) + 2984: 52(fvec2) Load 874(dPdxy2) + 2985: 52(fvec2) Load 874(dPdxy2) + 2986: 6(float) Load 2665(lodClamp) + 2987:1991(ResType) ImageSparseSampleExplicitLod 2982 2983 Grad MinLod 2984 2985 2986 + 2988: 7(fvec4) CompositeExtract 2987 1 + Store 2937(texel) 2988 + 2989: 47(int) CompositeExtract 2987 0 + 2990: 245 Load 247(s2DArrayShadow) + 2991: 7(fvec4) Load 197(c4) + 2992: 52(fvec2) Load 874(dPdxy2) + 2993: 52(fvec2) Load 874(dPdxy2) + 2994: 6(float) Load 2665(lodClamp) + 2995: 174(ptr) AccessChain 2937(texel) 173 + 2996: 6(float) CompositeExtract 2991 3 + 2997:2009(ResType) ImageSparseSampleDrefExplicitLod 2990 2991 2996 Grad MinLod 2992 2993 2994 + 2998: 6(float) CompositeExtract 2997 1 + Store 2995 2998 + 2999: 47(int) CompositeExtract 2997 0 + 3000: 224 Load 226(sCubeArray) + 3001: 7(fvec4) Load 197(c4) + 3002: 148(fvec3) Load 882(dPdxy3) + 3003: 148(fvec3) Load 882(dPdxy3) + 3004: 6(float) Load 2665(lodClamp) + 3005:1991(ResType) ImageSparseSampleExplicitLod 3000 3001 Grad MinLod 3002 3003 3004 + 3006: 7(fvec4) CompositeExtract 3005 1 + Store 2937(texel) 3006 + 3007: 47(int) CompositeExtract 3005 0 + 3008: 7(fvec4) Load 2937(texel) + ReturnValue 3008 + FunctionEnd +108(testTextureGradClamp(): 7(fvec4) Function None 8 + 109: Label + 3011(texel): 63(ptr) Variable Function + Store 3011(texel) 120 + 3012: 122 Load 124(s1D) + 3013: 6(float) Load 127(c1) + 3014: 6(float) Load 866(dPdxy1) + 3015: 6(float) Load 866(dPdxy1) + 3016: 6(float) Load 2665(lodClamp) + 3017: 7(fvec4) ImageSampleExplicitLod 3012 3013 Grad MinLod 3014 3015 3016 + 3018: 7(fvec4) Load 3011(texel) + 3019: 7(fvec4) FAdd 3018 3017 + Store 3011(texel) 3019 + 3020: 133 Load 135(s2D) + 3021: 52(fvec2) Load 138(c2) + 3022: 52(fvec2) Load 874(dPdxy2) + 3023: 52(fvec2) Load 874(dPdxy2) + 3024: 6(float) Load 2665(lodClamp) + 3025: 7(fvec4) ImageSampleExplicitLod 3020 3021 Grad MinLod 3022 3023 3024 + 3026: 7(fvec4) Load 3011(texel) + 3027: 7(fvec4) FAdd 3026 3025 + Store 3011(texel) 3027 + 3028: 144 Load 146(s3D) + 3029: 148(fvec3) Load 150(c3) + 3030: 148(fvec3) Load 882(dPdxy3) + 3031: 148(fvec3) Load 882(dPdxy3) + 3032: 6(float) Load 2665(lodClamp) + 3033: 7(fvec4) ImageSampleExplicitLod 3028 3029 Grad MinLod 3030 3031 3032 + 3034: 7(fvec4) Load 3011(texel) + 3035: 7(fvec4) FAdd 3034 3033 + Store 3011(texel) 3035 + 3036: 156 Load 158(sCube) + 3037: 148(fvec3) Load 150(c3) + 3038: 148(fvec3) Load 882(dPdxy3) + 3039: 148(fvec3) Load 882(dPdxy3) + 3040: 6(float) Load 2665(lodClamp) + 3041: 7(fvec4) ImageSampleExplicitLod 3036 3037 Grad MinLod 3038 3039 3040 + 3042: 7(fvec4) Load 3011(texel) + 3043: 7(fvec4) FAdd 3042 3041 + Store 3011(texel) 3043 + 3044: 165 Load 167(s1DShadow) + 3045: 148(fvec3) Load 150(c3) + 3046: 6(float) Load 866(dPdxy1) + 3047: 6(float) Load 866(dPdxy1) + 3048: 6(float) Load 2665(lodClamp) + 3049: 6(float) CompositeExtract 3045 2 + 3050: 6(float) ImageSampleDrefExplicitLod 3044 3045 3049 Grad MinLod 3046 3047 3048 + 3051: 174(ptr) AccessChain 3011(texel) 173 + 3052: 6(float) Load 3051 + 3053: 6(float) FAdd 3052 3050 + 3054: 174(ptr) AccessChain 3011(texel) 173 + Store 3054 3053 + 3055: 180 Load 182(s2DShadow) + 3056: 148(fvec3) Load 150(c3) + 3057: 52(fvec2) Load 874(dPdxy2) + 3058: 52(fvec2) Load 874(dPdxy2) + 3059: 6(float) Load 2665(lodClamp) + 3060: 6(float) CompositeExtract 3056 2 + 3061: 6(float) ImageSampleDrefExplicitLod 3055 3056 3060 Grad MinLod 3057 3058 3059 + 3062: 174(ptr) AccessChain 3011(texel) 173 + 3063: 6(float) Load 3062 + 3064: 6(float) FAdd 3063 3061 + 3065: 174(ptr) AccessChain 3011(texel) 173 + Store 3065 3064 + 3066: 192 Load 194(sCubeShadow) + 3067: 7(fvec4) Load 197(c4) + 3068: 148(fvec3) Load 882(dPdxy3) + 3069: 148(fvec3) Load 882(dPdxy3) + 3070: 6(float) Load 2665(lodClamp) + 3071: 6(float) CompositeExtract 3067 3 + 3072: 6(float) ImageSampleDrefExplicitLod 3066 3067 3071 Grad MinLod 3068 3069 3070 + 3073: 174(ptr) AccessChain 3011(texel) 173 + 3074: 6(float) Load 3073 + 3075: 6(float) FAdd 3074 3072 + 3076: 174(ptr) AccessChain 3011(texel) 173 + Store 3076 3075 + 3077: 206 Load 208(s1DArray) + 3078: 52(fvec2) Load 138(c2) + 3079: 6(float) Load 866(dPdxy1) + 3080: 6(float) Load 866(dPdxy1) + 3081: 6(float) Load 2665(lodClamp) + 3082: 7(fvec4) ImageSampleExplicitLod 3077 3078 Grad MinLod 3079 3080 3081 + 3083: 7(fvec4) Load 3011(texel) + 3084: 7(fvec4) FAdd 3083 3082 + Store 3011(texel) 3084 + 3085: 215 Load 217(s2DArray) + 3086: 148(fvec3) Load 150(c3) + 3087: 52(fvec2) Load 874(dPdxy2) + 3088: 52(fvec2) Load 874(dPdxy2) + 3089: 6(float) Load 2665(lodClamp) + 3090: 7(fvec4) ImageSampleExplicitLod 3085 3086 Grad MinLod 3087 3088 3089 + 3091: 7(fvec4) Load 3011(texel) + 3092: 7(fvec4) FAdd 3091 3090 + Store 3011(texel) 3092 + 3093: 233 Load 235(s1DArrayShadow) + 3094: 148(fvec3) Load 150(c3) + 3095: 6(float) Load 866(dPdxy1) + 3096: 6(float) Load 866(dPdxy1) + 3097: 6(float) Load 2665(lodClamp) + 3098: 6(float) CompositeExtract 3094 2 + 3099: 6(float) ImageSampleDrefExplicitLod 3093 3094 3098 Grad MinLod 3095 3096 3097 + 3100: 174(ptr) AccessChain 3011(texel) 173 + 3101: 6(float) Load 3100 + 3102: 6(float) FAdd 3101 3099 + 3103: 174(ptr) AccessChain 3011(texel) 173 + Store 3103 3102 + 3104: 245 Load 247(s2DArrayShadow) + 3105: 7(fvec4) Load 197(c4) + 3106: 52(fvec2) Load 874(dPdxy2) + 3107: 52(fvec2) Load 874(dPdxy2) + 3108: 6(float) Load 2665(lodClamp) + 3109: 6(float) CompositeExtract 3105 3 + 3110: 6(float) ImageSampleDrefExplicitLod 3104 3105 3109 Grad MinLod 3106 3107 3108 + 3111: 174(ptr) AccessChain 3011(texel) 173 + 3112: 6(float) Load 3111 + 3113: 6(float) FAdd 3112 3110 + 3114: 174(ptr) AccessChain 3011(texel) 173 + Store 3114 3113 + 3115: 224 Load 226(sCubeArray) + 3116: 7(fvec4) Load 197(c4) + 3117: 148(fvec3) Load 882(dPdxy3) + 3118: 148(fvec3) Load 882(dPdxy3) + 3119: 6(float) Load 2665(lodClamp) + 3120: 7(fvec4) ImageSampleExplicitLod 3115 3116 Grad MinLod 3117 3118 3119 + 3121: 7(fvec4) Load 3011(texel) + 3122: 7(fvec4) FAdd 3121 3120 + Store 3011(texel) 3122 + 3123: 7(fvec4) Load 3011(texel) + ReturnValue 3123 + FunctionEnd +110(testSparseTextureGradOffsetClamp(): 7(fvec4) Function None 8 + 111: Label + 3126(texel): 63(ptr) Variable Function + Store 3126(texel) 120 + 3127: 133 Load 135(s2D) + 3128: 52(fvec2) Load 138(c2) + 3129: 52(fvec2) Load 874(dPdxy2) + 3130: 52(fvec2) Load 874(dPdxy2) + 3131: 6(float) Load 2665(lodClamp) + 3132:1991(ResType) ImageSparseSampleExplicitLod 3127 3128 Grad ConstOffset MinLod 3129 3130 452 3131 + 3133: 7(fvec4) CompositeExtract 3132 1 + Store 3126(texel) 3133 + 3134: 47(int) CompositeExtract 3132 0 + 3135: 144 Load 146(s3D) + 3136: 148(fvec3) Load 150(c3) + 3137: 148(fvec3) Load 882(dPdxy3) + 3138: 148(fvec3) Load 882(dPdxy3) + 3139: 6(float) Load 2665(lodClamp) + 3140:1991(ResType) ImageSparseSampleExplicitLod 3135 3136 Grad ConstOffset MinLod 3137 3138 459 3139 + 3141: 7(fvec4) CompositeExtract 3140 1 + Store 3126(texel) 3141 + 3142: 47(int) CompositeExtract 3140 0 + 3143: 180 Load 182(s2DShadow) + 3144: 148(fvec3) Load 150(c3) + 3145: 52(fvec2) Load 874(dPdxy2) + 3146: 52(fvec2) Load 874(dPdxy2) + 3147: 6(float) Load 2665(lodClamp) + 3148: 174(ptr) AccessChain 3126(texel) 173 + 3149: 6(float) CompositeExtract 3144 2 + 3150:2009(ResType) ImageSparseSampleDrefExplicitLod 3143 3144 3149 Grad ConstOffset MinLod 3145 3146 452 3147 + 3151: 6(float) CompositeExtract 3150 1 + Store 3148 3151 + 3152: 47(int) CompositeExtract 3150 0 + 3153: 215 Load 217(s2DArray) + 3154: 148(fvec3) Load 150(c3) + 3155: 52(fvec2) Load 874(dPdxy2) + 3156: 52(fvec2) Load 874(dPdxy2) + 3157: 6(float) Load 2665(lodClamp) + 3158:1991(ResType) ImageSparseSampleExplicitLod 3153 3154 Grad ConstOffset MinLod 3155 3156 452 3157 + 3159: 7(fvec4) CompositeExtract 3158 1 + Store 3126(texel) 3159 + 3160: 47(int) CompositeExtract 3158 0 + 3161: 245 Load 247(s2DArrayShadow) + 3162: 7(fvec4) Load 197(c4) + 3163: 52(fvec2) Load 874(dPdxy2) + 3164: 52(fvec2) Load 874(dPdxy2) + 3165: 6(float) Load 2665(lodClamp) + 3166: 174(ptr) AccessChain 3126(texel) 173 + 3167: 6(float) CompositeExtract 3162 3 + 3168:2009(ResType) ImageSparseSampleDrefExplicitLod 3161 3162 3167 Grad ConstOffset MinLod 3163 3164 452 3165 + 3169: 6(float) CompositeExtract 3168 1 + Store 3166 3169 + 3170: 47(int) CompositeExtract 3168 0 + 3171: 7(fvec4) Load 3126(texel) + ReturnValue 3171 + FunctionEnd +112(testTextureGradOffsetClamp(): 7(fvec4) Function None 8 + 113: Label + 3174(texel): 63(ptr) Variable Function + Store 3174(texel) 120 + 3175: 122 Load 124(s1D) + 3176: 6(float) Load 127(c1) + 3177: 6(float) Load 866(dPdxy1) + 3178: 6(float) Load 866(dPdxy1) + 3179: 6(float) Load 2665(lodClamp) + 3180: 7(fvec4) ImageSampleExplicitLod 3175 3176 Grad ConstOffset MinLod 3177 3178 445 3179 + 3181: 7(fvec4) Load 3174(texel) + 3182: 7(fvec4) FAdd 3181 3180 + Store 3174(texel) 3182 + 3183: 133 Load 135(s2D) + 3184: 52(fvec2) Load 138(c2) + 3185: 52(fvec2) Load 874(dPdxy2) + 3186: 52(fvec2) Load 874(dPdxy2) + 3187: 6(float) Load 2665(lodClamp) + 3188: 7(fvec4) ImageSampleExplicitLod 3183 3184 Grad ConstOffset MinLod 3185 3186 452 3187 + 3189: 7(fvec4) Load 3174(texel) + 3190: 7(fvec4) FAdd 3189 3188 + Store 3174(texel) 3190 + 3191: 144 Load 146(s3D) + 3192: 148(fvec3) Load 150(c3) + 3193: 148(fvec3) Load 882(dPdxy3) + 3194: 148(fvec3) Load 882(dPdxy3) + 3195: 6(float) Load 2665(lodClamp) + 3196: 7(fvec4) ImageSampleExplicitLod 3191 3192 Grad ConstOffset MinLod 3193 3194 459 3195 + 3197: 7(fvec4) Load 3174(texel) + 3198: 7(fvec4) FAdd 3197 3196 + Store 3174(texel) 3198 + 3199: 165 Load 167(s1DShadow) + 3200: 148(fvec3) Load 150(c3) + 3201: 6(float) Load 866(dPdxy1) + 3202: 6(float) Load 866(dPdxy1) + 3203: 6(float) Load 2665(lodClamp) + 3204: 6(float) CompositeExtract 3200 2 + 3205: 6(float) ImageSampleDrefExplicitLod 3199 3200 3204 Grad ConstOffset MinLod 3201 3202 445 3203 + 3206: 174(ptr) AccessChain 3174(texel) 173 + 3207: 6(float) Load 3206 + 3208: 6(float) FAdd 3207 3205 + 3209: 174(ptr) AccessChain 3174(texel) 173 + Store 3209 3208 + 3210: 180 Load 182(s2DShadow) + 3211: 148(fvec3) Load 150(c3) + 3212: 52(fvec2) Load 874(dPdxy2) + 3213: 52(fvec2) Load 874(dPdxy2) + 3214: 6(float) Load 2665(lodClamp) + 3215: 6(float) CompositeExtract 3211 2 + 3216: 6(float) ImageSampleDrefExplicitLod 3210 3211 3215 Grad ConstOffset MinLod 3212 3213 452 3214 + 3217: 174(ptr) AccessChain 3174(texel) 173 + 3218: 6(float) Load 3217 + 3219: 6(float) FAdd 3218 3216 + 3220: 174(ptr) AccessChain 3174(texel) 173 + Store 3220 3219 + 3221: 206 Load 208(s1DArray) + 3222: 52(fvec2) Load 138(c2) + 3223: 6(float) Load 866(dPdxy1) + 3224: 6(float) Load 866(dPdxy1) + 3225: 6(float) Load 2665(lodClamp) + 3226: 7(fvec4) ImageSampleExplicitLod 3221 3222 Grad ConstOffset MinLod 3223 3224 445 3225 + 3227: 7(fvec4) Load 3174(texel) + 3228: 7(fvec4) FAdd 3227 3226 + Store 3174(texel) 3228 + 3229: 215 Load 217(s2DArray) + 3230: 148(fvec3) Load 150(c3) + 3231: 52(fvec2) Load 874(dPdxy2) + 3232: 52(fvec2) Load 874(dPdxy2) + 3233: 6(float) Load 2665(lodClamp) + 3234: 7(fvec4) ImageSampleExplicitLod 3229 3230 Grad ConstOffset MinLod 3231 3232 452 3233 + 3235: 7(fvec4) Load 3174(texel) + 3236: 7(fvec4) FAdd 3235 3234 + Store 3174(texel) 3236 + 3237: 233 Load 235(s1DArrayShadow) + 3238: 148(fvec3) Load 150(c3) + 3239: 6(float) Load 866(dPdxy1) + 3240: 6(float) Load 866(dPdxy1) + 3241: 6(float) Load 2665(lodClamp) + 3242: 6(float) CompositeExtract 3238 2 + 3243: 6(float) ImageSampleDrefExplicitLod 3237 3238 3242 Grad ConstOffset MinLod 3239 3240 445 3241 + 3244: 174(ptr) AccessChain 3174(texel) 173 + 3245: 6(float) Load 3244 + 3246: 6(float) FAdd 3245 3243 + 3247: 174(ptr) AccessChain 3174(texel) 173 + Store 3247 3246 + 3248: 245 Load 247(s2DArrayShadow) + 3249: 7(fvec4) Load 197(c4) + 3250: 52(fvec2) Load 874(dPdxy2) + 3251: 52(fvec2) Load 874(dPdxy2) + 3252: 6(float) Load 2665(lodClamp) + 3253: 6(float) CompositeExtract 3249 3 + 3254: 6(float) ImageSampleDrefExplicitLod 3248 3249 3253 Grad ConstOffset MinLod 3250 3251 452 3252 + 3255: 174(ptr) AccessChain 3174(texel) 173 + 3256: 6(float) Load 3255 + 3257: 6(float) FAdd 3256 3254 + 3258: 174(ptr) AccessChain 3174(texel) 173 + Store 3258 3257 + 3259: 7(fvec4) Load 3174(texel) + ReturnValue 3259 + FunctionEnd +114(testCombinedTextureSampler(): 7(fvec4) Function None 8 + 115: Label + 3262(texel): 63(ptr) Variable Function + Store 3262(texel) 120 + 3265: 121 Load 3264(t1D) + 3269: 3266 Load 3268(s) + 3270: 122 SampledImage 3265 3269 + 3271: 6(float) Load 127(c1) + 3272: 7(fvec4) ImageSampleImplicitLod 3270 3271 + 3273: 7(fvec4) Load 3262(texel) + 3274: 7(fvec4) FAdd 3273 3272 + Store 3262(texel) 3274 + 3277: 132 Load 3276(t2D) + 3278: 3266 Load 3268(s) + 3279: 133 SampledImage 3277 3278 + 3280: 52(fvec2) Load 138(c2) + 3281: 7(fvec4) ImageSampleImplicitLod 3279 3280 + 3282: 7(fvec4) Load 3262(texel) + 3283: 7(fvec4) FAdd 3282 3281 + Store 3262(texel) 3283 + 3286: 143 Load 3285(t3D) + 3287: 3266 Load 3268(s) + 3288: 144 SampledImage 3286 3287 + 3289: 148(fvec3) Load 150(c3) + 3290: 7(fvec4) ImageSampleImplicitLod 3288 3289 + 3291: 7(fvec4) Load 3262(texel) + 3292: 7(fvec4) FAdd 3291 3290 + Store 3262(texel) 3292 + 3295: 155 Load 3294(tCube) + 3296: 3266 Load 3268(s) + 3297: 156 SampledImage 3295 3296 + 3298: 148(fvec3) Load 150(c3) + 3299: 7(fvec4) ImageSampleImplicitLod 3297 3298 + 3300: 7(fvec4) Load 3262(texel) + 3301: 7(fvec4) FAdd 3300 3299 + Store 3262(texel) 3301 + 3302: 121 Load 3264(t1D) + 3304: 3266 Load 3303(sShadow) + 3305: 165 SampledImage 3302 3304 + 3306: 148(fvec3) Load 150(c3) + 3307: 6(float) CompositeExtract 3306 2 + 3308: 6(float) ImageSampleDrefImplicitLod 3305 3306 3307 + 3309: 174(ptr) AccessChain 3262(texel) 173 + 3310: 6(float) Load 3309 + 3311: 6(float) FAdd 3310 3308 + 3312: 174(ptr) AccessChain 3262(texel) 173 + Store 3312 3311 + 3313: 132 Load 3276(t2D) + 3314: 3266 Load 3303(sShadow) + 3315: 180 SampledImage 3313 3314 + 3316: 148(fvec3) Load 150(c3) + 3317: 6(float) CompositeExtract 3316 2 + 3318: 6(float) ImageSampleDrefImplicitLod 3315 3316 3317 + 3319: 174(ptr) AccessChain 3262(texel) 173 + 3320: 6(float) Load 3319 + 3321: 6(float) FAdd 3320 3318 + 3322: 174(ptr) AccessChain 3262(texel) 173 + Store 3322 3321 + 3323: 155 Load 3294(tCube) + 3324: 3266 Load 3303(sShadow) + 3325: 192 SampledImage 3323 3324 + 3326: 7(fvec4) Load 197(c4) + 3327: 6(float) CompositeExtract 3326 3 + 3328: 6(float) ImageSampleDrefImplicitLod 3325 3326 3327 + 3329: 174(ptr) AccessChain 3262(texel) 173 + 3330: 6(float) Load 3329 + 3331: 6(float) FAdd 3330 3328 + 3332: 174(ptr) AccessChain 3262(texel) 173 + Store 3332 3331 + 3335: 205 Load 3334(t1DArray) + 3336: 3266 Load 3268(s) + 3337: 206 SampledImage 3335 3336 + 3338: 52(fvec2) Load 138(c2) + 3339: 7(fvec4) ImageSampleImplicitLod 3337 3338 + 3340: 7(fvec4) Load 3262(texel) + 3341: 7(fvec4) FAdd 3340 3339 + Store 3262(texel) 3341 + 3344: 214 Load 3343(t2DArray) + 3345: 3266 Load 3268(s) + 3346: 215 SampledImage 3344 3345 + 3347: 148(fvec3) Load 150(c3) + 3348: 7(fvec4) ImageSampleImplicitLod 3346 3347 + 3349: 7(fvec4) Load 3262(texel) + 3350: 7(fvec4) FAdd 3349 3348 + Store 3262(texel) 3350 + 3353: 223 Load 3352(tCubeArray) + 3354: 3266 Load 3268(s) + 3355: 224 SampledImage 3353 3354 + 3356: 7(fvec4) Load 197(c4) + 3357: 7(fvec4) ImageSampleImplicitLod 3355 3356 + 3358: 7(fvec4) Load 3262(texel) + 3359: 7(fvec4) FAdd 3358 3357 + Store 3262(texel) 3359 + 3360: 205 Load 3334(t1DArray) + 3361: 3266 Load 3303(sShadow) + 3362: 233 SampledImage 3360 3361 + 3363: 148(fvec3) Load 150(c3) + 3364: 6(float) CompositeExtract 3363 2 + 3365: 6(float) ImageSampleDrefImplicitLod 3362 3363 3364 + 3366: 174(ptr) AccessChain 3262(texel) 173 + 3367: 6(float) Load 3366 + 3368: 6(float) FAdd 3367 3365 + 3369: 174(ptr) AccessChain 3262(texel) 173 + Store 3369 3368 + 3370: 214 Load 3343(t2DArray) + 3371: 3266 Load 3303(sShadow) + 3372: 245 SampledImage 3370 3371 + 3373: 7(fvec4) Load 197(c4) + 3374: 6(float) CompositeExtract 3373 3 + 3375: 6(float) ImageSampleDrefImplicitLod 3372 3373 3374 + 3376: 174(ptr) AccessChain 3262(texel) 173 + 3377: 6(float) Load 3376 + 3378: 6(float) FAdd 3377 3375 + 3379: 174(ptr) AccessChain 3262(texel) 173 + Store 3379 3378 + 3382: 256 Load 3381(t2DRect) + 3383: 3266 Load 3268(s) + 3384: 257 SampledImage 3382 3383 + 3385: 52(fvec2) Load 138(c2) + 3386: 7(fvec4) ImageSampleImplicitLod 3384 3385 + 3387: 7(fvec4) Load 3262(texel) + 3388: 7(fvec4) FAdd 3387 3386 + Store 3262(texel) 3388 + 3389: 256 Load 3381(t2DRect) + 3390: 3266 Load 3303(sShadow) + 3391: 266 SampledImage 3389 3390 + 3392: 148(fvec3) Load 150(c3) + 3393: 6(float) CompositeExtract 3392 2 + 3394: 6(float) ImageSampleDrefImplicitLod 3391 3392 3393 + 3395: 174(ptr) AccessChain 3262(texel) 173 + 3396: 6(float) Load 3395 + 3397: 6(float) FAdd 3396 3394 + 3398: 174(ptr) AccessChain 3262(texel) 173 + Store 3398 3397 + 3399: 223 Load 3352(tCubeArray) + 3400: 3266 Load 3303(sShadow) + 3401: 278 SampledImage 3399 3400 + 3402: 7(fvec4) Load 197(c4) + 3403: 6(float) Load 283(compare) + 3404: 6(float) ImageSampleDrefImplicitLod 3401 3402 3403 + 3405: 174(ptr) AccessChain 3262(texel) 173 + 3406: 6(float) Load 3405 + 3407: 6(float) FAdd 3406 3404 + 3408: 174(ptr) AccessChain 3262(texel) 173 + Store 3408 3407 + 3409: 7(fvec4) Load 3262(texel) + ReturnValue 3409 + FunctionEnd +116(testSubpassLoad(): 7(fvec4) Function None 8 + 117: Label + 3415: 3412 Load 3414(subpass) + 3417: 7(fvec4) ImageRead 3415 3416 + 3421: 3418 Load 3420(subpassMS) + 3422: 7(fvec4) ImageRead 3421 3416 Sample 799 + 3423: 7(fvec4) FAdd 3417 3422 + ReturnValue 3423 + FunctionEnd diff --git a/Test/spv.floatFetch.frag b/Test/spv.floatFetch.frag new file mode 100644 index 000000000..c02ddf35f --- /dev/null +++ b/Test/spv.floatFetch.frag @@ -0,0 +1,941 @@ +#version 450 core + +#extension GL_ARB_sparse_texture2: enable +#extension GL_ARB_sparse_texture_clamp: enable +#extension GL_AMD_texture_gather_bias_lod: enable + +layout(set = 0, binding = 0) uniform sampler1D s1D; +layout(set = 0, binding = 1) uniform sampler2D s2D; +layout(set = 0, binding = 2) uniform sampler3D s3D; +layout(set = 0, binding = 3) uniform sampler2DRect s2DRect; +layout(set = 0, binding = 4) uniform samplerCube sCube; +layout(set = 0, binding = 5) uniform samplerBuffer sBuffer; +layout(set = 0, binding = 6) uniform sampler2DMS s2DMS; +layout(set = 0, binding = 7) uniform sampler1DArray s1DArray; +layout(set = 0, binding = 8) uniform sampler2DArray s2DArray; +layout(set = 0, binding = 9) uniform samplerCubeArray sCubeArray; +layout(set = 0, binding = 10) uniform sampler2DMSArray s2DMSArray; + +layout(set = 0, binding = 11) uniform sampler1DShadow s1DShadow; +layout(set = 0, binding = 12) uniform sampler2DShadow s2DShadow; +layout(set = 0, binding = 13) uniform sampler2DRectShadow s2DRectShadow; +layout(set = 0, binding = 14) uniform samplerCubeShadow sCubeShadow; +layout(set = 0, binding = 15) uniform sampler1DArrayShadow s1DArrayShadow; +layout(set = 0, binding = 16) uniform sampler2DArrayShadow s2DArrayShadow; +layout(set = 0, binding = 17) uniform samplerCubeArrayShadow sCubeArrayShadow; + +layout(set = 1, binding = 0) layout(rgba16f) uniform image1D i1D; +layout(set = 1, binding = 1) layout(rgba16f) uniform image2D i2D; +layout(set = 1, binding = 2) layout(rgba16f) uniform image3D i3D; +layout(set = 1, binding = 3) layout(rgba16f) uniform image2DRect i2DRect; +layout(set = 1, binding = 4) layout(rgba16f) uniform imageCube iCube; +layout(set = 1, binding = 5) layout(rgba16f) uniform image1DArray i1DArray; +layout(set = 1, binding = 6) layout(rgba16f) uniform image2DArray i2DArray; +layout(set = 1, binding = 7) layout(rgba16f) uniform imageCubeArray iCubeArray; +layout(set = 1, binding = 8) layout(rgba16f) uniform imageBuffer iBuffer; +layout(set = 1, binding = 9) layout(rgba16f) uniform image2DMS i2DMS; +layout(set = 1, binding = 10) layout(rgba16f) uniform image2DMSArray i2DMSArray; + +layout(set = 2, binding = 0) uniform texture1D t1D; +layout(set = 2, binding = 1) uniform texture2D t2D; +layout(set = 2, binding = 2) uniform texture3D t3D; +layout(set = 2, binding = 3) uniform texture2DRect t2DRect; +layout(set = 2, binding = 4) uniform textureCube tCube; +layout(set = 2, binding = 5) uniform texture1DArray t1DArray; +layout(set = 2, binding = 6) uniform texture2DArray t2DArray; +layout(set = 2, binding = 7) uniform textureCubeArray tCubeArray; +layout(set = 2, binding = 8) uniform textureBuffer tBuffer; +layout(set = 2, binding = 9) uniform texture2DMS t2DMS; +layout(set = 2, binding = 10) uniform texture2DMSArray t2DMSArray; + +layout(set = 2, binding = 11) uniform sampler s; +layout(set = 2, binding = 12) uniform samplerShadow sShadow; + +layout(set = 3, binding = 0, input_attachment_index = 0) uniform subpassInput subpass; +layout(set = 3, binding = 1, input_attachment_index = 0) uniform subpassInputMS subpassMS; + +layout(location = 0) in float c1; +layout(location = 1) in vec2 c2; +layout(location = 2) in vec3 c3; +layout(location = 3) in vec4 c4; + +layout(location = 4) in float compare; +layout(location = 5) in float lod; +layout(location = 6) in float bias; +layout(location = 7) in float lodClamp; + +layout(location = 8) in float dPdxy1; +layout(location = 9) in vec2 dPdxy2; +layout(location = 10) in vec3 dPdxy3; + +const int offset1 = 1; +const ivec2 offset2 = ivec2(1); +const ivec3 offset3 = ivec3(1); +const ivec2 offsets[4] = { offset2, offset2, offset2, offset2 }; + +layout(location = 0) out vec4 fragColor; + +vec4 testTexture() +{ + vec4 texel = vec4(0.0); + + texel += texture(s1D, c1); + texel += texture(s2D, c2); + texel += texture(s3D, c3); + texel += texture(sCube, c3); + texel.x += texture(s1DShadow, c3); + texel.x += texture(s2DShadow, c3); + texel.x += texture(sCubeShadow, c4); + texel += texture(s1DArray, c2); + texel += texture(s2DArray, c3); + texel += texture(sCubeArray, c4); + texel.x += texture(s1DArrayShadow, c3); + texel.x += texture(s2DArrayShadow, c4); + texel += texture(s2DRect, c2); + texel.x += texture(s2DRectShadow, c3); + texel.x += texture(sCubeArrayShadow, c4, compare); + + return texel; +} + +vec4 testTextureProj() +{ + vec4 texel = vec4(0.0); + + texel += textureProj(s1D, c2); + texel += textureProj(s1D, c4); + texel += textureProj(s2D, c3); + texel += textureProj(s2D, c4); + texel += textureProj(s3D, c4); + texel.x += textureProj(s1DShadow, c4); + texel.x += textureProj(s2DShadow, c4); + texel += textureProj(s2DRect, c3); + texel += textureProj(s2DRect, c4); + texel.x += textureProj(s2DRectShadow, c4); + + return texel; +} + +vec4 testTextureLod() +{ + vec4 texel = vec4(0.0); + + texel += textureLod(s1D, c1, lod); + texel += textureLod(s2D, c2, lod); + texel += textureLod(s3D, c3, lod); + texel += textureLod(sCube, c3, lod); + texel.x += textureLod(s1DShadow, c3, lod); + texel.x += textureLod(s2DShadow, c3, lod); + texel += textureLod(s1DArray, c2, lod); + texel += textureLod(s2DArray, c3, lod); + texel.x += textureLod(s1DArrayShadow, c3, lod); + texel += textureLod(sCubeArray, c4, lod); + + return texel; +} + +vec4 testTextureOffset() +{ + vec4 texel = vec4(0.0); + + texel += textureOffset(s1D, c1, offset1); + texel += textureOffset(s2D, c2, offset2); + texel += textureOffset(s3D, c3, offset3); + texel += textureOffset(s2DRect, c2, offset2); + texel.x += textureOffset(s2DRectShadow, c3, offset2); + texel.x += textureOffset(s1DShadow, c3, offset1); + texel.x += textureOffset(s2DShadow, c3, offset2); + texel += textureOffset(s1DArray, c2, offset1); + texel += textureOffset(s2DArray, c3, offset2); + texel.x += textureOffset(s1DArrayShadow, c3, offset1); + texel.x += textureOffset(s2DArrayShadow, c4, offset2); + + return texel; +} + +vec4 testTextureProjOffset() +{ + vec4 texel = vec4(0.0); + + texel += textureProjOffset(s1D, c2, offset1); + texel += textureProjOffset(s1D, c4, offset1); + texel += textureProjOffset(s2D, c3, offset2); + texel += textureProjOffset(s2D, c4, offset2); + texel += textureProjOffset(s3D, c4, offset3); + texel += textureProjOffset(s2DRect, c3, offset2); + texel += textureProjOffset(s2DRect, c4, offset2); + texel.x += textureProjOffset(s2DRectShadow, c4, offset2); + texel.x += textureProjOffset(s1DShadow, c4, offset1); + texel.x += textureProjOffset(s2DShadow, c4, offset2); + + return texel; +} + +vec4 testTextureLodOffset() +{ + vec4 texel = vec4(0.0); + + texel += textureLodOffset(s1D, c1, lod, offset1); + texel += textureLodOffset(s2D, c2, lod, offset2); + texel += textureLodOffset(s3D, c3, lod, offset3); + texel.x += textureLodOffset(s1DShadow, c3, lod, offset1); + texel.x += textureLodOffset(s2DShadow, c3, lod, offset2); + texel += textureLodOffset(s1DArray, c2, lod, offset1); + texel += textureLodOffset(s2DArray, c3, lod, offset2); + texel.x += textureLodOffset(s1DArrayShadow, c3, lod, offset1); + + return texel; +} + +vec4 testTextureProjLodOffset() +{ + vec4 texel = vec4(0.0); + + texel += textureProjLodOffset(s1D, c2, lod, offset1); + texel += textureProjLodOffset(s1D, c4, lod, offset1); + texel += textureProjLodOffset(s2D, c3, lod, offset2); + texel += textureProjLodOffset(s2D, c4, lod, offset2); + texel += textureProjLodOffset(s3D, c4, lod, offset3); + texel.x += textureProjLodOffset(s1DShadow, c4, lod, offset1); + texel.x += textureProjLodOffset(s2DShadow, c4, lod, offset2); + + return texel; +} + +vec4 testTexelFetch() +{ + vec4 texel = vec4(0.0); + + texel += texelFetch(s1D, int(c1), int(lod)); + texel += texelFetch(s2D, ivec2(c2), int(lod)); + texel += texelFetch(s3D, ivec3(c3), int(lod)); + texel += texelFetch(s2DRect, ivec2(c2)); + texel += texelFetch(s1DArray, ivec2(c2), int(lod)); + texel += texelFetch(s2DArray, ivec3(c3), int(lod)); + texel += texelFetch(sBuffer, int(c1)); + texel += texelFetch(s2DMS, ivec2(c2), 1); + texel += texelFetch(s2DMSArray, ivec3(c3), 2); + + return texel; +} + +vec4 testTexelFetchOffset() +{ + vec4 texel = vec4(0.0); + + texel += texelFetchOffset(s1D, int(c1), int(lod), offset1); + texel += texelFetchOffset(s2D, ivec2(c2), int(lod), offset2); + texel += texelFetchOffset(s3D, ivec3(c3), int(lod), offset3); + texel += texelFetchOffset(s2DRect, ivec2(c2), offset2); + texel += texelFetchOffset(s1DArray, ivec2(c2), int(lod), offset1); + texel += texelFetchOffset(s2DArray, ivec3(c3), int(lod), offset2); + + return texel; +} + +vec4 testTextureGrad() +{ + vec4 texel = vec4(0.0); + + texel += textureGrad(s1D, c1, dPdxy1, dPdxy1); + texel += textureGrad(s2D, c2, dPdxy2, dPdxy2); + texel += textureGrad(s3D, c3, dPdxy3, dPdxy3); + texel += textureGrad(sCube, c3, dPdxy3, dPdxy3); + texel += textureGrad(s2DRect, c2, dPdxy2, dPdxy2); + texel.x += textureGrad(s2DRectShadow, c3, dPdxy2, dPdxy2); + texel.x += textureGrad(s1DShadow, c3, dPdxy1, dPdxy1); + texel.x += textureGrad(s2DShadow, c3, dPdxy2, dPdxy2); + texel.x += textureGrad(sCubeShadow, c4, dPdxy3, dPdxy3); + texel += textureGrad(s1DArray, c2, dPdxy1, dPdxy1); + texel += textureGrad(s2DArray, c3, dPdxy2, dPdxy2); + texel.x += textureGrad(s1DArrayShadow, c3, dPdxy1, dPdxy1); + texel.x += textureGrad(s2DArrayShadow, c4, dPdxy2, dPdxy2); + texel += textureGrad(sCubeArray, c4, dPdxy3, dPdxy3); + + return texel; +} + +vec4 testTextureGradOffset() +{ + vec4 texel = vec4(0.0); + + texel += textureGradOffset(s1D, c1, dPdxy1, dPdxy1, offset1); + texel += textureGradOffset(s2D, c2, dPdxy2, dPdxy2, offset2); + texel += textureGradOffset(s3D, c3, dPdxy3, dPdxy3, offset3); + texel += textureGradOffset(s2DRect, c2, dPdxy2, dPdxy2, offset2); + texel.x += textureGradOffset(s2DRectShadow, c3, dPdxy2, dPdxy2, offset2); + texel.x += textureGradOffset(s1DShadow, c3, dPdxy1, dPdxy1, offset1); + texel.x += textureGradOffset(s2DShadow, c3, dPdxy2, dPdxy2, offset2); + texel += textureGradOffset(s1DArray, c2, dPdxy1, dPdxy1, offset1); + texel += textureGradOffset(s2DArray, c3, dPdxy2, dPdxy2, offset2); + texel.x += textureGradOffset(s1DArrayShadow, c3, dPdxy1, dPdxy1, offset1); + texel.x += textureGradOffset(s2DArrayShadow, c4, dPdxy2, dPdxy2, offset2); + + return texel; +} + +vec4 testTextureProjGrad() +{ + vec4 texel = vec4(0.0); + + texel += textureProjGrad(s1D, c2, dPdxy1, dPdxy1); + texel += textureProjGrad(s1D, c4, dPdxy1, dPdxy1); + texel += textureProjGrad(s2D, c3, dPdxy2, dPdxy2); + texel += textureProjGrad(s2D, c4, dPdxy2, dPdxy2); + texel += textureProjGrad(s3D, c4, dPdxy3, dPdxy3); + texel += textureProjGrad(s2DRect, c3, dPdxy2, dPdxy2); + texel += textureProjGrad(s2DRect, c4, dPdxy2, dPdxy2); + texel.x += textureProjGrad(s2DRectShadow, c4, dPdxy2, dPdxy2); + texel.x += textureProjGrad(s1DShadow, c4, dPdxy1, dPdxy1); + texel.x += textureProjGrad(s2DShadow, c4, dPdxy2, dPdxy2); + + return texel; +} + +vec4 testTextureProjGradoffset() +{ + vec4 texel = vec4(0.0); + + texel += textureProjGradOffset(s1D, c2, dPdxy1, dPdxy1, offset1); + texel += textureProjGradOffset(s1D, c4, dPdxy1, dPdxy1, offset1); + texel += textureProjGradOffset(s2D, c3, dPdxy2, dPdxy2, offset2); + texel += textureProjGradOffset(s2D, c4, dPdxy2, dPdxy2, offset2); + texel += textureProjGradOffset(s2DRect, c3, dPdxy2, dPdxy2, offset2); + texel += textureProjGradOffset(s2DRect, c4, dPdxy2, dPdxy2, offset2); + texel.x += textureProjGradOffset(s2DRectShadow, c4, dPdxy2, dPdxy2, offset2); + texel += textureProjGradOffset(s3D, c4, dPdxy3, dPdxy3, offset3); + texel.x += textureProjGradOffset(s1DShadow, c4, dPdxy1, dPdxy1, offset1); + texel.x += textureProjGradOffset(s2DShadow, c4, dPdxy2, dPdxy2, offset2); + + return texel; +} + +vec4 testTextureGather() +{ + vec4 texel = vec4(0.0); + + texel += textureGather(s2D, c2, 0); + texel += textureGather(s2DArray, c3, 0); + texel += textureGather(sCube, c3, 0); + texel += textureGather(sCubeArray, c4, 0); + texel += textureGather(s2DRect, c2, 0); + texel += textureGather(s2DShadow, c2, compare); + texel += textureGather(s2DArrayShadow, c3, compare); + texel += textureGather(sCubeShadow, c3, compare); + texel += textureGather(sCubeArrayShadow, c4, compare); + texel += textureGather(s2DRectShadow, c2, compare); + + return texel; +} + +vec4 testTextureGatherOffset() +{ + vec4 texel = vec4(0.0); + + texel += textureGatherOffset(s2D, c2, offset2, 0); + texel += textureGatherOffset(s2DArray, c3, offset2, 0); + texel += textureGatherOffset(s2DRect, c2, offset2, 0); + texel += textureGatherOffset(s2DShadow, c2, compare, offset2); + texel += textureGatherOffset(s2DArrayShadow, c3, compare, offset2); + texel += textureGatherOffset(s2DRectShadow, c2, compare, offset2); + + return texel; +} + +vec4 testTextureGatherOffsets() +{ + vec4 texel = vec4(0.0); + + texel += textureGatherOffsets(s2D, c2, offsets, 0); + texel += textureGatherOffsets(s2DArray, c3, offsets, 0); + texel += textureGatherOffsets(s2DRect, c2, offsets, 0); + texel += textureGatherOffsets(s2DShadow, c2, compare, offsets); + texel += textureGatherOffsets(s2DArrayShadow, c3, compare, offsets); + texel += textureGatherOffsets(s2DRectShadow, c2, compare, offsets); + + return texel; +} + +vec4 testTextureGatherLod() +{ + vec4 texel = vec4(0.0); + + texel += textureGatherLodAMD(s2D, c2, lod, 0); + texel += textureGatherLodAMD(s2DArray, c3, lod, 0); + texel += textureGatherLodAMD(sCube, c3, lod, 0); + texel += textureGatherLodAMD(sCubeArray, c4, lod, 0); + + return texel; +} + +vec4 testTextureGatherLodOffset() +{ + vec4 texel = vec4(0.0); + + texel += textureGatherLodOffsetAMD(s2D, c2, lod, offset2, 0); + texel += textureGatherLodOffsetAMD(s2DArray, c3, lod, offset2, 0); + + return texel; +} + +vec4 testTextureGatherLodOffsets() +{ + vec4 texel = vec4(0.0); + + texel += textureGatherLodOffsetsAMD(s2D, c2, lod, offsets, 0); + texel += textureGatherLodOffsetsAMD(s2DArray, c3, lod, offsets, 0); + + return texel; +} + +ivec4 testTextureSize() +{ + ivec4 size = ivec4(0); + + size.x += textureSize(s1D, int(lod)); + size.xy += textureSize(s2D, int(lod)); + size.xyz += textureSize(s3D, int(lod)); + size.xy += textureSize(sCube, int(lod)); + size.x += textureSize(s1DShadow, int(lod)); + size.xy += textureSize(s2DShadow, int(lod)); + size.xy += textureSize(sCubeShadow, int(lod)); + size.xyz += textureSize(sCubeArray, int(lod)); + size.xyz += textureSize(sCubeArrayShadow, int(lod)); + size.xy += textureSize(s2DRect); + size.xy += textureSize(s2DRectShadow); + size.xy += textureSize(s1DArray, int(lod)); + size.xyz += textureSize(s2DArray, int(lod)); + size.xy += textureSize(s1DArrayShadow, int(lod)); + size.xyz += textureSize(s2DArrayShadow, int(lod)); + size.x += textureSize(sBuffer); + size.xy += textureSize(s2DMS); + size.xyz += textureSize(s2DMSArray); + + return size; +} + +vec2 testTextureQueryLod() +{ + vec2 lod = vec2(0.0); + + lod += textureQueryLod(s1D, c1); + lod += textureQueryLod(s2D, c2); + lod += textureQueryLod(s3D, c3); + lod += textureQueryLod(sCube, c3); + lod += textureQueryLod(s1DArray, c1); + lod += textureQueryLod(s2DArray, c2); + lod += textureQueryLod(sCubeArray, c3); + lod += textureQueryLod(s1DShadow, c1); + lod += textureQueryLod(s2DShadow, c2); + lod += textureQueryLod(sCubeArrayShadow, c3); + lod += textureQueryLod(s1DArrayShadow, c1); + lod += textureQueryLod(s2DArrayShadow, c2); + lod += textureQueryLod(sCubeArrayShadow, c3); + + return lod; +} + +int testTextureQueryLevels() +{ + int levels = 0; + + levels += textureQueryLevels(s1D); + levels += textureQueryLevels(s2D); + levels += textureQueryLevels(s3D); + levels += textureQueryLevels(sCube); + levels += textureQueryLevels(s1DShadow); + levels += textureQueryLevels(s2DShadow); + levels += textureQueryLevels(sCubeShadow); + levels += textureQueryLevels(sCubeArray); + levels += textureQueryLevels(sCubeArrayShadow); + levels += textureQueryLevels(s1DArray); + levels += textureQueryLevels(s2DArray); + levels += textureQueryLevels(s1DArrayShadow); + levels += textureQueryLevels(s2DArrayShadow); + + return levels; +} + +int testTextureSamples() +{ + int samples = 0; + + samples += textureSamples(s2DMS); + samples += textureSamples(s2DMSArray); + + return samples; +} + +vec4 testImageLoad() +{ + vec4 texel = vec4(0.0); + + texel += imageLoad(i1D, int(c1)); + texel += imageLoad(i2D, ivec2(c2)); + texel += imageLoad(i3D, ivec3(c3)); + texel += imageLoad(i2DRect, ivec2(c2)); + texel += imageLoad(iCube, ivec3(c3)); + texel += imageLoad(iBuffer, int(c1)); + texel += imageLoad(i1DArray, ivec2(c2)); + texel += imageLoad(i2DArray, ivec3(c3)); + texel += imageLoad(iCubeArray, ivec3(c3)); + texel += imageLoad(i2DMS, ivec2(c2), 1); + texel += imageLoad(i2DMSArray, ivec3(c3), 1); + + return texel; +} + +void testImageStore(vec4 data) +{ + imageStore(i1D, int(c1), data); + imageStore(i2D, ivec2(c2), data); + imageStore(i3D, ivec3(c3), data); + imageStore(i2DRect, ivec2(c2), data); + imageStore(iCube, ivec3(c3), data); + imageStore(iBuffer, int(c1), data); + imageStore(i1DArray, ivec2(c2), data); + imageStore(i2DArray, ivec3(c3), data); + imageStore(iCubeArray, ivec3(c3), data); + imageStore(i2DMS, ivec2(c2), 1, data); + imageStore(i2DMSArray, ivec3(c3), 1, data); +} + +vec4 testSparseTexture() +{ + vec4 texel = vec4(0.0); + + sparseTextureARB(s2D, c2, texel); + sparseTextureARB(s3D, c3, texel); + sparseTextureARB(sCube, c3, texel); + sparseTextureARB(s2DShadow, c3, texel.x); + sparseTextureARB(sCubeShadow, c4, texel.x); + sparseTextureARB(s2DArray, c3, texel); + sparseTextureARB(sCubeArray, c4, texel); + sparseTextureARB(s2DArrayShadow, c4, texel.x); + sparseTextureARB(s2DRect, c2, texel); + sparseTextureARB(s2DRectShadow, c3, texel.x); + sparseTextureARB(sCubeArrayShadow, c4, compare, texel.x); + + return texel; +} + +vec4 testSparseTextureLod() +{ + vec4 texel = vec4(0.0); + + sparseTextureLodARB(s2D, c2, lod, texel); + sparseTextureLodARB(s3D, c3, lod, texel); + sparseTextureLodARB(sCube, c3, lod, texel); + sparseTextureLodARB(s2DShadow, c3, lod, texel.x); + sparseTextureLodARB(s2DArray, c3, lod, texel); + sparseTextureLodARB(sCubeArray, c4, lod, texel); + + return texel; +} + +vec4 testSparseTextureOffset() +{ + vec4 texel = vec4(0.0); + + sparseTextureOffsetARB(s2D, c2, offset2, texel); + sparseTextureOffsetARB(s3D, c3, offset3, texel); + sparseTextureOffsetARB(s2DRect, c2, offset2, texel); + sparseTextureOffsetARB(s2DRectShadow, c3, offset2, texel.x); + sparseTextureOffsetARB(s2DShadow, c3, offset2, texel.x); + sparseTextureOffsetARB(s2DArray, c3, offset2, texel); + sparseTextureOffsetARB(s2DArrayShadow, c4, offset2, texel.x); + + return texel; +} + +vec4 testSparseTextureLodOffset() +{ + vec4 texel = vec4(0.0); + + sparseTextureLodOffsetARB(s2D, c2, lod, offset2, texel); + sparseTextureLodOffsetARB(s3D, c3, lod, offset3, texel); + sparseTextureLodOffsetARB(s2DShadow, c3, lod, offset2, texel.x); + sparseTextureLodOffsetARB(s2DArray, c3, lod, offset2, texel); + + return texel; +} + +vec4 testSparseTextureGrad() +{ + vec4 texel = vec4(0.0); + + sparseTextureGradARB(s2D, c2, dPdxy2, dPdxy2, texel); + sparseTextureGradARB(s3D, c3, dPdxy3, dPdxy3, texel); + sparseTextureGradARB(sCube, c3, dPdxy3, dPdxy3, texel); + sparseTextureGradARB(s2DRect, c2, dPdxy2, dPdxy2, texel); + sparseTextureGradARB(s2DRectShadow, c3, dPdxy2, dPdxy2, texel.x); + sparseTextureGradARB(s2DShadow, c3, dPdxy2, dPdxy2, texel.x); + sparseTextureGradARB(sCubeShadow, c4, dPdxy3, dPdxy3, texel.x); + sparseTextureGradARB(s2DArray, c3, dPdxy2, dPdxy2, texel); + sparseTextureGradARB(s2DArrayShadow, c4, dPdxy2, dPdxy2, texel.x); + sparseTextureGradARB(sCubeArray, c4, dPdxy3, dPdxy3, texel); + + return texel; +} + +vec4 testSparseTextureGradOffset() +{ + vec4 texel = vec4(0.0); + + sparseTextureGradOffsetARB(s2D, c2, dPdxy2, dPdxy2, offset2, texel); + sparseTextureGradOffsetARB(s3D, c3, dPdxy3, dPdxy3, offset3, texel); + sparseTextureGradOffsetARB(s2DRect, c2, dPdxy2, dPdxy2, offset2, texel); + sparseTextureGradOffsetARB(s2DRectShadow, c3, dPdxy2, dPdxy2, offset2, texel.x); + sparseTextureGradOffsetARB(s2DShadow, c3, dPdxy2, dPdxy2, offset2, texel.x); + sparseTextureGradOffsetARB(s2DArray, c3, dPdxy2, dPdxy2, offset2, texel); + sparseTextureGradOffsetARB(s2DArrayShadow, c4, dPdxy2, dPdxy2, offset2, texel.x); + + return texel; +} + +vec4 testSparseTexelFetch() +{ + vec4 texel = vec4(0.0); + + sparseTexelFetchARB(s2D, ivec2(c2), int(lod), texel); + sparseTexelFetchARB(s3D, ivec3(c3), int(lod), texel); + sparseTexelFetchARB(s2DRect, ivec2(c2), texel); + sparseTexelFetchARB(s2DArray, ivec3(c3), int(lod), texel); + sparseTexelFetchARB(s2DMS, ivec2(c2), 1, texel); + sparseTexelFetchARB(s2DMSArray, ivec3(c3), 2, texel); + + return texel; +} + +vec4 testSparseTexelFetchOffset() +{ + vec4 texel = vec4(0.0); + + sparseTexelFetchOffsetARB(s2D, ivec2(c2), int(lod), offset2, texel); + sparseTexelFetchOffsetARB(s3D, ivec3(c3), int(lod), offset3, texel); + sparseTexelFetchOffsetARB(s2DRect, ivec2(c2), offset2, texel); + sparseTexelFetchOffsetARB(s2DArray, ivec3(c3), int(lod), offset2, texel); + + return texel; +} + +vec4 testSparseTextureGather() +{ + vec4 texel = vec4(0.0); + + sparseTextureGatherARB(s2D, c2, texel, 0); + sparseTextureGatherARB(s2DArray, c3, texel, 0); + sparseTextureGatherARB(sCube, c3, texel, 0); + sparseTextureGatherARB(sCubeArray, c4, texel, 0); + sparseTextureGatherARB(s2DRect, c2, texel, 0); + sparseTextureGatherARB(s2DShadow, c2, compare, texel); + sparseTextureGatherARB(s2DArrayShadow, c3, compare, texel); + sparseTextureGatherARB(sCubeShadow, c3, compare, texel); + sparseTextureGatherARB(sCubeArrayShadow, c4, compare, texel); + sparseTextureGatherARB(s2DRectShadow, c2, compare, texel); + + return texel; +} + +vec4 testSparseTextureGatherOffset() +{ + vec4 texel = vec4(0.0); + + sparseTextureGatherOffsetARB(s2D, c2, offset2, texel, 0); + sparseTextureGatherOffsetARB(s2DArray, c3, offset2, texel, 0); + sparseTextureGatherOffsetARB(s2DRect, c2, offset2, texel, 0); + sparseTextureGatherOffsetARB(s2DShadow, c2, compare, offset2, texel); + sparseTextureGatherOffsetARB(s2DArrayShadow, c3, compare, offset2, texel); + sparseTextureGatherOffsetARB(s2DRectShadow, c2, compare, offset2, texel); + + return texel; +} + +vec4 testSparseTextureGatherOffsets() +{ + vec4 texel = vec4(0.0); + const ivec2 constOffsets[4] = ivec2[4](ivec2(1,2), ivec2(3,4), ivec2(15,16), ivec2(-2,0)); + + sparseTextureGatherOffsetsARB(s2D, c2, constOffsets, texel, 0); + sparseTextureGatherOffsetsARB(s2DArray, c3, constOffsets, texel, 0); + sparseTextureGatherOffsetsARB(s2DRect, c2, constOffsets, texel, 0); + sparseTextureGatherOffsetsARB(s2DShadow, c2, compare, constOffsets, texel); + sparseTextureGatherOffsetsARB(s2DArrayShadow, c3, compare, constOffsets, texel); + sparseTextureGatherOffsetsARB(s2DRectShadow, c2, compare, constOffsets, texel); + + return texel; +} + +vec4 testSparseTextureGatherLod() +{ + vec4 texel = vec4(0.0); + + sparseTextureGatherLodAMD(s2D, c2, lod, texel, 0); + sparseTextureGatherLodAMD(s2DArray, c3, lod, texel, 0); + sparseTextureGatherLodAMD(sCube, c3, lod, texel, 0); + sparseTextureGatherLodAMD(sCubeArray, c4, lod, texel, 0); + + return texel; +} + +vec4 testSparseTextureGatherLodOffset() +{ + vec4 texel = vec4(0.0); + + sparseTextureGatherLodOffsetAMD(s2D, c2, lod, offset2, texel, 0); + sparseTextureGatherLodOffsetAMD(s2DArray, c3, lod, offset2, texel, 0); + + return texel; +} + +vec4 testSparseTextureGatherLodOffsets() +{ + vec4 texel = vec4(0.0); + + sparseTextureGatherLodOffsetsAMD(s2D, c2, lod, offsets, texel, 0); + sparseTextureGatherLodOffsetsAMD(s2DArray, c3, lod, offsets, texel, 0); + + return texel; +} + +vec4 testSparseImageLoad() +{ + vec4 texel = vec4(0.0); + + sparseImageLoadARB(i2D, ivec2(c2), texel); + sparseImageLoadARB(i3D, ivec3(c3), texel); + sparseImageLoadARB(i2DRect, ivec2(c2), texel); + sparseImageLoadARB(iCube, ivec3(c3), texel); + sparseImageLoadARB(i2DArray, ivec3(c3), texel); + sparseImageLoadARB(iCubeArray, ivec3(c3), texel); + sparseImageLoadARB(i2DMS, ivec2(c2), 1, texel); + sparseImageLoadARB(i2DMSArray, ivec3(c3), 2, texel); + + return texel; +} + +vec4 testSparseTextureClamp() +{ + vec4 texel = vec4(0.0); + + sparseTextureClampARB(s2D, c2, lodClamp, texel); + sparseTextureClampARB(s3D, c3, lodClamp, texel); + sparseTextureClampARB(sCube, c3, lodClamp, texel); + sparseTextureClampARB(s2DShadow, c3, lodClamp, texel.x); + sparseTextureClampARB(sCubeShadow, c4, lodClamp, texel.x); + sparseTextureClampARB(s2DArray, c3, lodClamp, texel); + sparseTextureClampARB(sCubeArray, c4, lodClamp, texel); + sparseTextureClampARB(s2DArrayShadow, c4, lodClamp, texel.x); + sparseTextureClampARB(sCubeArrayShadow, c4, compare, lodClamp, texel.x); + + return texel; +} + +vec4 testTextureClamp() +{ + vec4 texel = vec4(0.0); + + texel += textureClampARB(s1D, c1, lodClamp); + texel += textureClampARB(s2D, c2, lodClamp); + texel += textureClampARB(s3D, c3, lodClamp); + texel += textureClampARB(sCube, c3, lodClamp); + texel.x += textureClampARB(s1DShadow, c3, lodClamp); + texel.x += textureClampARB(s2DShadow, c3, lodClamp); + texel.x += textureClampARB(sCubeShadow, c4, lodClamp); + texel += textureClampARB(s1DArray, c2, lodClamp); + texel += textureClampARB(s2DArray, c3, lodClamp); + texel += textureClampARB(sCubeArray, c4, lodClamp); + texel.x += textureClampARB(s1DArrayShadow, c3, lodClamp); + texel.x += textureClampARB(s2DArrayShadow, c4, lodClamp); + texel.x += textureClampARB(sCubeArrayShadow, c4, compare, lodClamp); + + return texel; +} + +vec4 testSparseTextureOffsetClamp() +{ + vec4 texel = vec4(0.0); + + sparseTextureOffsetClampARB(s2D, c2, offset2, lodClamp, texel); + sparseTextureOffsetClampARB(s3D, c3, offset3, lodClamp, texel); + sparseTextureOffsetClampARB(s2DShadow, c3, offset2, lodClamp, texel.x); + sparseTextureOffsetClampARB(s2DArray, c3, offset2, lodClamp, texel); + sparseTextureOffsetClampARB(s2DArrayShadow, c4, offset2, lodClamp, texel.x); + + return texel; +} + +vec4 testTextureOffsetClamp() +{ + vec4 texel = vec4(0.0); + + texel += textureOffsetClampARB(s1D, c1, offset1, lodClamp); + texel += textureOffsetClampARB(s2D, c2, offset2, lodClamp); + texel += textureOffsetClampARB(s3D, c3, offset3, lodClamp); + texel.x += textureOffsetClampARB(s1DShadow, c3, offset1, lodClamp); + texel.x += textureOffsetClampARB(s2DShadow, c3, offset2, lodClamp); + texel += textureOffsetClampARB(s1DArray, c2, offset1, lodClamp); + texel += textureOffsetClampARB(s2DArray, c3, offset2, lodClamp); + texel.x += textureOffsetClampARB(s1DArrayShadow, c3, offset1, lodClamp); + texel.x += textureOffsetClampARB(s2DArrayShadow, c4, offset2, lodClamp); + + return texel; +} + +vec4 testSparseTextureGradClamp() +{ + vec4 texel = vec4(0.0); + + sparseTextureGradClampARB(s2D, c2, dPdxy2, dPdxy2, lodClamp, texel); + sparseTextureGradClampARB(s3D, c3, dPdxy3, dPdxy3, lodClamp, texel); + sparseTextureGradClampARB(sCube, c3, dPdxy3, dPdxy3, lodClamp, texel); + sparseTextureGradClampARB(s2DShadow, c3, dPdxy2, dPdxy2, lodClamp, texel.x); + sparseTextureGradClampARB(sCubeShadow, c4, dPdxy3, dPdxy3, lodClamp, texel.x); + sparseTextureGradClampARB(s2DArray, c3, dPdxy2, dPdxy2, lodClamp, texel); + sparseTextureGradClampARB(s2DArrayShadow, c4, dPdxy2, dPdxy2, lodClamp, texel.x); + sparseTextureGradClampARB(sCubeArray, c4, dPdxy3, dPdxy3, lodClamp, texel); + + return texel; +} + +vec4 testTextureGradClamp() +{ + vec4 texel = vec4(0.0); + + texel += textureGradClampARB(s1D, c1, dPdxy1, dPdxy1, lodClamp); + texel += textureGradClampARB(s2D, c2, dPdxy2, dPdxy2, lodClamp); + texel += textureGradClampARB(s3D, c3, dPdxy3, dPdxy3, lodClamp); + texel += textureGradClampARB(sCube, c3, dPdxy3, dPdxy3, lodClamp); + texel.x += textureGradClampARB(s1DShadow, c3, dPdxy1, dPdxy1, lodClamp); + texel.x += textureGradClampARB(s2DShadow, c3, dPdxy2, dPdxy2, lodClamp); + texel.x += textureGradClampARB(sCubeShadow, c4, dPdxy3, dPdxy3, lodClamp); + texel += textureGradClampARB(s1DArray, c2, dPdxy1, dPdxy1, lodClamp); + texel += textureGradClampARB(s2DArray, c3, dPdxy2, dPdxy2, lodClamp); + texel.x += textureGradClampARB(s1DArrayShadow, c3, dPdxy1, dPdxy1, lodClamp); + texel.x += textureGradClampARB(s2DArrayShadow, c4, dPdxy2, dPdxy2, lodClamp); + texel += textureGradClampARB(sCubeArray, c4, dPdxy3, dPdxy3, lodClamp); + + return texel; +} + +vec4 testSparseTextureGradOffsetClamp() +{ + vec4 texel = vec4(0.0); + + sparseTextureGradOffsetClampARB(s2D, c2, dPdxy2, dPdxy2, offset2, lodClamp, texel); + sparseTextureGradOffsetClampARB(s3D, c3, dPdxy3, dPdxy3, offset3, lodClamp, texel); + sparseTextureGradOffsetClampARB(s2DShadow, c3, dPdxy2, dPdxy2, offset2, lodClamp, texel.x); + sparseTextureGradOffsetClampARB(s2DArray, c3, dPdxy2, dPdxy2, offset2, lodClamp, texel); + sparseTextureGradOffsetClampARB(s2DArrayShadow, c4, dPdxy2, dPdxy2, offset2, lodClamp, texel.x); + + return texel; +} + +vec4 testTextureGradOffsetClamp() +{ + vec4 texel = vec4(0.0); + + texel += textureGradOffsetClampARB(s1D, c1, dPdxy1, dPdxy1, offset1, lodClamp); + texel += textureGradOffsetClampARB(s2D, c2, dPdxy2, dPdxy2, offset2, lodClamp); + texel += textureGradOffsetClampARB(s3D, c3, dPdxy3, dPdxy3, offset3, lodClamp); + texel.x += textureGradOffsetClampARB(s1DShadow, c3, dPdxy1, dPdxy1, offset1, lodClamp); + texel.x += textureGradOffsetClampARB(s2DShadow, c3, dPdxy2, dPdxy2, offset2, lodClamp); + texel += textureGradOffsetClampARB(s1DArray, c2, dPdxy1, dPdxy1, offset1, lodClamp); + texel += textureGradOffsetClampARB(s2DArray, c3, dPdxy2, dPdxy2, offset2, lodClamp); + texel.x += textureGradOffsetClampARB(s1DArrayShadow, c3, dPdxy1, dPdxy1, offset1, lodClamp); + texel.x += textureGradOffsetClampARB(s2DArrayShadow, c4, dPdxy2, dPdxy2, offset2, lodClamp); + + return texel; +} + +vec4 testCombinedTextureSampler() +{ + vec4 texel = vec4(0.0); + + texel += texture(sampler1D(t1D, s), c1); + texel += texture(sampler2D(t2D, s), c2); + texel += texture(sampler3D(t3D, s), c3); + texel += texture(samplerCube(tCube, s), c3); + texel.x += texture(sampler1DShadow(t1D, sShadow), c3); + texel.x += texture(sampler2DShadow(t2D, sShadow), c3); + texel.x += texture(samplerCubeShadow(tCube, sShadow), c4); + texel += texture(sampler1DArray(t1DArray, s), c2); + texel += texture(sampler2DArray(t2DArray, s), c3); + texel += texture(samplerCubeArray(tCubeArray, s), c4); + texel.x += texture(sampler1DArrayShadow(t1DArray, sShadow), c3); + texel.x += texture(sampler2DArrayShadow(t2DArray, sShadow), c4); + texel += texture(sampler2DRect(t2DRect, s), c2); + texel.x += texture(sampler2DRectShadow(t2DRect, sShadow), c3); + texel.x += texture(samplerCubeArrayShadow(tCubeArray, sShadow), c4, compare); + + return texel; +} + +vec4 testSubpassLoad() +{ + return subpassLoad(subpass) + subpassLoad(subpassMS, 2); +} + +void main() +{ + vec4 result = vec4(0.0); + + result += testTexture(); + result += testTextureProj(); + result += testTextureLod(); + result += testTextureOffset(); + result += testTextureLodOffset(); + result += testTextureProjLodOffset(); + result += testTexelFetch(); + result += testTexelFetchOffset(); + result += testTextureGrad(); + result += testTextureGradOffset(); + result += testTextureProjGrad(); + result += testTextureProjGradoffset(); + result += testTextureGather(); + result += testTextureGatherOffset(); + result += testTextureGatherOffsets(); + result += testTextureGatherLod(); + result += testTextureGatherLodOffset(); + result += testTextureGatherLodOffsets(); + + result += vec4(testTextureSize()); + result.xy += vec2(testTextureQueryLod()); + result.x += testTextureQueryLevels(); + result.x += testTextureSamples(); + + result += testImageLoad(); + testImageStore(result); + + result += testSparseTexture(); + result += testSparseTextureLod(); + result += testSparseTextureOffset(); + result += testSparseTextureLodOffset(); + result += testSparseTextureGrad(); + result += testSparseTextureGradOffset(); + result += testSparseTexelFetch(); + result += testSparseTexelFetchOffset(); + result += testSparseTextureGather(); + result += testSparseTextureGatherOffset(); + result += testSparseTextureGatherOffsets(); + result += testSparseTextureGatherLod(); + result += testSparseTextureGatherLodOffset(); + result += testSparseTextureGatherLodOffsets(); + + result += testSparseImageLoad(); + + result += testSparseTextureClamp(); + result += testTextureClamp(); + result += testSparseTextureOffsetClamp(); + result += testTextureOffsetClamp(); + result += testSparseTextureGrad(); + result += testTextureGrad(); + result += testSparseTextureGradOffsetClamp(); + result += testTextureGradOffsetClamp(); + + result += testCombinedTextureSampler(); + result += testSubpassLoad(); + + fragColor = result; +} + diff --git a/gtests/Spv.FromFile.cpp b/gtests/Spv.FromFile.cpp index 4dea5dd07..ee8f8f2a5 100644 --- a/gtests/Spv.FromFile.cpp +++ b/gtests/Spv.FromFile.cpp @@ -528,6 +528,7 @@ INSTANTIATE_TEST_SUITE_P( "spv.fragmentShaderBarycentric4.frag", "spv.ext.texture_shadow_lod.frag", "spv.ext.texture_shadow_lod.error.frag", + "spv.floatFetch.frag", })), FileNameAsCustomTestSuffix );