From bf1537f4b426b9cfda472c7c4fbae5bf55f30a0b Mon Sep 17 00:00:00 2001 From: steve-lunarg <steve_gh@khasekhemwy.net> Date: Fri, 31 Mar 2017 17:40:09 -0600 Subject: [PATCH] WIP: HLSL: force uncombined flag off for Buffer<> --- .../hlsl.intrinsics.promote.frag.out | 207 ++++++++------- .../hlsl.intrinsics.promote.outputs.frag.out | 15 +- .../hlsl.load.buffer.dx10.frag.out | 240 +++++++++-------- .../hlsl.load.buffer.float.dx10.frag.out | 246 +++++++++--------- Test/baseResults/hlsl.multiEntry.vert.out | 80 +++--- hlsl/hlslGrammar.cpp | 7 +- 6 files changed, 391 insertions(+), 404 deletions(-) diff --git a/Test/baseResults/hlsl.intrinsics.promote.frag.out b/Test/baseResults/hlsl.intrinsics.promote.frag.out index 57b0410c5..4cdf62bb6 100644 --- a/Test/baseResults/hlsl.intrinsics.promote.frag.out +++ b/Test/baseResults/hlsl.intrinsics.promote.frag.out @@ -342,7 +342,7 @@ gl_FragCoord origin is upper left 0:51 'r50' ( temp float) 0:51 Construct float ( temp float) 0:? textureFetch ( temp 4-component vector of float) -0:51 'g_tTexbfs' (layout( r32f) uniform samplerBuffer) +0:51 'g_tTexbfs' (layout( r32f) uniform textureBuffer) 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}) @@ -353,7 +353,7 @@ gl_FragCoord origin is upper left 0:52 'r51' ( temp float) 0:52 Construct float ( temp float) 0:? textureFetch ( temp 4-component vector of float) -0:52 'g_tTexbfs' (layout( r32f) uniform samplerBuffer) +0:52 'g_tTexbfs' (layout( r32f) uniform textureBuffer) 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) uniform samplerBuffer) +0:? 'g_tTexbfs' (layout( r32f) uniform textureBuffer) 0:? 'g_tTex1df4' ( uniform texture1D) 0:? 'color' (layout( location=0) out 4-component vector of float) @@ -788,7 +788,7 @@ gl_FragCoord origin is upper left 0:51 'r50' ( temp float) 0:51 Construct float ( temp float) 0:? textureFetch ( temp 4-component vector of float) -0:51 'g_tTexbfs' (layout( r32f) uniform samplerBuffer) +0:51 'g_tTexbfs' (layout( r32f) uniform textureBuffer) 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}) @@ -799,7 +799,7 @@ gl_FragCoord origin is upper left 0:52 'r51' ( temp float) 0:52 Construct float ( temp float) 0:? textureFetch ( temp 4-component vector of float) -0:52 'g_tTexbfs' (layout( r32f) uniform samplerBuffer) +0:52 'g_tTexbfs' (layout( r32f) uniform textureBuffer) 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) uniform samplerBuffer) +0:? 'g_tTexbfs' (layout( r32f) uniform textureBuffer) 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 325 +// Id's are bound by 322 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" 322 + EntryPoint Fragment 4 "main" 319 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 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" + 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" MemberDecorate 19($Global) 0 Offset 0 MemberDecorate 19($Global) 1 Offset 4 MemberDecorate 19($Global) 2 Offset 8 @@ -963,9 +963,9 @@ gl_FragCoord origin is upper left MemberDecorate 19($Global) 9 Offset 52 Decorate 19($Global) Block Decorate 21 DescriptorSet 0 - Decorate 259(g_tTexbfs) DescriptorSet 0 - Decorate 280(g_tTex1df4) DescriptorSet 0 - Decorate 322(color) Location 0 + Decorate 258(g_tTexbfs) DescriptorSet 0 + Decorate 277(g_tTex1df4) DescriptorSet 0 + Decorate 319(color) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -1013,24 +1013,23 @@ gl_FragCoord origin is upper left 109: 14(int) Constant 4 110: TypePointer Uniform 16(ivec2) 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 + 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 4(main): 2 Function None 3 5: Label - 323:8(PS_OUTPUT) FunctionCall 10(@main() - 324: 7(fvec4) CompositeExtract 323 0 - Store 322(color) 324 + 320:8(PS_OUTPUT) FunctionCall 10(@main() + 321: 7(fvec4) CompositeExtract 320 0 + Store 319(color) 321 Return FunctionEnd 10(@main():8(PS_OUTPUT) Function None 9 @@ -1058,16 +1057,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 - 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 + 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 24: 23(ptr) AccessChain 21 22 25: 15(int) Load 24 28: 26(bool) INotEqual 25 27 @@ -1271,60 +1270,58 @@ 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 - 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) + 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) ImageFetch 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) ImageFetch 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 308: 14(int) Bitcast 307 - 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 + 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 FunctionEnd diff --git a/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out b/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out index 59d755e7a..c6e4619d5 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) uniform samplerBuffer) +0:? 'g_tTexbfs' (layout( r32f) uniform textureBuffer) 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) uniform samplerBuffer) +0:? 'g_tTexbfs' (layout( r32f) uniform textureBuffer) 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 81 +// Id's are bound by 80 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 80 "g_tTexbfs" + Name 79 "g_tTexbfs" MemberDecorate 17($Global) 0 Offset 0 MemberDecorate 17($Global) 1 Offset 4 MemberDecorate 17($Global) 2 Offset 8 @@ -257,7 +257,7 @@ gl_FragCoord origin is upper left Decorate 19 DescriptorSet 0 Decorate 31(g_tTex1df4) DescriptorSet 0 Decorate 74(color) Location 0 - Decorate 80(g_tTexbfs) DescriptorSet 0 + Decorate 79(g_tTexbfs) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -289,9 +289,8 @@ gl_FragCoord origin is upper left 73: TypePointer Output 7(fvec4) 74(color): 73(ptr) Variable Output 77: TypeImage 6(float) Buffer sampled format:R32f - 78: TypeSampledImage 77 - 79: TypePointer UniformConstant 78 - 80(g_tTexbfs): 79(ptr) Variable UniformConstant + 78: TypePointer UniformConstant 77 + 79(g_tTexbfs): 78(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 6a4f17528..f111dd5ca 100644 --- a/Test/baseResults/hlsl.load.buffer.dx10.frag.out +++ b/Test/baseResults/hlsl.load.buffer.dx10.frag.out @@ -9,7 +9,7 @@ gl_FragCoord origin is upper left 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 textureFetch ( temp 4-component vector of float) -0:28 'g_tTexbf4' (layout( rgba32f) uniform samplerBuffer) +0:28 'g_tTexbf4' (layout( rgba32f) uniform textureBuffer) 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: @@ -18,7 +18,7 @@ gl_FragCoord origin is upper left 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 textureFetch ( temp 4-component vector of int) -0:29 'g_tTexbi4' (layout( rgba32i) uniform isamplerBuffer) +0:29 'g_tTexbi4' (layout( rgba32i) uniform itextureBuffer) 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: @@ -27,7 +27,7 @@ gl_FragCoord origin is upper left 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 textureFetch ( temp 4-component vector of uint) -0:30 'g_tTexbu4' (layout( rgba32ui) uniform usamplerBuffer) +0:30 'g_tTexbu4' (layout( rgba32ui) uniform utextureBuffer) 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) uniform samplerBuffer) -0:? 'g_tTexbf4' (layout( rgba32f) uniform samplerBuffer) -0:? 'g_tTexbi4' (layout( rgba32i) uniform isamplerBuffer) -0:? 'g_tTexbu4' (layout( rgba32ui) uniform usamplerBuffer) +0:? 'g_tTexbf4_test' (layout( binding=0 rgba32f) uniform textureBuffer) +0:? 'g_tTexbf4' (layout( rgba32f) uniform textureBuffer) +0:? 'g_tTexbi4' (layout( rgba32i) uniform itextureBuffer) +0:? 'g_tTexbu4' (layout( rgba32ui) uniform utextureBuffer) 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) @@ -93,7 +93,7 @@ gl_FragCoord origin is upper left 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 textureFetch ( temp 4-component vector of float) -0:28 'g_tTexbf4' (layout( rgba32f) uniform samplerBuffer) +0:28 'g_tTexbf4' (layout( rgba32f) uniform textureBuffer) 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: @@ -102,7 +102,7 @@ gl_FragCoord origin is upper left 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 textureFetch ( temp 4-component vector of int) -0:29 'g_tTexbi4' (layout( rgba32i) uniform isamplerBuffer) +0:29 'g_tTexbi4' (layout( rgba32i) uniform itextureBuffer) 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: @@ -111,7 +111,7 @@ gl_FragCoord origin is upper left 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 textureFetch ( temp 4-component vector of uint) -0:30 'g_tTexbu4' (layout( rgba32ui) uniform usamplerBuffer) +0:30 'g_tTexbu4' (layout( rgba32ui) uniform utextureBuffer) 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) uniform samplerBuffer) -0:? 'g_tTexbf4' (layout( rgba32f) uniform samplerBuffer) -0:? 'g_tTexbi4' (layout( rgba32i) uniform isamplerBuffer) -0:? 'g_tTexbu4' (layout( rgba32ui) uniform usamplerBuffer) +0:? 'g_tTexbf4_test' (layout( binding=0 rgba32f) uniform textureBuffer) +0:? 'g_tTexbf4' (layout( rgba32f) uniform textureBuffer) +0:? 'g_tTexbi4' (layout( rgba32i) uniform itextureBuffer) +0:? 'g_tTexbu4' (layout( rgba32ui) uniform utextureBuffer) 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 78 +// Id's are bound by 72 Capability Shader Capability SampledBuffer 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 70 74 + EntryPoint Fragment 4 "main" 64 68 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "PS_OUTPUT" @@ -179,43 +179,43 @@ gl_FragCoord origin is upper left MemberName 8(PS_OUTPUT) 1 "Depth" Name 10 "@main(" Name 13 "r00" - 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 + 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 + 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 45(g_tTexbu4) DescriptorSet 0 + Decorate 64(Color) Location 0 + Decorate 68(Depth) BuiltIn FragDepth + Decorate 71(g_tTexbf4_test) DescriptorSet 0 + Decorate 71(g_tTexbf4_test) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -224,81 +224,75 @@ gl_FragCoord origin is upper left 9: TypeFunction 8(PS_OUTPUT) 12: TypePointer Function 7(fvec4) 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 + 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 sampled 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 sampled 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 4(main): 2 Function None 3 5: Label - 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 + 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 Return FunctionEnd 10(@main():8(PS_OUTPUT) Function None 9 11: Label 13(r00): 12(ptr) Variable Function - 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 + 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) ImageFetch 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) ImageFetch 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) ImageFetch 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 FunctionEnd diff --git a/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out b/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out index eecba7d7a..31e7927b5 100644 --- a/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out +++ b/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out @@ -10,7 +10,7 @@ gl_FragCoord origin is upper left 0:28 'r00' ( temp float) 0:28 Construct float ( temp float) 0:? textureFetch ( temp 4-component vector of float) -0:28 'g_tTexbfs' (layout( r32f) uniform samplerBuffer) +0:28 'g_tTexbfs' (layout( r32f) uniform textureBuffer) 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: @@ -20,7 +20,7 @@ gl_FragCoord origin is upper left 0:29 'r01' ( temp int) 0:29 Construct int ( temp int) 0:? textureFetch ( temp 4-component vector of int) -0:29 'g_tTexbis' (layout( r32i) uniform isamplerBuffer) +0:29 'g_tTexbis' (layout( r32i) uniform itextureBuffer) 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: @@ -30,7 +30,7 @@ gl_FragCoord origin is upper left 0:30 'r02' ( temp uint) 0:30 Construct uint ( temp uint) 0:? textureFetch ( temp 4-component vector of uint) -0:30 'g_tTexbus' (layout( r32ui) uniform usamplerBuffer) +0:30 'g_tTexbus' (layout( r32ui) uniform utextureBuffer) 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) uniform samplerBuffer) -0:? 'g_tTexbfs' (layout( r32f) uniform samplerBuffer) -0:? 'g_tTexbis' (layout( r32i) uniform isamplerBuffer) -0:? 'g_tTexbus' (layout( r32ui) uniform usamplerBuffer) +0:? 'g_tTexbfs_test' (layout( binding=0 r32f) uniform textureBuffer) +0:? 'g_tTexbfs' (layout( r32f) uniform textureBuffer) +0:? 'g_tTexbis' (layout( r32i) uniform itextureBuffer) +0:? 'g_tTexbus' (layout( r32ui) uniform utextureBuffer) 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) @@ -97,7 +97,7 @@ gl_FragCoord origin is upper left 0:28 'r00' ( temp float) 0:28 Construct float ( temp float) 0:? textureFetch ( temp 4-component vector of float) -0:28 'g_tTexbfs' (layout( r32f) uniform samplerBuffer) +0:28 'g_tTexbfs' (layout( r32f) uniform textureBuffer) 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: @@ -107,7 +107,7 @@ gl_FragCoord origin is upper left 0:29 'r01' ( temp int) 0:29 Construct int ( temp int) 0:? textureFetch ( temp 4-component vector of int) -0:29 'g_tTexbis' (layout( r32i) uniform isamplerBuffer) +0:29 'g_tTexbis' (layout( r32i) uniform itextureBuffer) 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: @@ -117,7 +117,7 @@ gl_FragCoord origin is upper left 0:30 'r02' ( temp uint) 0:30 Construct uint ( temp uint) 0:? textureFetch ( temp 4-component vector of uint) -0:30 'g_tTexbus' (layout( r32ui) uniform usamplerBuffer) +0:30 'g_tTexbus' (layout( r32ui) uniform utextureBuffer) 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) uniform samplerBuffer) -0:? 'g_tTexbfs' (layout( r32f) uniform samplerBuffer) -0:? 'g_tTexbis' (layout( r32i) uniform isamplerBuffer) -0:? 'g_tTexbus' (layout( r32ui) uniform usamplerBuffer) +0:? 'g_tTexbfs_test' (layout( binding=0 r32f) uniform textureBuffer) +0:? 'g_tTexbfs' (layout( r32f) uniform textureBuffer) +0:? 'g_tTexbis' (layout( r32i) uniform itextureBuffer) +0:? 'g_tTexbus' (layout( r32ui) uniform utextureBuffer) 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 81 +// Id's are bound by 75 Capability Shader Capability SampledBuffer 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 73 77 + EntryPoint Fragment 4 "main" 67 71 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "PS_OUTPUT" @@ -185,43 +185,43 @@ gl_FragCoord origin is upper left MemberName 8(PS_OUTPUT) 1 "Depth" Name 10 "@main(" Name 13 "r00" - 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 + 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 + 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 46(g_tTexbus) DescriptorSet 0 + Decorate 67(Color) Location 0 + Decorate 71(Depth) BuiltIn FragDepth + Decorate 74(g_tTexbfs_test) DescriptorSet 0 + Decorate 74(g_tTexbfs_test) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -230,84 +230,78 @@ gl_FragCoord origin is upper left 9: TypeFunction 8(PS_OUTPUT) 12: TypePointer Function 6(float) 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 + 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 sampled 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 sampled 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 4(main): 2 Function None 3 5: Label - 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 + 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 Return FunctionEnd 10(@main():8(PS_OUTPUT) Function None 9 11: Label 13(r00): 12(ptr) Variable Function - 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 + 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) ImageFetch 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) ImageFetch 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) ImageFetch 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 FunctionEnd diff --git a/Test/baseResults/hlsl.multiEntry.vert.out b/Test/baseResults/hlsl.multiEntry.vert.out index cc4924fda..fd4a57471 100755 --- a/Test/baseResults/hlsl.multiEntry.vert.out +++ b/Test/baseResults/hlsl.multiEntry.vert.out @@ -7,7 +7,7 @@ Shader version: 450 0:? Sequence 0:5 Branch: Return with expression 0:5 textureFetch ( temp 4-component vector of float) -0:5 'Position' (layout( rgba32f) uniform samplerBuffer) +0:5 'Position' (layout( rgba32f) uniform textureBuffer) 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) uniform samplerBuffer) +0:? 'Position' (layout( rgba32f) uniform textureBuffer) 0:? '@entryPointOutput' ( out 4-component vector of float Position) 0:? 'Index' ( in uint VertexIndex) @@ -44,7 +44,7 @@ Shader version: 450 0:? Sequence 0:5 Branch: Return with expression 0:5 textureFetch ( temp 4-component vector of float) -0:5 'Position' (layout( rgba32f) uniform samplerBuffer) +0:5 'Position' (layout( rgba32f) uniform textureBuffer) 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,33 +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) uniform samplerBuffer) +0:? 'Position' (layout( rgba32f) uniform textureBuffer) 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 43 +// Id's are bound by 41 Capability Shader Capability SampledBuffer 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "RealEntrypoint" 36 39 + EntryPoint Vertex 4 "RealEntrypoint" 34 37 Name 4 "RealEntrypoint" Name 12 "FakeEntrypoint(u1;" Name 11 "Index" Name 15 "@RealEntrypoint(u1;" Name 14 "Index" - Name 20 "Position" - Name 29 "param" + Name 19 "Position" + Name 27 "param" + Name 32 "Index" Name 34 "Index" - Name 36 "Index" - Name 39 "@entryPointOutput" - Name 40 "param" - Decorate 20(Position) DescriptorSet 0 - Decorate 36(Index) BuiltIn VertexIndex - Decorate 39(@entryPointOutput) BuiltIn Position + Name 37 "@entryPointOutput" + Name 38 "param" + Decorate 19(Position) DescriptorSet 0 + Decorate 34(Index) BuiltIn VertexIndex + Decorate 37(@entryPointOutput) BuiltIn Position 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 @@ -100,42 +100,40 @@ Shader version: 450 9: TypeVector 8(float) 4 10: TypeFunction 9(fvec4) 7(ptr) 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 + 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 4(RealEntrypoint): 2 Function None 3 5: Label - 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 + 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 Return FunctionEnd 12(FakeEntrypoint(u1;): 9(fvec4) Function None 10 11(Index): 7(ptr) FunctionParameter 13: Label - 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 + 20: 17 Load 19(Position) + 21: 6(int) Load 11(Index) + 23: 22(int) Bitcast 21 + 24: 9(fvec4) ImageFetch 20 23 + ReturnValue 24 FunctionEnd 15(@RealEntrypoint(u1;): 9(fvec4) Function None 10 14(Index): 7(ptr) FunctionParameter 16: Label - 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 + 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 FunctionEnd diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index 4c9bdae2b..b764d8902 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -1145,9 +1145,10 @@ bool HlslGrammar::acceptTextureType(TType& type) bool array = false; bool ms = false; bool image = false; + bool combined = true; switch (textureType) { - case EHTokBuffer: dim = EsdBuffer; break; + case EHTokBuffer: dim = EsdBuffer; combined = false; break; case EHTokTexture1d: dim = Esd1D; break; case EHTokTexture1darray: dim = Esd1D; array = true; break; case EHTokTexture2d: dim = Esd2D; break; @@ -1252,6 +1253,10 @@ bool HlslGrammar::acceptTextureType(TType& type) // Remember the declared vector size. sampler.vectorSize = txType.getVectorSize(); + // Force uncombined, if necessary + if (!combined) + sampler.combined = false; + type.shallowCopy(TType(sampler, EvqUniform, arraySizes)); type.getQualifier().layoutFormat = format; -- GitLab