From f36542f46dcae01f74d48ab05c643adfae67c307 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Fri, 31 Mar 2017 14:39:30 -0600 Subject: [PATCH] Revert "Merge pull request #779 from steve-lunarg/buffer-unsampled-fix" This reverts commit 1dd65ca3983d3c361e66fbf788f050177f596d3a, reversing changes made to 4960baaf663b18a6e0a58edb9073158ef7331930. --- .../hlsl.intrinsics.promote.frag.out | 218 ++++++++------- .../hlsl.intrinsics.promote.outputs.frag.out | 18 +- .../hlsl.load.buffer.dx10.frag.out | 258 ++++++++--------- .../hlsl.load.buffer.float.dx10.frag.out | 264 +++++++++--------- Test/baseResults/hlsl.multiEntry.vert.out | 87 +++--- glslang/Include/revision.h | 4 +- hlsl/hlslGrammar.cpp | 41 ++- 7 files changed, 445 insertions(+), 445 deletions(-) diff --git a/Test/baseResults/hlsl.intrinsics.promote.frag.out b/Test/baseResults/hlsl.intrinsics.promote.frag.out index 7fec7a20..57b0410c 100644 --- a/Test/baseResults/hlsl.intrinsics.promote.frag.out +++ b/Test/baseResults/hlsl.intrinsics.promote.frag.out @@ -341,8 +341,8 @@ gl_FragCoord origin is upper left 0:51 move second child to first child ( temp float) 0:51 'r50' ( temp float) 0:51 Construct float ( temp float) -0:? imageLoad ( temp 4-component vector of float) -0:51 'g_tTexbfs' (layout( r32f) readonly uniform imageBuffer) +0:? textureFetch ( temp 4-component vector of float) +0:51 'g_tTexbfs' (layout( r32f) uniform samplerBuffer) 0:51 Convert uint to int ( temp int) 0:51 upos: direct index for structure ( uniform uint) 0:51 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) @@ -352,8 +352,8 @@ gl_FragCoord origin is upper left 0:52 move second child to first child ( temp float) 0:52 'r51' ( temp float) 0:52 Construct float ( temp float) -0:? imageLoad ( temp 4-component vector of float) -0:52 'g_tTexbfs' (layout( r32f) readonly uniform imageBuffer) +0:? textureFetch ( temp 4-component vector of float) +0:52 'g_tTexbfs' (layout( r32f) uniform samplerBuffer) 0:52 Convert float to int ( temp int) 0:52 fpos: direct index for structure ( uniform float) 0:52 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) @@ -437,7 +437,7 @@ gl_FragCoord origin is upper left 0:20 0 (const int) 0:? Linker Objects 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) -0:? 'g_tTexbfs' (layout( r32f) readonly uniform imageBuffer) +0:? 'g_tTexbfs' (layout( r32f) uniform samplerBuffer) 0:? 'g_tTex1df4' ( uniform texture1D) 0:? 'color' (layout( location=0) out 4-component vector of float) @@ -787,8 +787,8 @@ gl_FragCoord origin is upper left 0:51 move second child to first child ( temp float) 0:51 'r50' ( temp float) 0:51 Construct float ( temp float) -0:? imageLoad ( temp 4-component vector of float) -0:51 'g_tTexbfs' (layout( r32f) readonly uniform imageBuffer) +0:? textureFetch ( temp 4-component vector of float) +0:51 'g_tTexbfs' (layout( r32f) uniform samplerBuffer) 0:51 Convert uint to int ( temp int) 0:51 upos: direct index for structure ( uniform uint) 0:51 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) @@ -798,8 +798,8 @@ gl_FragCoord origin is upper left 0:52 move second child to first child ( temp float) 0:52 'r51' ( temp float) 0:52 Construct float ( temp float) -0:? imageLoad ( temp 4-component vector of float) -0:52 'g_tTexbfs' (layout( r32f) readonly uniform imageBuffer) +0:? textureFetch ( temp 4-component vector of float) +0:52 'g_tTexbfs' (layout( r32f) uniform samplerBuffer) 0:52 Convert float to int ( temp int) 0:52 fpos: direct index for structure ( uniform float) 0:52 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) @@ -883,13 +883,13 @@ gl_FragCoord origin is upper left 0:20 0 (const int) 0:? Linker Objects 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) -0:? 'g_tTexbfs' (layout( r32f) readonly uniform imageBuffer) +0:? 'g_tTexbfs' (layout( r32f) uniform samplerBuffer) 0:? 'g_tTex1df4' ( uniform texture1D) 0:? 'color' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 322 +// Id's are bound by 325 Capability Shader Capability Sampled1D @@ -897,7 +897,7 @@ gl_FragCoord origin is upper left Capability ImageQuery 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 319 + EntryPoint Fragment 4 "main" 322 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "PS_OUTPUT" @@ -938,19 +938,19 @@ gl_FragCoord origin is upper left Name 229 "r42" Name 243 "r43" Name 255 "r50" - Name 258 "g_tTexbfs" - Name 266 "r51" - Name 274 "sizeQueryTemp" - Name 277 "g_tTex1df4" - Name 280 "WidthI" - Name 283 "sizeQueryTemp" - Name 289 "NumberOfLevelsU" - Name 292 "sizeQueryTemp" - Name 295 "WidthU" - Name 297 "NumberOfLevelsI" - Name 301 "sizeQueryTemp" - Name 310 "ps_output" - Name 319 "color" + Name 259 "g_tTexbfs" + Name 268 "r51" + Name 277 "sizeQueryTemp" + Name 280 "g_tTex1df4" + Name 283 "WidthI" + Name 286 "sizeQueryTemp" + Name 292 "NumberOfLevelsU" + Name 295 "sizeQueryTemp" + Name 298 "WidthU" + Name 300 "NumberOfLevelsI" + Name 304 "sizeQueryTemp" + Name 313 "ps_output" + Name 322 "color" MemberDecorate 19($Global) 0 Offset 0 MemberDecorate 19($Global) 1 Offset 4 MemberDecorate 19($Global) 2 Offset 8 @@ -963,10 +963,9 @@ gl_FragCoord origin is upper left MemberDecorate 19($Global) 9 Offset 52 Decorate 19($Global) Block Decorate 21 DescriptorSet 0 - Decorate 258(g_tTexbfs) DescriptorSet 0 - Decorate 258(g_tTexbfs) NonWritable - Decorate 277(g_tTex1df4) DescriptorSet 0 - Decorate 319(color) Location 0 + Decorate 259(g_tTexbfs) DescriptorSet 0 + Decorate 280(g_tTex1df4) DescriptorSet 0 + Decorate 322(color) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -1013,24 +1012,25 @@ gl_FragCoord origin is upper left 107: 16(ivec2) ConstantComposite 44 44 109: 14(int) Constant 4 110: TypePointer Uniform 16(ivec2) - 256: TypeImage 6(float) Buffer nonsampled format:R32f - 257: TypePointer UniformConstant 256 - 258(g_tTexbfs): 257(ptr) Variable UniformConstant - 260: 14(int) Constant 8 - 268: 14(int) Constant 9 - 275: TypeImage 6(float) 1D sampled format:Unknown - 276: TypePointer UniformConstant 275 - 277(g_tTex1df4): 276(ptr) Variable UniformConstant - 285: 15(int) Constant 6 - 309: TypePointer Function 8(PS_OUTPUT) - 313: TypePointer Function 7(fvec4) - 318: TypePointer Output 7(fvec4) - 319(color): 318(ptr) Variable Output + 256: TypeImage 6(float) Buffer sampled format:R32f + 257: TypeSampledImage 256 + 258: TypePointer UniformConstant 257 + 259(g_tTexbfs): 258(ptr) Variable UniformConstant + 261: 14(int) Constant 8 + 270: 14(int) Constant 9 + 278: TypeImage 6(float) 1D sampled format:Unknown + 279: TypePointer UniformConstant 278 + 280(g_tTex1df4): 279(ptr) Variable UniformConstant + 288: 15(int) Constant 6 + 312: TypePointer Function 8(PS_OUTPUT) + 316: TypePointer Function 7(fvec4) + 321: TypePointer Output 7(fvec4) + 322(color): 321(ptr) Variable Output 4(main): 2 Function None 3 5: Label - 320:8(PS_OUTPUT) FunctionCall 10(@main() - 321: 7(fvec4) CompositeExtract 320 0 - Store 319(color) 321 + 323:8(PS_OUTPUT) FunctionCall 10(@main() + 324: 7(fvec4) CompositeExtract 323 0 + Store 322(color) 324 Return FunctionEnd 10(@main():8(PS_OUTPUT) Function None 9 @@ -1058,16 +1058,16 @@ gl_FragCoord origin is upper left 229(r42): 73(ptr) Variable Function 243(r43): 101(ptr) Variable Function 255(r50): 12(ptr) Variable Function - 266(r51): 12(ptr) Variable Function -274(sizeQueryTemp): 37(ptr) Variable Function - 280(WidthI): 48(ptr) Variable Function -283(sizeQueryTemp): 37(ptr) Variable Function -289(NumberOfLevelsU): 37(ptr) Variable Function -292(sizeQueryTemp): 37(ptr) Variable Function - 295(WidthU): 37(ptr) Variable Function -297(NumberOfLevelsI): 48(ptr) Variable Function -301(sizeQueryTemp): 37(ptr) Variable Function - 310(ps_output): 309(ptr) Variable Function + 268(r51): 12(ptr) Variable Function +277(sizeQueryTemp): 37(ptr) Variable Function + 283(WidthI): 48(ptr) Variable Function +286(sizeQueryTemp): 37(ptr) Variable Function +292(NumberOfLevelsU): 37(ptr) Variable Function +295(sizeQueryTemp): 37(ptr) Variable Function + 298(WidthU): 37(ptr) Variable Function +300(NumberOfLevelsI): 48(ptr) Variable Function +304(sizeQueryTemp): 37(ptr) Variable Function + 313(ps_output): 312(ptr) Variable Function 24: 23(ptr) AccessChain 21 22 25: 15(int) Load 24 28: 26(bool) INotEqual 25 27 @@ -1271,58 +1271,60 @@ gl_FragCoord origin is upper left 253: 17(ivec2) ExtInst 1(GLSL.std.450) 44(UClamp) 247 250 252 254: 16(ivec2) Bitcast 253 Store 243(r43) 254 - 259: 256 Load 258(g_tTexbfs) - 261: 23(ptr) AccessChain 21 260 - 262: 15(int) Load 261 - 263: 14(int) Bitcast 262 - 264: 7(fvec4) ImageRead 259 263 - 265: 6(float) CompositeExtract 264 0 - Store 255(r50) 265 - 267: 256 Load 258(g_tTexbfs) - 269: 33(ptr) AccessChain 21 268 - 270: 6(float) Load 269 - 271: 14(int) ConvertFToS 270 - 272: 7(fvec4) ImageRead 267 271 - 273: 6(float) CompositeExtract 272 0 - Store 266(r51) 273 - 278: 275 Load 277(g_tTex1df4) - 279: 15(int) ImageQuerySizeLod 278 53 - Store 274(sizeQueryTemp) 279 - 281: 15(int) Load 274(sizeQueryTemp) - 282: 14(int) Bitcast 281 - Store 280(WidthI) 282 - 284: 275 Load 277(g_tTex1df4) - 286: 15(int) ImageQuerySizeLod 284 285 - Store 283(sizeQueryTemp) 286 - 287: 15(int) Load 283(sizeQueryTemp) - 288: 14(int) Bitcast 287 - Store 280(WidthI) 288 - 290: 275 Load 277(g_tTex1df4) - 291: 15(int) ImageQueryLevels 290 - Store 289(NumberOfLevelsU) 291 - 293: 275 Load 277(g_tTex1df4) - 294: 15(int) ImageQuerySizeLod 293 285 - Store 292(sizeQueryTemp) 294 - 296: 15(int) Load 292(sizeQueryTemp) - Store 295(WidthU) 296 - 298: 275 Load 277(g_tTex1df4) - 299: 15(int) ImageQueryLevels 298 - 300: 14(int) Bitcast 299 - Store 297(NumberOfLevelsI) 300 - 302: 275 Load 277(g_tTex1df4) - 303: 15(int) ImageQuerySizeLod 302 285 - Store 301(sizeQueryTemp) 303 - 304: 15(int) Load 301(sizeQueryTemp) - 305: 14(int) Bitcast 304 - Store 280(WidthI) 305 - 306: 275 Load 277(g_tTex1df4) - 307: 15(int) ImageQueryLevels 306 + 260: 257 Load 259(g_tTexbfs) + 262: 23(ptr) AccessChain 21 261 + 263: 15(int) Load 262 + 264: 14(int) Bitcast 263 + 265: 256 Image 260 + 266: 7(fvec4) ImageFetch 265 264 + 267: 6(float) CompositeExtract 266 0 + Store 255(r50) 267 + 269: 257 Load 259(g_tTexbfs) + 271: 33(ptr) AccessChain 21 270 + 272: 6(float) Load 271 + 273: 14(int) ConvertFToS 272 + 274: 256 Image 269 + 275: 7(fvec4) ImageFetch 274 273 + 276: 6(float) CompositeExtract 275 0 + Store 268(r51) 276 + 281: 278 Load 280(g_tTex1df4) + 282: 15(int) ImageQuerySizeLod 281 53 + Store 277(sizeQueryTemp) 282 + 284: 15(int) Load 277(sizeQueryTemp) + 285: 14(int) Bitcast 284 + Store 283(WidthI) 285 + 287: 278 Load 280(g_tTex1df4) + 289: 15(int) ImageQuerySizeLod 287 288 + Store 286(sizeQueryTemp) 289 + 290: 15(int) Load 286(sizeQueryTemp) + 291: 14(int) Bitcast 290 + Store 283(WidthI) 291 + 293: 278 Load 280(g_tTex1df4) + 294: 15(int) ImageQueryLevels 293 + Store 292(NumberOfLevelsU) 294 + 296: 278 Load 280(g_tTex1df4) + 297: 15(int) ImageQuerySizeLod 296 288 + Store 295(sizeQueryTemp) 297 + 299: 15(int) Load 295(sizeQueryTemp) + Store 298(WidthU) 299 + 301: 278 Load 280(g_tTex1df4) + 302: 15(int) ImageQueryLevels 301 + 303: 14(int) Bitcast 302 + Store 300(NumberOfLevelsI) 303 + 305: 278 Load 280(g_tTex1df4) + 306: 15(int) ImageQuerySizeLod 305 288 + Store 304(sizeQueryTemp) 306 + 307: 15(int) Load 304(sizeQueryTemp) 308: 14(int) Bitcast 307 - Store 297(NumberOfLevelsI) 308 - 311: 6(float) Load 13(r00) - 312: 7(fvec4) CompositeConstruct 311 311 311 311 - 314: 313(ptr) AccessChain 310(ps_output) 53 - Store 314 312 - 315:8(PS_OUTPUT) Load 310(ps_output) - ReturnValue 315 + Store 283(WidthI) 308 + 309: 278 Load 280(g_tTex1df4) + 310: 15(int) ImageQueryLevels 309 + 311: 14(int) Bitcast 310 + Store 300(NumberOfLevelsI) 311 + 314: 6(float) Load 13(r00) + 315: 7(fvec4) CompositeConstruct 314 314 314 314 + 317: 316(ptr) AccessChain 313(ps_output) 53 + Store 317 315 + 318:8(PS_OUTPUT) Load 313(ps_output) + ReturnValue 318 FunctionEnd diff --git a/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out b/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out index 7ccc596b..59d755e7 100644 --- a/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out +++ b/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out @@ -95,7 +95,7 @@ gl_FragCoord origin is upper left 0:20 0 (const int) 0:? Linker Objects 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) -0:? 'g_tTexbfs' (layout( r32f) readonly uniform imageBuffer) +0:? 'g_tTexbfs' (layout( r32f) uniform samplerBuffer) 0:? 'g_tTex1df4' ( uniform texture1D) 0:? 'color' (layout( location=0) out 4-component vector of float) @@ -199,13 +199,13 @@ gl_FragCoord origin is upper left 0:20 0 (const int) 0:? Linker Objects 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) -0:? 'g_tTexbfs' (layout( r32f) readonly uniform imageBuffer) +0:? 'g_tTexbfs' (layout( r32f) uniform samplerBuffer) 0:? 'g_tTex1df4' ( uniform texture1D) 0:? 'color' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 80 +// Id's are bound by 81 Capability Shader Capability Sampled1D @@ -242,7 +242,7 @@ gl_FragCoord origin is upper left Name 57 "sizeQueryTemp" Name 66 "ps_output" Name 74 "color" - Name 79 "g_tTexbfs" + Name 80 "g_tTexbfs" MemberDecorate 17($Global) 0 Offset 0 MemberDecorate 17($Global) 1 Offset 4 MemberDecorate 17($Global) 2 Offset 8 @@ -257,8 +257,7 @@ gl_FragCoord origin is upper left Decorate 19 DescriptorSet 0 Decorate 31(g_tTex1df4) DescriptorSet 0 Decorate 74(color) Location 0 - Decorate 79(g_tTexbfs) DescriptorSet 0 - Decorate 79(g_tTexbfs) NonWritable + Decorate 80(g_tTexbfs) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -289,9 +288,10 @@ gl_FragCoord origin is upper left 68: TypePointer Function 7(fvec4) 73: TypePointer Output 7(fvec4) 74(color): 73(ptr) Variable Output - 77: TypeImage 6(float) Buffer nonsampled format:R32f - 78: TypePointer UniformConstant 77 - 79(g_tTexbfs): 78(ptr) Variable UniformConstant + 77: TypeImage 6(float) Buffer sampled format:R32f + 78: TypeSampledImage 77 + 79: TypePointer UniformConstant 78 + 80(g_tTexbfs): 79(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 75:8(PS_OUTPUT) FunctionCall 10(@main() diff --git a/Test/baseResults/hlsl.load.buffer.dx10.frag.out b/Test/baseResults/hlsl.load.buffer.dx10.frag.out index 134a7fdb..6a4f1752 100644 --- a/Test/baseResults/hlsl.load.buffer.dx10.frag.out +++ b/Test/baseResults/hlsl.load.buffer.dx10.frag.out @@ -8,8 +8,8 @@ gl_FragCoord origin is upper left 0:28 Sequence 0:28 move second child to first child ( temp 4-component vector of float) 0:28 'r00' ( temp 4-component vector of float) -0:28 imageLoad ( temp 4-component vector of float) -0:28 'g_tTexbf4' (layout( rgba32f) readonly uniform imageBuffer) +0:28 textureFetch ( temp 4-component vector of float) +0:28 'g_tTexbf4' (layout( rgba32f) uniform samplerBuffer) 0:28 c1: direct index for structure ( uniform int) 0:28 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:28 Constant: @@ -17,8 +17,8 @@ gl_FragCoord origin is upper left 0:29 Sequence 0:29 move second child to first child ( temp 4-component vector of int) 0:29 'r01' ( temp 4-component vector of int) -0:29 imageLoad ( temp 4-component vector of int) -0:29 'g_tTexbi4' (layout( rgba32i) readonly uniform iimageBuffer) +0:29 textureFetch ( temp 4-component vector of int) +0:29 'g_tTexbi4' (layout( rgba32i) uniform isamplerBuffer) 0:29 c1: direct index for structure ( uniform int) 0:29 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:29 Constant: @@ -26,8 +26,8 @@ gl_FragCoord origin is upper left 0:30 Sequence 0:30 move second child to first child ( temp 4-component vector of uint) 0:30 'r02' ( temp 4-component vector of uint) -0:30 imageLoad ( temp 4-component vector of uint) -0:30 'g_tTexbu4' (layout( rgba32ui) readonly uniform uimageBuffer) +0:30 textureFetch ( temp 4-component vector of uint) +0:30 'g_tTexbu4' (layout( rgba32ui) uniform usamplerBuffer) 0:30 c1: direct index for structure ( uniform int) 0:30 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:30 Constant: @@ -71,10 +71,10 @@ gl_FragCoord origin is upper left 0:24 Constant: 0:24 1 (const int) 0:? Linker Objects -0:? 'g_tTexbf4_test' (layout( binding=0 rgba32f) readonly uniform imageBuffer) -0:? 'g_tTexbf4' (layout( rgba32f) readonly uniform imageBuffer) -0:? 'g_tTexbi4' (layout( rgba32i) readonly uniform iimageBuffer) -0:? 'g_tTexbu4' (layout( rgba32ui) readonly uniform uimageBuffer) +0:? 'g_tTexbf4_test' (layout( binding=0 rgba32f) uniform samplerBuffer) +0:? 'g_tTexbf4' (layout( rgba32f) uniform samplerBuffer) +0:? 'g_tTexbi4' (layout( rgba32i) uniform isamplerBuffer) +0:? 'g_tTexbu4' (layout( rgba32ui) uniform usamplerBuffer) 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:? 'Color' (layout( location=0) out 4-component vector of float) 0:? 'Depth' ( out float FragDepth) @@ -92,8 +92,8 @@ gl_FragCoord origin is upper left 0:28 Sequence 0:28 move second child to first child ( temp 4-component vector of float) 0:28 'r00' ( temp 4-component vector of float) -0:28 imageLoad ( temp 4-component vector of float) -0:28 'g_tTexbf4' (layout( rgba32f) readonly uniform imageBuffer) +0:28 textureFetch ( temp 4-component vector of float) +0:28 'g_tTexbf4' (layout( rgba32f) uniform samplerBuffer) 0:28 c1: direct index for structure ( uniform int) 0:28 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:28 Constant: @@ -101,8 +101,8 @@ gl_FragCoord origin is upper left 0:29 Sequence 0:29 move second child to first child ( temp 4-component vector of int) 0:29 'r01' ( temp 4-component vector of int) -0:29 imageLoad ( temp 4-component vector of int) -0:29 'g_tTexbi4' (layout( rgba32i) readonly uniform iimageBuffer) +0:29 textureFetch ( temp 4-component vector of int) +0:29 'g_tTexbi4' (layout( rgba32i) uniform isamplerBuffer) 0:29 c1: direct index for structure ( uniform int) 0:29 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:29 Constant: @@ -110,8 +110,8 @@ gl_FragCoord origin is upper left 0:30 Sequence 0:30 move second child to first child ( temp 4-component vector of uint) 0:30 'r02' ( temp 4-component vector of uint) -0:30 imageLoad ( temp 4-component vector of uint) -0:30 'g_tTexbu4' (layout( rgba32ui) readonly uniform uimageBuffer) +0:30 textureFetch ( temp 4-component vector of uint) +0:30 'g_tTexbu4' (layout( rgba32ui) uniform usamplerBuffer) 0:30 c1: direct index for structure ( uniform int) 0:30 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:30 Constant: @@ -155,23 +155,23 @@ gl_FragCoord origin is upper left 0:24 Constant: 0:24 1 (const int) 0:? Linker Objects -0:? 'g_tTexbf4_test' (layout( binding=0 rgba32f) readonly uniform imageBuffer) -0:? 'g_tTexbf4' (layout( rgba32f) readonly uniform imageBuffer) -0:? 'g_tTexbi4' (layout( rgba32i) readonly uniform iimageBuffer) -0:? 'g_tTexbu4' (layout( rgba32ui) readonly uniform uimageBuffer) +0:? 'g_tTexbf4_test' (layout( binding=0 rgba32f) uniform samplerBuffer) +0:? 'g_tTexbf4' (layout( rgba32f) uniform samplerBuffer) +0:? 'g_tTexbi4' (layout( rgba32i) uniform isamplerBuffer) +0:? 'g_tTexbu4' (layout( rgba32ui) uniform usamplerBuffer) 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:? 'Color' (layout( location=0) out 4-component vector of float) 0:? 'Depth' ( out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 72 +// Id's are bound by 78 Capability Shader Capability SampledBuffer 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 64 68 + EntryPoint Fragment 4 "main" 70 74 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "PS_OUTPUT" @@ -179,47 +179,43 @@ gl_FragCoord origin is upper left MemberName 8(PS_OUTPUT) 1 "Depth" Name 10 "@main(" Name 13 "r00" - Name 16 "g_tTexbf4" - Name 22 "$Global" - MemberName 22($Global) 0 "c1" - MemberName 22($Global) 1 "c2" - MemberName 22($Global) 2 "c3" - MemberName 22($Global) 3 "c4" - MemberName 22($Global) 4 "o1" - MemberName 22($Global) 5 "o2" - MemberName 22($Global) 6 "o3" - MemberName 22($Global) 7 "o4" - Name 24 "" - Name 31 "r01" - Name 34 "g_tTexbi4" - Name 42 "r02" - Name 45 "g_tTexbu4" - Name 51 "psout" - Name 61 "flattenTemp" - Name 64 "Color" - Name 68 "Depth" - Name 71 "g_tTexbf4_test" - Decorate 16(g_tTexbf4) DescriptorSet 0 - Decorate 16(g_tTexbf4) NonWritable - MemberDecorate 22($Global) 0 Offset 0 - MemberDecorate 22($Global) 1 Offset 8 - MemberDecorate 22($Global) 2 Offset 16 - MemberDecorate 22($Global) 3 Offset 32 - MemberDecorate 22($Global) 4 Offset 48 - MemberDecorate 22($Global) 5 Offset 56 - MemberDecorate 22($Global) 6 Offset 64 - MemberDecorate 22($Global) 7 Offset 80 - Decorate 22($Global) Block - Decorate 24 DescriptorSet 0 - Decorate 34(g_tTexbi4) DescriptorSet 0 - Decorate 34(g_tTexbi4) NonWritable - Decorate 45(g_tTexbu4) DescriptorSet 0 - Decorate 45(g_tTexbu4) NonWritable - Decorate 64(Color) Location 0 - Decorate 68(Depth) BuiltIn FragDepth - Decorate 71(g_tTexbf4_test) DescriptorSet 0 - Decorate 71(g_tTexbf4_test) Binding 0 - Decorate 71(g_tTexbf4_test) NonWritable + Name 17 "g_tTexbf4" + Name 23 "$Global" + MemberName 23($Global) 0 "c1" + MemberName 23($Global) 1 "c2" + MemberName 23($Global) 2 "c3" + MemberName 23($Global) 3 "c4" + MemberName 23($Global) 4 "o1" + MemberName 23($Global) 5 "o2" + MemberName 23($Global) 6 "o3" + MemberName 23($Global) 7 "o4" + Name 25 "" + Name 33 "r01" + Name 37 "g_tTexbi4" + Name 46 "r02" + Name 50 "g_tTexbu4" + Name 57 "psout" + Name 67 "flattenTemp" + Name 70 "Color" + Name 74 "Depth" + Name 77 "g_tTexbf4_test" + Decorate 17(g_tTexbf4) DescriptorSet 0 + MemberDecorate 23($Global) 0 Offset 0 + MemberDecorate 23($Global) 1 Offset 8 + MemberDecorate 23($Global) 2 Offset 16 + MemberDecorate 23($Global) 3 Offset 32 + MemberDecorate 23($Global) 4 Offset 48 + MemberDecorate 23($Global) 5 Offset 56 + MemberDecorate 23($Global) 6 Offset 64 + MemberDecorate 23($Global) 7 Offset 80 + Decorate 23($Global) Block + Decorate 25 DescriptorSet 0 + Decorate 37(g_tTexbi4) DescriptorSet 0 + Decorate 50(g_tTexbu4) DescriptorSet 0 + Decorate 70(Color) Location 0 + Decorate 74(Depth) BuiltIn FragDepth + Decorate 77(g_tTexbf4_test) DescriptorSet 0 + Decorate 77(g_tTexbf4_test) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -227,76 +223,82 @@ gl_FragCoord origin is upper left 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) 9: TypeFunction 8(PS_OUTPUT) 12: TypePointer Function 7(fvec4) - 14: TypeImage 6(float) Buffer nonsampled format:Rgba32f - 15: TypePointer UniformConstant 14 - 16(g_tTexbf4): 15(ptr) Variable UniformConstant - 18: TypeInt 32 1 - 19: TypeVector 18(int) 2 - 20: TypeVector 18(int) 3 - 21: TypeVector 18(int) 4 - 22($Global): TypeStruct 18(int) 19(ivec2) 20(ivec3) 21(ivec4) 18(int) 19(ivec2) 20(ivec3) 21(ivec4) - 23: TypePointer Uniform 22($Global) - 24: 23(ptr) Variable Uniform - 25: 18(int) Constant 0 - 26: TypePointer Uniform 18(int) - 30: TypePointer Function 21(ivec4) - 32: TypeImage 18(int) Buffer nonsampled format:Rgba32i - 33: TypePointer UniformConstant 32 - 34(g_tTexbi4): 33(ptr) Variable UniformConstant - 39: TypeInt 32 0 - 40: TypeVector 39(int) 4 - 41: TypePointer Function 40(ivec4) - 43: TypeImage 39(int) Buffer nonsampled format:Rgba32ui - 44: TypePointer UniformConstant 43 - 45(g_tTexbu4): 44(ptr) Variable UniformConstant - 50: TypePointer Function 8(PS_OUTPUT) - 52: 6(float) Constant 1065353216 - 53: 7(fvec4) ConstantComposite 52 52 52 52 - 55: 18(int) Constant 1 - 56: TypePointer Function 6(float) - 63: TypePointer Output 7(fvec4) - 64(Color): 63(ptr) Variable Output - 67: TypePointer Output 6(float) - 68(Depth): 67(ptr) Variable Output -71(g_tTexbf4_test): 15(ptr) Variable UniformConstant + 14: TypeImage 6(float) Buffer sampled format:Rgba32f + 15: TypeSampledImage 14 + 16: TypePointer UniformConstant 15 + 17(g_tTexbf4): 16(ptr) Variable UniformConstant + 19: TypeInt 32 1 + 20: TypeVector 19(int) 2 + 21: TypeVector 19(int) 3 + 22: TypeVector 19(int) 4 + 23($Global): TypeStruct 19(int) 20(ivec2) 21(ivec3) 22(ivec4) 19(int) 20(ivec2) 21(ivec3) 22(ivec4) + 24: TypePointer Uniform 23($Global) + 25: 24(ptr) Variable Uniform + 26: 19(int) Constant 0 + 27: TypePointer Uniform 19(int) + 32: TypePointer Function 22(ivec4) + 34: TypeImage 19(int) Buffer sampled format:Rgba32i + 35: TypeSampledImage 34 + 36: TypePointer UniformConstant 35 + 37(g_tTexbi4): 36(ptr) Variable UniformConstant + 43: TypeInt 32 0 + 44: TypeVector 43(int) 4 + 45: TypePointer Function 44(ivec4) + 47: TypeImage 43(int) Buffer sampled format:Rgba32ui + 48: TypeSampledImage 47 + 49: TypePointer UniformConstant 48 + 50(g_tTexbu4): 49(ptr) Variable UniformConstant + 56: TypePointer Function 8(PS_OUTPUT) + 58: 6(float) Constant 1065353216 + 59: 7(fvec4) ConstantComposite 58 58 58 58 + 61: 19(int) Constant 1 + 62: TypePointer Function 6(float) + 69: TypePointer Output 7(fvec4) + 70(Color): 69(ptr) Variable Output + 73: TypePointer Output 6(float) + 74(Depth): 73(ptr) Variable Output +77(g_tTexbf4_test): 16(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label - 61(flattenTemp): 50(ptr) Variable Function - 62:8(PS_OUTPUT) FunctionCall 10(@main() - Store 61(flattenTemp) 62 - 65: 12(ptr) AccessChain 61(flattenTemp) 25 - 66: 7(fvec4) Load 65 - Store 64(Color) 66 - 69: 56(ptr) AccessChain 61(flattenTemp) 55 - 70: 6(float) Load 69 - Store 68(Depth) 70 + 67(flattenTemp): 56(ptr) Variable Function + 68:8(PS_OUTPUT) FunctionCall 10(@main() + Store 67(flattenTemp) 68 + 71: 12(ptr) AccessChain 67(flattenTemp) 26 + 72: 7(fvec4) Load 71 + Store 70(Color) 72 + 75: 62(ptr) AccessChain 67(flattenTemp) 61 + 76: 6(float) Load 75 + Store 74(Depth) 76 Return FunctionEnd 10(@main():8(PS_OUTPUT) Function None 9 11: Label 13(r00): 12(ptr) Variable Function - 31(r01): 30(ptr) Variable Function - 42(r02): 41(ptr) Variable Function - 51(psout): 50(ptr) Variable Function - 17: 14 Load 16(g_tTexbf4) - 27: 26(ptr) AccessChain 24 25 - 28: 18(int) Load 27 - 29: 7(fvec4) ImageRead 17 28 - Store 13(r00) 29 - 35: 32 Load 34(g_tTexbi4) - 36: 26(ptr) AccessChain 24 25 - 37: 18(int) Load 36 - 38: 21(ivec4) ImageRead 35 37 - Store 31(r01) 38 - 46: 43 Load 45(g_tTexbu4) - 47: 26(ptr) AccessChain 24 25 - 48: 18(int) Load 47 - 49: 40(ivec4) ImageRead 46 48 - Store 42(r02) 49 - 54: 12(ptr) AccessChain 51(psout) 25 - Store 54 53 - 57: 56(ptr) AccessChain 51(psout) 55 - Store 57 52 - 58:8(PS_OUTPUT) Load 51(psout) - ReturnValue 58 + 33(r01): 32(ptr) Variable Function + 46(r02): 45(ptr) Variable Function + 57(psout): 56(ptr) Variable Function + 18: 15 Load 17(g_tTexbf4) + 28: 27(ptr) AccessChain 25 26 + 29: 19(int) Load 28 + 30: 14 Image 18 + 31: 7(fvec4) ImageFetch 30 29 + Store 13(r00) 31 + 38: 35 Load 37(g_tTexbi4) + 39: 27(ptr) AccessChain 25 26 + 40: 19(int) Load 39 + 41: 34 Image 38 + 42: 22(ivec4) ImageFetch 41 40 + Store 33(r01) 42 + 51: 48 Load 50(g_tTexbu4) + 52: 27(ptr) AccessChain 25 26 + 53: 19(int) Load 52 + 54: 47 Image 51 + 55: 44(ivec4) ImageFetch 54 53 + Store 46(r02) 55 + 60: 12(ptr) AccessChain 57(psout) 26 + Store 60 59 + 63: 62(ptr) AccessChain 57(psout) 61 + Store 63 58 + 64:8(PS_OUTPUT) Load 57(psout) + ReturnValue 64 FunctionEnd diff --git a/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out b/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out index 6ba3d993..eecba7d7 100644 --- a/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out +++ b/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out @@ -9,8 +9,8 @@ gl_FragCoord origin is upper left 0:28 move second child to first child ( temp float) 0:28 'r00' ( temp float) 0:28 Construct float ( temp float) -0:? imageLoad ( temp 4-component vector of float) -0:28 'g_tTexbfs' (layout( r32f) readonly uniform imageBuffer) +0:? textureFetch ( temp 4-component vector of float) +0:28 'g_tTexbfs' (layout( r32f) uniform samplerBuffer) 0:28 c1: direct index for structure ( uniform int) 0:28 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:28 Constant: @@ -19,8 +19,8 @@ gl_FragCoord origin is upper left 0:29 move second child to first child ( temp int) 0:29 'r01' ( temp int) 0:29 Construct int ( temp int) -0:? imageLoad ( temp 4-component vector of int) -0:29 'g_tTexbis' (layout( r32i) readonly uniform iimageBuffer) +0:? textureFetch ( temp 4-component vector of int) +0:29 'g_tTexbis' (layout( r32i) uniform isamplerBuffer) 0:29 c1: direct index for structure ( uniform int) 0:29 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:29 Constant: @@ -29,8 +29,8 @@ gl_FragCoord origin is upper left 0:30 move second child to first child ( temp uint) 0:30 'r02' ( temp uint) 0:30 Construct uint ( temp uint) -0:? imageLoad ( temp 4-component vector of uint) -0:30 'g_tTexbus' (layout( r32ui) readonly uniform uimageBuffer) +0:? textureFetch ( temp 4-component vector of uint) +0:30 'g_tTexbus' (layout( r32ui) uniform usamplerBuffer) 0:30 c1: direct index for structure ( uniform int) 0:30 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:30 Constant: @@ -74,10 +74,10 @@ gl_FragCoord origin is upper left 0:24 Constant: 0:24 1 (const int) 0:? Linker Objects -0:? 'g_tTexbfs_test' (layout( binding=0 r32f) readonly uniform imageBuffer) -0:? 'g_tTexbfs' (layout( r32f) readonly uniform imageBuffer) -0:? 'g_tTexbis' (layout( r32i) readonly uniform iimageBuffer) -0:? 'g_tTexbus' (layout( r32ui) readonly uniform uimageBuffer) +0:? 'g_tTexbfs_test' (layout( binding=0 r32f) uniform samplerBuffer) +0:? 'g_tTexbfs' (layout( r32f) uniform samplerBuffer) +0:? 'g_tTexbis' (layout( r32i) uniform isamplerBuffer) +0:? 'g_tTexbus' (layout( r32ui) uniform usamplerBuffer) 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:? 'Color' (layout( location=0) out 4-component vector of float) 0:? 'Depth' ( out float FragDepth) @@ -96,8 +96,8 @@ gl_FragCoord origin is upper left 0:28 move second child to first child ( temp float) 0:28 'r00' ( temp float) 0:28 Construct float ( temp float) -0:? imageLoad ( temp 4-component vector of float) -0:28 'g_tTexbfs' (layout( r32f) readonly uniform imageBuffer) +0:? textureFetch ( temp 4-component vector of float) +0:28 'g_tTexbfs' (layout( r32f) uniform samplerBuffer) 0:28 c1: direct index for structure ( uniform int) 0:28 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:28 Constant: @@ -106,8 +106,8 @@ gl_FragCoord origin is upper left 0:29 move second child to first child ( temp int) 0:29 'r01' ( temp int) 0:29 Construct int ( temp int) -0:? imageLoad ( temp 4-component vector of int) -0:29 'g_tTexbis' (layout( r32i) readonly uniform iimageBuffer) +0:? textureFetch ( temp 4-component vector of int) +0:29 'g_tTexbis' (layout( r32i) uniform isamplerBuffer) 0:29 c1: direct index for structure ( uniform int) 0:29 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:29 Constant: @@ -116,8 +116,8 @@ gl_FragCoord origin is upper left 0:30 move second child to first child ( temp uint) 0:30 'r02' ( temp uint) 0:30 Construct uint ( temp uint) -0:? imageLoad ( temp 4-component vector of uint) -0:30 'g_tTexbus' (layout( r32ui) readonly uniform uimageBuffer) +0:? textureFetch ( temp 4-component vector of uint) +0:30 'g_tTexbus' (layout( r32ui) uniform usamplerBuffer) 0:30 c1: direct index for structure ( uniform int) 0:30 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:30 Constant: @@ -161,23 +161,23 @@ gl_FragCoord origin is upper left 0:24 Constant: 0:24 1 (const int) 0:? Linker Objects -0:? 'g_tTexbfs_test' (layout( binding=0 r32f) readonly uniform imageBuffer) -0:? 'g_tTexbfs' (layout( r32f) readonly uniform imageBuffer) -0:? 'g_tTexbis' (layout( r32i) readonly uniform iimageBuffer) -0:? 'g_tTexbus' (layout( r32ui) readonly uniform uimageBuffer) +0:? 'g_tTexbfs_test' (layout( binding=0 r32f) uniform samplerBuffer) +0:? 'g_tTexbfs' (layout( r32f) uniform samplerBuffer) +0:? 'g_tTexbis' (layout( r32i) uniform isamplerBuffer) +0:? 'g_tTexbus' (layout( r32ui) uniform usamplerBuffer) 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:? 'Color' (layout( location=0) out 4-component vector of float) 0:? 'Depth' ( out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 75 +// Id's are bound by 81 Capability Shader Capability SampledBuffer 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 67 71 + EntryPoint Fragment 4 "main" 73 77 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "PS_OUTPUT" @@ -185,47 +185,43 @@ gl_FragCoord origin is upper left MemberName 8(PS_OUTPUT) 1 "Depth" Name 10 "@main(" Name 13 "r00" - Name 16 "g_tTexbfs" - Name 22 "$Global" - MemberName 22($Global) 0 "c1" - MemberName 22($Global) 1 "c2" - MemberName 22($Global) 2 "c3" - MemberName 22($Global) 3 "c4" - MemberName 22($Global) 4 "o1" - MemberName 22($Global) 5 "o2" - MemberName 22($Global) 6 "o3" - MemberName 22($Global) 7 "o4" - Name 24 "" - Name 32 "r01" - Name 35 "g_tTexbis" - Name 43 "r02" - Name 46 "g_tTexbus" - Name 54 "psout" - Name 64 "flattenTemp" - Name 67 "Color" - Name 71 "Depth" - Name 74 "g_tTexbfs_test" - Decorate 16(g_tTexbfs) DescriptorSet 0 - Decorate 16(g_tTexbfs) NonWritable - MemberDecorate 22($Global) 0 Offset 0 - MemberDecorate 22($Global) 1 Offset 8 - MemberDecorate 22($Global) 2 Offset 16 - MemberDecorate 22($Global) 3 Offset 32 - MemberDecorate 22($Global) 4 Offset 48 - MemberDecorate 22($Global) 5 Offset 56 - MemberDecorate 22($Global) 6 Offset 64 - MemberDecorate 22($Global) 7 Offset 80 - Decorate 22($Global) Block - Decorate 24 DescriptorSet 0 - Decorate 35(g_tTexbis) DescriptorSet 0 - Decorate 35(g_tTexbis) NonWritable - Decorate 46(g_tTexbus) DescriptorSet 0 - Decorate 46(g_tTexbus) NonWritable - Decorate 67(Color) Location 0 - Decorate 71(Depth) BuiltIn FragDepth - Decorate 74(g_tTexbfs_test) DescriptorSet 0 - Decorate 74(g_tTexbfs_test) Binding 0 - Decorate 74(g_tTexbfs_test) NonWritable + Name 17 "g_tTexbfs" + Name 23 "$Global" + MemberName 23($Global) 0 "c1" + MemberName 23($Global) 1 "c2" + MemberName 23($Global) 2 "c3" + MemberName 23($Global) 3 "c4" + MemberName 23($Global) 4 "o1" + MemberName 23($Global) 5 "o2" + MemberName 23($Global) 6 "o3" + MemberName 23($Global) 7 "o4" + Name 25 "" + Name 34 "r01" + Name 38 "g_tTexbis" + Name 47 "r02" + Name 51 "g_tTexbus" + Name 60 "psout" + Name 70 "flattenTemp" + Name 73 "Color" + Name 77 "Depth" + Name 80 "g_tTexbfs_test" + Decorate 17(g_tTexbfs) DescriptorSet 0 + MemberDecorate 23($Global) 0 Offset 0 + MemberDecorate 23($Global) 1 Offset 8 + MemberDecorate 23($Global) 2 Offset 16 + MemberDecorate 23($Global) 3 Offset 32 + MemberDecorate 23($Global) 4 Offset 48 + MemberDecorate 23($Global) 5 Offset 56 + MemberDecorate 23($Global) 6 Offset 64 + MemberDecorate 23($Global) 7 Offset 80 + Decorate 23($Global) Block + Decorate 25 DescriptorSet 0 + Decorate 38(g_tTexbis) DescriptorSet 0 + Decorate 51(g_tTexbus) DescriptorSet 0 + Decorate 73(Color) Location 0 + Decorate 77(Depth) BuiltIn FragDepth + Decorate 80(g_tTexbfs_test) DescriptorSet 0 + Decorate 80(g_tTexbfs_test) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -233,79 +229,85 @@ gl_FragCoord origin is upper left 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) 9: TypeFunction 8(PS_OUTPUT) 12: TypePointer Function 6(float) - 14: TypeImage 6(float) Buffer nonsampled format:R32f - 15: TypePointer UniformConstant 14 - 16(g_tTexbfs): 15(ptr) Variable UniformConstant - 18: TypeInt 32 1 - 19: TypeVector 18(int) 2 - 20: TypeVector 18(int) 3 - 21: TypeVector 18(int) 4 - 22($Global): TypeStruct 18(int) 19(ivec2) 20(ivec3) 21(ivec4) 18(int) 19(ivec2) 20(ivec3) 21(ivec4) - 23: TypePointer Uniform 22($Global) - 24: 23(ptr) Variable Uniform - 25: 18(int) Constant 0 - 26: TypePointer Uniform 18(int) - 31: TypePointer Function 18(int) - 33: TypeImage 18(int) Buffer nonsampled format:R32i - 34: TypePointer UniformConstant 33 - 35(g_tTexbis): 34(ptr) Variable UniformConstant - 41: TypeInt 32 0 - 42: TypePointer Function 41(int) - 44: TypeImage 41(int) Buffer nonsampled format:R32ui - 45: TypePointer UniformConstant 44 - 46(g_tTexbus): 45(ptr) Variable UniformConstant - 50: TypeVector 41(int) 4 - 53: TypePointer Function 8(PS_OUTPUT) - 55: 6(float) Constant 1065353216 - 56: 7(fvec4) ConstantComposite 55 55 55 55 - 57: TypePointer Function 7(fvec4) - 59: 18(int) Constant 1 - 66: TypePointer Output 7(fvec4) - 67(Color): 66(ptr) Variable Output - 70: TypePointer Output 6(float) - 71(Depth): 70(ptr) Variable Output -74(g_tTexbfs_test): 15(ptr) Variable UniformConstant + 14: TypeImage 6(float) Buffer sampled format:R32f + 15: TypeSampledImage 14 + 16: TypePointer UniformConstant 15 + 17(g_tTexbfs): 16(ptr) Variable UniformConstant + 19: TypeInt 32 1 + 20: TypeVector 19(int) 2 + 21: TypeVector 19(int) 3 + 22: TypeVector 19(int) 4 + 23($Global): TypeStruct 19(int) 20(ivec2) 21(ivec3) 22(ivec4) 19(int) 20(ivec2) 21(ivec3) 22(ivec4) + 24: TypePointer Uniform 23($Global) + 25: 24(ptr) Variable Uniform + 26: 19(int) Constant 0 + 27: TypePointer Uniform 19(int) + 33: TypePointer Function 19(int) + 35: TypeImage 19(int) Buffer sampled format:R32i + 36: TypeSampledImage 35 + 37: TypePointer UniformConstant 36 + 38(g_tTexbis): 37(ptr) Variable UniformConstant + 45: TypeInt 32 0 + 46: TypePointer Function 45(int) + 48: TypeImage 45(int) Buffer sampled format:R32ui + 49: TypeSampledImage 48 + 50: TypePointer UniformConstant 49 + 51(g_tTexbus): 50(ptr) Variable UniformConstant + 56: TypeVector 45(int) 4 + 59: TypePointer Function 8(PS_OUTPUT) + 61: 6(float) Constant 1065353216 + 62: 7(fvec4) ConstantComposite 61 61 61 61 + 63: TypePointer Function 7(fvec4) + 65: 19(int) Constant 1 + 72: TypePointer Output 7(fvec4) + 73(Color): 72(ptr) Variable Output + 76: TypePointer Output 6(float) + 77(Depth): 76(ptr) Variable Output +80(g_tTexbfs_test): 16(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label - 64(flattenTemp): 53(ptr) Variable Function - 65:8(PS_OUTPUT) FunctionCall 10(@main() - Store 64(flattenTemp) 65 - 68: 57(ptr) AccessChain 64(flattenTemp) 25 - 69: 7(fvec4) Load 68 - Store 67(Color) 69 - 72: 12(ptr) AccessChain 64(flattenTemp) 59 - 73: 6(float) Load 72 - Store 71(Depth) 73 + 70(flattenTemp): 59(ptr) Variable Function + 71:8(PS_OUTPUT) FunctionCall 10(@main() + Store 70(flattenTemp) 71 + 74: 63(ptr) AccessChain 70(flattenTemp) 26 + 75: 7(fvec4) Load 74 + Store 73(Color) 75 + 78: 12(ptr) AccessChain 70(flattenTemp) 65 + 79: 6(float) Load 78 + Store 77(Depth) 79 Return FunctionEnd 10(@main():8(PS_OUTPUT) Function None 9 11: Label 13(r00): 12(ptr) Variable Function - 32(r01): 31(ptr) Variable Function - 43(r02): 42(ptr) Variable Function - 54(psout): 53(ptr) Variable Function - 17: 14 Load 16(g_tTexbfs) - 27: 26(ptr) AccessChain 24 25 - 28: 18(int) Load 27 - 29: 7(fvec4) ImageRead 17 28 - 30: 6(float) CompositeExtract 29 0 - Store 13(r00) 30 - 36: 33 Load 35(g_tTexbis) - 37: 26(ptr) AccessChain 24 25 - 38: 18(int) Load 37 - 39: 21(ivec4) ImageRead 36 38 - 40: 18(int) CompositeExtract 39 0 - Store 32(r01) 40 - 47: 44 Load 46(g_tTexbus) - 48: 26(ptr) AccessChain 24 25 - 49: 18(int) Load 48 - 51: 50(ivec4) ImageRead 47 49 - 52: 41(int) CompositeExtract 51 0 - Store 43(r02) 52 - 58: 57(ptr) AccessChain 54(psout) 25 - Store 58 56 - 60: 12(ptr) AccessChain 54(psout) 59 - Store 60 55 - 61:8(PS_OUTPUT) Load 54(psout) - ReturnValue 61 + 34(r01): 33(ptr) Variable Function + 47(r02): 46(ptr) Variable Function + 60(psout): 59(ptr) Variable Function + 18: 15 Load 17(g_tTexbfs) + 28: 27(ptr) AccessChain 25 26 + 29: 19(int) Load 28 + 30: 14 Image 18 + 31: 7(fvec4) ImageFetch 30 29 + 32: 6(float) CompositeExtract 31 0 + Store 13(r00) 32 + 39: 36 Load 38(g_tTexbis) + 40: 27(ptr) AccessChain 25 26 + 41: 19(int) Load 40 + 42: 35 Image 39 + 43: 22(ivec4) ImageFetch 42 41 + 44: 19(int) CompositeExtract 43 0 + Store 34(r01) 44 + 52: 49 Load 51(g_tTexbus) + 53: 27(ptr) AccessChain 25 26 + 54: 19(int) Load 53 + 55: 48 Image 52 + 57: 56(ivec4) ImageFetch 55 54 + 58: 45(int) CompositeExtract 57 0 + Store 47(r02) 58 + 64: 63(ptr) AccessChain 60(psout) 26 + Store 64 62 + 66: 12(ptr) AccessChain 60(psout) 65 + Store 66 61 + 67:8(PS_OUTPUT) Load 60(psout) + ReturnValue 67 FunctionEnd diff --git a/Test/baseResults/hlsl.multiEntry.vert.out b/Test/baseResults/hlsl.multiEntry.vert.out index 4873a458..cc4924fd 100755 --- a/Test/baseResults/hlsl.multiEntry.vert.out +++ b/Test/baseResults/hlsl.multiEntry.vert.out @@ -6,8 +6,8 @@ Shader version: 450 0:4 'Index' ( in uint) 0:? Sequence 0:5 Branch: Return with expression -0:5 imageLoad ( temp 4-component vector of float) -0:5 'Position' (layout( rgba32f) readonly uniform imageBuffer) +0:5 textureFetch ( temp 4-component vector of float) +0:5 'Position' (layout( rgba32f) uniform samplerBuffer) 0:5 Convert uint to int ( temp int) 0:5 'Index' ( in uint) 0:9 Function Definition: @RealEntrypoint(u1; ( temp 4-component vector of float) @@ -28,7 +28,7 @@ Shader version: 450 0:9 Function Call: @RealEntrypoint(u1; ( temp 4-component vector of float) 0:? 'Index' ( temp uint) 0:? Linker Objects -0:? 'Position' (layout( rgba32f) readonly uniform imageBuffer) +0:? 'Position' (layout( rgba32f) uniform samplerBuffer) 0:? '@entryPointOutput' ( out 4-component vector of float Position) 0:? 'Index' ( in uint VertexIndex) @@ -43,8 +43,8 @@ Shader version: 450 0:4 'Index' ( in uint) 0:? Sequence 0:5 Branch: Return with expression -0:5 imageLoad ( temp 4-component vector of float) -0:5 'Position' (layout( rgba32f) readonly uniform imageBuffer) +0:5 textureFetch ( temp 4-component vector of float) +0:5 'Position' (layout( rgba32f) uniform samplerBuffer) 0:5 Convert uint to int ( temp int) 0:5 'Index' ( in uint) 0:9 Function Definition: @RealEntrypoint(u1; ( temp 4-component vector of float) @@ -65,34 +65,33 @@ Shader version: 450 0:9 Function Call: @RealEntrypoint(u1; ( temp 4-component vector of float) 0:? 'Index' ( temp uint) 0:? Linker Objects -0:? 'Position' (layout( rgba32f) readonly uniform imageBuffer) +0:? 'Position' (layout( rgba32f) uniform samplerBuffer) 0:? '@entryPointOutput' ( out 4-component vector of float Position) 0:? 'Index' ( in uint VertexIndex) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 41 +// Id's are bound by 43 Capability Shader Capability SampledBuffer 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "RealEntrypoint" 34 37 + EntryPoint Vertex 4 "RealEntrypoint" 36 39 Name 4 "RealEntrypoint" Name 12 "FakeEntrypoint(u1;" Name 11 "Index" Name 15 "@RealEntrypoint(u1;" Name 14 "Index" - Name 19 "Position" - Name 27 "param" - Name 32 "Index" + Name 20 "Position" + Name 29 "param" Name 34 "Index" - Name 37 "@entryPointOutput" - Name 38 "param" - Decorate 19(Position) DescriptorSet 0 - Decorate 19(Position) NonWritable - Decorate 34(Index) BuiltIn VertexIndex - Decorate 37(@entryPointOutput) BuiltIn Position + Name 36 "Index" + Name 39 "@entryPointOutput" + Name 40 "param" + Decorate 20(Position) DescriptorSet 0 + Decorate 36(Index) BuiltIn VertexIndex + Decorate 39(@entryPointOutput) BuiltIn Position 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 @@ -100,41 +99,43 @@ Shader version: 450 8: TypeFloat 32 9: TypeVector 8(float) 4 10: TypeFunction 9(fvec4) 7(ptr) - 17: TypeImage 8(float) Buffer nonsampled format:Rgba32f - 18: TypePointer UniformConstant 17 - 19(Position): 18(ptr) Variable UniformConstant - 22: TypeInt 32 1 - 33: TypePointer Input 6(int) - 34(Index): 33(ptr) Variable Input - 36: TypePointer Output 9(fvec4) -37(@entryPointOutput): 36(ptr) Variable Output + 17: TypeImage 8(float) Buffer sampled format:Rgba32f + 18: TypeSampledImage 17 + 19: TypePointer UniformConstant 18 + 20(Position): 19(ptr) Variable UniformConstant + 23: TypeInt 32 1 + 35: TypePointer Input 6(int) + 36(Index): 35(ptr) Variable Input + 38: TypePointer Output 9(fvec4) +39(@entryPointOutput): 38(ptr) Variable Output 4(RealEntrypoint): 2 Function None 3 5: Label - 32(Index): 7(ptr) Variable Function - 38(param): 7(ptr) Variable Function - 35: 6(int) Load 34(Index) - Store 32(Index) 35 - 39: 6(int) Load 32(Index) - Store 38(param) 39 - 40: 9(fvec4) FunctionCall 15(@RealEntrypoint(u1;) 38(param) - Store 37(@entryPointOutput) 40 + 34(Index): 7(ptr) Variable Function + 40(param): 7(ptr) Variable Function + 37: 6(int) Load 36(Index) + Store 34(Index) 37 + 41: 6(int) Load 34(Index) + Store 40(param) 41 + 42: 9(fvec4) FunctionCall 15(@RealEntrypoint(u1;) 40(param) + Store 39(@entryPointOutput) 42 Return FunctionEnd 12(FakeEntrypoint(u1;): 9(fvec4) Function None 10 11(Index): 7(ptr) FunctionParameter 13: Label - 20: 17 Load 19(Position) - 21: 6(int) Load 11(Index) - 23: 22(int) Bitcast 21 - 24: 9(fvec4) ImageRead 20 23 - ReturnValue 24 + 21: 18 Load 20(Position) + 22: 6(int) Load 11(Index) + 24: 23(int) Bitcast 22 + 25: 17 Image 21 + 26: 9(fvec4) ImageFetch 25 24 + ReturnValue 26 FunctionEnd 15(@RealEntrypoint(u1;): 9(fvec4) Function None 10 14(Index): 7(ptr) FunctionParameter 16: Label - 27(param): 7(ptr) Variable Function - 28: 6(int) Load 14(Index) - Store 27(param) 28 - 29: 9(fvec4) FunctionCall 12(FakeEntrypoint(u1;) 27(param) - ReturnValue 29 + 29(param): 7(ptr) Variable Function + 30: 6(int) Load 14(Index) + Store 29(param) 30 + 31: 9(fvec4) FunctionCall 12(FakeEntrypoint(u1;) 29(param) + ReturnValue 31 FunctionEnd diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 152c68e4..c53275c5 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1947" -#define GLSLANG_DATE "30-Mar-2017" +#define GLSLANG_REVISION "Overload400-PrecQual.1958" +#define GLSLANG_DATE "31-Mar-2017" diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index 674dcac5..4c9bdae2 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -611,10 +611,6 @@ bool HlslGrammar::acceptFullySpecifiedType(TType& type, TIntermNode*& nodeList) qualifier.layoutFormat = type.getQualifier().layoutFormat; qualifier.precision = type.getQualifier().precision; - // Propagate sampler readonly qualifier for buffers - if (type.getBasicType() == EbtSampler) - qualifier.readonly = type.getQualifier().readonly; - if (type.getQualifier().storage == EvqVaryingOut || type.getQualifier().storage == EvqBuffer) { qualifier.storage = type.getQualifier().storage; @@ -1149,25 +1145,24 @@ bool HlslGrammar::acceptTextureType(TType& type) bool array = false; bool ms = false; bool image = false; - bool readonly = false; switch (textureType) { - case EHTokTexture1d: dim = Esd1D; break; - case EHTokTexture1darray: dim = Esd1D; array = true; break; - case EHTokTexture2d: dim = Esd2D; break; - case EHTokTexture2darray: dim = Esd2D; array = true; break; - case EHTokTexture3d: dim = Esd3D; break; - case EHTokTextureCube: dim = EsdCube; break; - case EHTokTextureCubearray: dim = EsdCube; array = true; break; - case EHTokTexture2DMS: dim = Esd2D; ms = true; break; - case EHTokTexture2DMSarray: dim = Esd2D; array = true; ms = true; break; - case EHTokBuffer: dim = EsdBuffer; readonly=true; image=true; break; - case EHTokRWBuffer: dim = EsdBuffer; image=true; break; - case EHTokRWTexture1d: dim = Esd1D; array=false; image=true; break; - case EHTokRWTexture1darray: dim = Esd1D; array=true; image=true; break; - case EHTokRWTexture2d: dim = Esd2D; array=false; image=true; break; - case EHTokRWTexture2darray: dim = Esd2D; array=true; image=true; break; - case EHTokRWTexture3d: dim = Esd3D; array=false; image=true; break; + case EHTokBuffer: dim = EsdBuffer; break; + case EHTokTexture1d: dim = Esd1D; break; + case EHTokTexture1darray: dim = Esd1D; array = true; break; + case EHTokTexture2d: dim = Esd2D; break; + case EHTokTexture2darray: dim = Esd2D; array = true; break; + case EHTokTexture3d: dim = Esd3D; break; + case EHTokTextureCube: dim = EsdCube; break; + case EHTokTextureCubearray: dim = EsdCube; array = true; break; + case EHTokTexture2DMS: dim = Esd2D; ms = true; break; + case EHTokTexture2DMSarray: dim = Esd2D; array = true; ms = true; break; + case EHTokRWBuffer: dim = EsdBuffer; image=true; break; + case EHTokRWTexture1d: dim = Esd1D; array=false; image=true; break; + case EHTokRWTexture1darray: dim = Esd1D; array=true; image=true; break; + case EHTokRWTexture2d: dim = Esd2D; array=false; image=true; break; + case EHTokRWTexture2darray: dim = Esd2D; array=true; image=true; break; + case EHTokRWTexture3d: dim = Esd3D; array=false; image=true; break; default: return false; // not a texture declaration } @@ -1227,7 +1222,7 @@ bool HlslGrammar::acceptTextureType(TType& type) } else if (ms) { expected("texture type for multisample"); return false; - } else if (image && !readonly) { + } else if (image) { expected("type for RWTexture/RWBuffer"); return false; } @@ -1258,9 +1253,7 @@ bool HlslGrammar::acceptTextureType(TType& type) sampler.vectorSize = txType.getVectorSize(); type.shallowCopy(TType(sampler, EvqUniform, arraySizes)); - type.getQualifier().layoutFormat = format; - type.getQualifier().readonly = readonly; return true; }