Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
glslang
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Chen Yisong
glslang
Commits
afa5671f
Commit
afa5671f
authored
Mar 04, 2019
by
Ashwin Lele
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Error out writes to shaderRecordNV buffer blocks.
parent
d90d5481
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
72 additions
and
89 deletions
+72
-89
spv.RayGenShader.rgen.out
Test/baseResults/spv.RayGenShader.rgen.out
+31
-41
spv.RayGenShader11.rgen.out
Test/baseResults/spv.RayGenShader11.rgen.out
+27
-37
spv.RayGenShader_Errors.rgen.out
Test/baseResults/spv.RayGenShader_Errors.rgen.out
+2
-1
spv.RayGenShader.rgen
Test/spv.RayGenShader.rgen
+4
-5
spv.RayGenShader11.rgen
Test/spv.RayGenShader11.rgen
+3
-5
spv.RayGenShader_Errors.rgen
Test/spv.RayGenShader_Errors.rgen
+1
-0
ParseContextBase.cpp
glslang/MachineIndependent/ParseContextBase.cpp
+4
-0
No files found.
Test/baseResults/spv.RayGenShader.rgen.out
View file @
afa5671f
spv.RayGenShader.rgen
spv.RayGenShader.rgen
// Module Version 10000
// Module Version 10000
// Generated by (magic number): 80007
// Generated by (magic number): 80007
// Id's are bound by
61
// Id's are bound by
54
Capability RayTracingNV
Capability RayTracingNV
Extension "SPV_NV_ray_tracing"
Extension "SPV_NV_ray_tracing"
...
@@ -18,23 +18,22 @@ spv.RayGenShader.rgen
...
@@ -18,23 +18,22 @@ spv.RayGenShader.rgen
Name 21 "gl_LaunchSizeNV"
Name 21 "gl_LaunchSizeNV"
Name 24 "sy"
Name 24 "sy"
Name 29 "accNV0"
Name 29 "accNV0"
Name
48
"block"
Name
37
"block"
MemberName
48(block) 0 "ar
r"
MemberName
37(block) 0 "di
r"
MemberName
48(block) 1 "pad
"
MemberName
37(block) 1 "origin
"
Name
50
""
Name
39
""
Name 5
6 "payload
"
Name 5
0 "accNV1
"
Name
60 "accNV1
"
Name
53 "payload
"
Decorate 11(gl_LaunchIDNV) BuiltIn LaunchIdNV
Decorate 11(gl_LaunchIDNV) BuiltIn LaunchIdNV
Decorate 21(gl_LaunchSizeNV) BuiltIn LaunchSizeNV
Decorate 21(gl_LaunchSizeNV) BuiltIn LaunchSizeNV
Decorate 29(accNV0) DescriptorSet 0
Decorate 29(accNV0) DescriptorSet 0
Decorate 29(accNV0) Binding 0
Decorate 29(accNV0) Binding 0
Decorate 46 ArrayStride 4
MemberDecorate 37(block) 0 Offset 0
MemberDecorate 48(block) 0 Offset 0
MemberDecorate 37(block) 1 Offset 16
MemberDecorate 48(block) 1 Offset 16
Decorate 37(block) BufferBlock
Decorate 48(block) BufferBlock
Decorate 50(accNV1) DescriptorSet 0
Decorate 56(payload) Location 0
Decorate 50(accNV1) Binding 1
Decorate 60(accNV1) DescriptorSet 0
Decorate 53(payload) Location 0
Decorate 60(accNV1) Binding 1
2: TypeVoid
2: TypeVoid
3: TypeFunction 2
3: TypeFunction 2
6: TypeInt 32 0
6: TypeInt 32 0
...
@@ -51,27 +50,19 @@ spv.RayGenShader.rgen
...
@@ -51,27 +50,19 @@ spv.RayGenShader.rgen
29(accNV0): 28(ptr) Variable UniformConstant
29(accNV0): 28(ptr) Variable UniformConstant
35: TypeFloat 32
35: TypeFloat 32
36: TypeVector 35(float) 3
36: TypeVector 35(float) 3
37: 35(float) Constant 0
37(block): TypeStruct 36(fvec3) 36(fvec3)
38: 36(fvec3) ConstantComposite 37 37 37
38: TypePointer ShaderRecordBufferNV 37(block)
39: 35(float) Constant 1056964608
39: 38(ptr) Variable ShaderRecordBufferNV
40: 35(float) Constant 1065353216
40: TypeInt 32 1
41: 36(fvec3) ConstantComposite 40 40 40
41: 40(int) Constant 1
42: 35(float) Constant 1061158912
42: TypePointer ShaderRecordBufferNV 36(fvec3)
43: TypeInt 32 1
45: 35(float) Constant 1056964608
44: 43(int) Constant 1
46: 40(int) Constant 0
45: 6(int) Constant 4
49: 35(float) Constant 1061158912
46: TypeArray 35(float) 45
50(accNV1): 28(ptr) Variable UniformConstant
47: TypeVector 35(float) 4
51: TypeVector 35(float) 4
48(block): TypeStruct 46 47(fvec4)
52: TypePointer RayPayloadNV 51(fvec4)
49: TypePointer ShaderRecordBufferNV 48(block)
53(payload): 52(ptr) Variable RayPayloadNV
50: 49(ptr) Variable ShaderRecordBufferNV
51: 43(int) Constant 0
52: 43(int) Constant 3
53: TypePointer ShaderRecordBufferNV 35(float)
55: TypePointer RayPayloadNV 47(fvec4)
56(payload): 55(ptr) Variable RayPayloadNV
58: TypePointer ShaderRecordBufferNV 47(fvec4)
60(accNV1): 28(ptr) Variable UniformConstant
4(main): 2 Function None 3
4(main): 2 Function None 3
5: Label
5: Label
8(lx): 7(ptr) Variable Function
8(lx): 7(ptr) Variable Function
...
@@ -95,11 +86,10 @@ spv.RayGenShader.rgen
...
@@ -95,11 +86,10 @@ spv.RayGenShader.rgen
32: 6(int) Load 16(ly)
32: 6(int) Load 16(ly)
33: 6(int) Load 20(sx)
33: 6(int) Load 20(sx)
34: 6(int) Load 24(sy)
34: 6(int) Load 24(sy)
TraceNV 30 31 32 33 34 12 38 39 41 42 44
43: 42(ptr) AccessChain 39 41
54: 53(ptr) AccessChain 50 51 52
44: 36(fvec3) Load 43
Store 54 40
47: 42(ptr) AccessChain 39 46
57: 47(fvec4) Load 56(payload)
48: 36(fvec3) Load 47
59: 58(ptr) AccessChain 50 44
TraceNV 30 31 32 33 34 12 44 45 48 49 41
Store 59 57
Return
Return
FunctionEnd
FunctionEnd
Test/baseResults/spv.RayGenShader11.rgen.out
View file @
afa5671f
spv.RayGenShader11.rgen
spv.RayGenShader11.rgen
// Module Version 10300
// Module Version 10300
// Generated by (magic number): 80007
// Generated by (magic number): 80007
// Id's are bound by
60
// Id's are bound by
53
Capability RayTracingNV
Capability RayTracingNV
Extension "SPV_NV_ray_tracing"
Extension "SPV_NV_ray_tracing"
...
@@ -18,20 +18,19 @@ spv.RayGenShader11.rgen
...
@@ -18,20 +18,19 @@ spv.RayGenShader11.rgen
Name 21 "gl_LaunchSizeNV"
Name 21 "gl_LaunchSizeNV"
Name 24 "sy"
Name 24 "sy"
Name 29 "accNV"
Name 29 "accNV"
Name
48
"block"
Name
37
"block"
MemberName
48(block) 0 "ar
r"
MemberName
37(block) 0 "di
r"
MemberName
48(block) 1 "pad
"
MemberName
37(block) 1 "origin
"
Name
50
""
Name
39
""
Name 5
6
"payload"
Name 5
2
"payload"
Decorate 11(gl_LaunchIDNV) BuiltIn LaunchIdNV
Decorate 11(gl_LaunchIDNV) BuiltIn LaunchIdNV
Decorate 21(gl_LaunchSizeNV) BuiltIn LaunchSizeNV
Decorate 21(gl_LaunchSizeNV) BuiltIn LaunchSizeNV
Decorate 29(accNV) DescriptorSet 0
Decorate 29(accNV) DescriptorSet 0
Decorate 29(accNV) Binding 0
Decorate 29(accNV) Binding 0
Decorate 46 ArrayStride 4
MemberDecorate 37(block) 0 Offset 0
MemberDecorate 48(block) 0 Offset 0
MemberDecorate 37(block) 1 Offset 16
MemberDecorate 48(block) 1 Offset 16
Decorate 37(block) Block
Decorate 48(block) Block
Decorate 52(payload) Location 0
Decorate 56(payload) Location 0
2: TypeVoid
2: TypeVoid
3: TypeFunction 2
3: TypeFunction 2
6: TypeInt 32 0
6: TypeInt 32 0
...
@@ -48,26 +47,18 @@ spv.RayGenShader11.rgen
...
@@ -48,26 +47,18 @@ spv.RayGenShader11.rgen
29(accNV): 28(ptr) Variable UniformConstant
29(accNV): 28(ptr) Variable UniformConstant
35: TypeFloat 32
35: TypeFloat 32
36: TypeVector 35(float) 3
36: TypeVector 35(float) 3
37: 35(float) Constant 0
37(block): TypeStruct 36(fvec3) 36(fvec3)
38: 36(fvec3) ConstantComposite 37 37 37
38: TypePointer ShaderRecordBufferNV 37(block)
39: 35(float) Constant 1056964608
39: 38(ptr) Variable ShaderRecordBufferNV
40: 35(float) Constant 1065353216
40: TypeInt 32 1
41: 36(fvec3) ConstantComposite 40 40 40
41: 40(int) Constant 1
42: 35(float) Constant 1061158912
42: TypePointer ShaderRecordBufferNV 36(fvec3)
43: TypeInt 32 1
45: 35(float) Constant 1056964608
44: 43(int) Constant 1
46: 40(int) Constant 0
45: 6(int) Constant 4
49: 35(float) Constant 1061158912
46: TypeArray 35(float) 45
50: TypeVector 35(float) 4
47: TypeVector 35(float) 4
51: TypePointer RayPayloadNV 50(fvec4)
48(block): TypeStruct 46 47(fvec4)
52(payload): 51(ptr) Variable RayPayloadNV
49: TypePointer ShaderRecordBufferNV 48(block)
50: 49(ptr) Variable ShaderRecordBufferNV
51: 43(int) Constant 0
52: 43(int) Constant 3
53: TypePointer ShaderRecordBufferNV 35(float)
55: TypePointer RayPayloadNV 47(fvec4)
56(payload): 55(ptr) Variable RayPayloadNV
58: TypePointer ShaderRecordBufferNV 47(fvec4)
4(main): 2 Function None 3
4(main): 2 Function None 3
5: Label
5: Label
8(lx): 7(ptr) Variable Function
8(lx): 7(ptr) Variable Function
...
@@ -91,11 +82,10 @@ spv.RayGenShader11.rgen
...
@@ -91,11 +82,10 @@ spv.RayGenShader11.rgen
32: 6(int) Load 16(ly)
32: 6(int) Load 16(ly)
33: 6(int) Load 20(sx)
33: 6(int) Load 20(sx)
34: 6(int) Load 24(sy)
34: 6(int) Load 24(sy)
TraceNV 30 31 32 33 34 12 38 39 41 42 44
43: 42(ptr) AccessChain 39 41
54: 53(ptr) AccessChain 50 51 52
44: 36(fvec3) Load 43
Store 54 40
47: 42(ptr) AccessChain 39 46
57: 47(fvec4) Load 56(payload)
48: 36(fvec3) Load 47
59: 58(ptr) AccessChain 50 44
TraceNV 30 31 32 33 34 12 44 45 48 49 41
Store 59 57
Return
Return
FunctionEnd
FunctionEnd
Test/baseResults/spv.RayGenShader_Errors.rgen.out
View file @
afa5671f
...
@@ -31,7 +31,8 @@ ERROR: 0:36: 'gl_HitKindNV' : undeclared identifier
...
@@ -31,7 +31,8 @@ ERROR: 0:36: 'gl_HitKindNV' : undeclared identifier
ERROR: 0:37: 'reportIntersectionNV' : no matching overloaded function found
ERROR: 0:37: 'reportIntersectionNV' : no matching overloaded function found
ERROR: 0:38: 'ignoreIntersectionNV' : no matching overloaded function found
ERROR: 0:38: 'ignoreIntersectionNV' : no matching overloaded function found
ERROR: 0:39: 'terminateRayNV' : no matching overloaded function found
ERROR: 0:39: 'terminateRayNV' : no matching overloaded function found
ERROR: 32 compilation errors. No code generated.
ERROR: 0:40: 'assign' : l-value required "anon@3" (can't modify a shaderrecordnv qualified buffer)
ERROR: 33 compilation errors. No code generated.
ERROR: Linking ray-generation stage: Only one shaderRecordNV buffer block is allowed per stage
ERROR: Linking ray-generation stage: Only one shaderRecordNV buffer block is allowed per stage
...
...
Test/spv.RayGenShader.rgen
View file @
afa5671f
...
@@ -5,8 +5,9 @@ layout(binding = 1, set = 0) uniform accelerationStructureNV accNV1; // Unused
...
@@ -5,8 +5,9 @@ layout(binding = 1, set = 0) uniform accelerationStructureNV accNV1; // Unused
layout(location = 0) rayPayloadNV vec4 payload;
layout(location = 0) rayPayloadNV vec4 payload;
layout(shaderRecordNV) buffer block
layout(shaderRecordNV) buffer block
{
{
float arr[4];
vec3 dir;
vec4 pad;
vec3 origin;
};
};
void main()
void main()
{
{
...
@@ -14,7 +15,5 @@ void main()
...
@@ -14,7 +15,5 @@ void main()
uint ly = gl_LaunchIDNV.y;
uint ly = gl_LaunchIDNV.y;
uint sx = gl_LaunchSizeNV.x;
uint sx = gl_LaunchSizeNV.x;
uint sy = gl_LaunchSizeNV.y;
uint sy = gl_LaunchSizeNV.y;
traceNV(accNV0, lx, ly, sx, sy, 0u, vec3(0.0f), 0.5f, vec3(1.0f), 0.75f, 1);
traceNV(accNV0, lx, ly, sx, sy, 0u, origin, 0.5f, dir, 0.75f, 1);
arr[3] = 1.0f;
pad = payload;
}
}
Test/spv.RayGenShader11.rgen
View file @
afa5671f
...
@@ -4,8 +4,8 @@ layout(binding = 0, set = 0) uniform accelerationStructureNV accNV;
...
@@ -4,8 +4,8 @@ layout(binding = 0, set = 0) uniform accelerationStructureNV accNV;
layout(location = 0) rayPayloadNV vec4 payload;
layout(location = 0) rayPayloadNV vec4 payload;
layout(shaderRecordNV) buffer block
layout(shaderRecordNV) buffer block
{
{
float arr[4]
;
vec3 dir
;
vec
4 pad
;
vec
3 origin
;
};
};
void main()
void main()
{
{
...
@@ -13,7 +13,5 @@ void main()
...
@@ -13,7 +13,5 @@ void main()
uint ly = gl_LaunchIDNV.y;
uint ly = gl_LaunchIDNV.y;
uint sx = gl_LaunchSizeNV.x;
uint sx = gl_LaunchSizeNV.x;
uint sy = gl_LaunchSizeNV.y;
uint sy = gl_LaunchSizeNV.y;
traceNV(accNV, lx, ly, sx, sy, 0u, vec3(0.0f), 0.5f, vec3(1.0f), 0.75f, 1);
traceNV(accNV, lx, ly, sx, sy, 0u, origin, 0.5f, dir, 0.75f, 1);
arr[3] = 1.0f;
pad = payload;
}
}
Test/spv.RayGenShader_Errors.rgen
View file @
afa5671f
...
@@ -37,4 +37,5 @@ void main()
...
@@ -37,4 +37,5 @@ void main()
reportIntersectionNV(1.0, 1U); // ERROR, unsupported builtin in stage
reportIntersectionNV(1.0, 1U); // ERROR, unsupported builtin in stage
ignoreIntersectionNV(); // ERROR, unsupported builtin in stage
ignoreIntersectionNV(); // ERROR, unsupported builtin in stage
terminateRayNV(); // ERROR, unsupported builtin in stage
terminateRayNV(); // ERROR, unsupported builtin in stage
d = 1.0f; // ERROR, can't modify shaderRecordNV block
}
}
glslang/MachineIndependent/ParseContextBase.cpp
View file @
afa5671f
...
@@ -152,6 +152,10 @@ bool TParseContextBase::lValueErrorCheck(const TSourceLoc& loc, const char* op,
...
@@ -152,6 +152,10 @@ bool TParseContextBase::lValueErrorCheck(const TSourceLoc& loc, const char* op,
case
EvqBuffer
:
case
EvqBuffer
:
if
(
node
->
getQualifier
().
readonly
)
if
(
node
->
getQualifier
().
readonly
)
message
=
"can't modify a readonly buffer"
;
message
=
"can't modify a readonly buffer"
;
#ifdef NV_EXTENSIONS
if
(
node
->
getQualifier
().
layoutShaderRecordNV
)
message
=
"can't modify a shaderrecordnv qualified buffer"
;
#endif
break
;
break
;
#ifdef NV_EXTENSIONS
#ifdef NV_EXTENSIONS
case
EvqHitAttrNV
:
case
EvqHitAttrNV
:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment