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
b804de60
Commit
b804de60
authored
Sep 05, 2016
by
John Kessenich
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
HLSL: Track binding numbers to struct instances; fixes issue #496.
parent
58d2843c
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
22 additions
and
18 deletions
+22
-18
hlsl.buffer.frag.out
Test/baseResults/hlsl.buffer.frag.out
+10
-8
revision.h
glslang/Include/revision.h
+2
-2
hlslGrammar.cpp
hlsl/hlslGrammar.cpp
+10
-8
No files found.
Test/baseResults/hlsl.buffer.frag.out
View file @
b804de60
...
@@ -23,19 +23,19 @@ gl_FragCoord origin is upper left
...
@@ -23,19 +23,19 @@ gl_FragCoord origin is upper left
0:27 Constant:
0:27 Constant:
0:27 0 (const uint)
0:27 0 (const uint)
0:27 v3: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float)
0:27 v3: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float)
0:27 'anon@2' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3})
0:27 'anon@2' (layout(
binding=2
column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3})
0:27 Constant:
0:27 Constant:
0:27 0 (const uint)
0:27 0 (const uint)
0:27 v4: direct index for structure (layout(column_major std430 offset=16 ) buffer 4-component vector of float)
0:27 v4: direct index for structure (layout(column_major std430 offset=16 ) buffer 4-component vector of float)
0:27 'anon@3' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v4, layout(column_major std430 offset=48 ) buffer int i4, layout(column_major std430 offset=60 ) buffer float f1, layout(column_major std430 offset=64 ) buffer float f3, layout(column_major std430 offset=68 ) buffer float f4, layout(column_major std430 offset=72 ) buffer float f5, layout(column_major std430 ) buffer float f6, layout(column_major std430 ) buffer float f7})
0:27 'anon@3' (layout(
binding=8
column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v4, layout(column_major std430 offset=48 ) buffer int i4, layout(column_major std430 offset=60 ) buffer float f1, layout(column_major std430 offset=64 ) buffer float f3, layout(column_major std430 offset=68 ) buffer float f4, layout(column_major std430 offset=72 ) buffer float f5, layout(column_major std430 ) buffer float f6, layout(column_major std430 ) buffer float f7})
0:27 Constant:
0:27 Constant:
0:27 0 (const uint)
0:27 0 (const uint)
0:27 Branch: Return
0:27 Branch: Return
0:? Linker Objects
0:? Linker Objects
0:? 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1})
0:? 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1})
0:? 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2})
0:? 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2})
0:? 'anon@2' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3})
0:? 'anon@2' (layout(
binding=2
column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3})
0:? 'anon@3' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v4, layout(column_major std430 offset=48 ) buffer int i4, layout(column_major std430 offset=60 ) buffer float f1, layout(column_major std430 offset=64 ) buffer float f3, layout(column_major std430 offset=68 ) buffer float f4, layout(column_major std430 offset=72 ) buffer float f5, layout(column_major std430 ) buffer float f6, layout(column_major std430 ) buffer float f7})
0:? 'anon@3' (layout(
binding=8
column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v4, layout(column_major std430 offset=48 ) buffer int i4, layout(column_major std430 offset=60 ) buffer float f1, layout(column_major std430 offset=64 ) buffer float f3, layout(column_major std430 offset=68 ) buffer float f4, layout(column_major std430 offset=72 ) buffer float f5, layout(column_major std430 ) buffer float f6, layout(column_major std430 ) buffer float f7})
Linked fragment stage:
Linked fragment stage:
...
@@ -65,19 +65,19 @@ gl_FragCoord origin is upper left
...
@@ -65,19 +65,19 @@ gl_FragCoord origin is upper left
0:27 Constant:
0:27 Constant:
0:27 0 (const uint)
0:27 0 (const uint)
0:27 v3: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float)
0:27 v3: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float)
0:27 'anon@2' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3})
0:27 'anon@2' (layout(
binding=2
column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3})
0:27 Constant:
0:27 Constant:
0:27 0 (const uint)
0:27 0 (const uint)
0:27 v4: direct index for structure (layout(column_major std430 offset=16 ) buffer 4-component vector of float)
0:27 v4: direct index for structure (layout(column_major std430 offset=16 ) buffer 4-component vector of float)
0:27 'anon@3' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v4, layout(column_major std430 offset=48 ) buffer int i4, layout(column_major std430 offset=60 ) buffer float f1, layout(column_major std430 offset=64 ) buffer float f3, layout(column_major std430 offset=68 ) buffer float f4, layout(column_major std430 offset=72 ) buffer float f5, layout(column_major std430 ) buffer float f6, layout(column_major std430 ) buffer float f7})
0:27 'anon@3' (layout(
binding=8
column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v4, layout(column_major std430 offset=48 ) buffer int i4, layout(column_major std430 offset=60 ) buffer float f1, layout(column_major std430 offset=64 ) buffer float f3, layout(column_major std430 offset=68 ) buffer float f4, layout(column_major std430 offset=72 ) buffer float f5, layout(column_major std430 ) buffer float f6, layout(column_major std430 ) buffer float f7})
0:27 Constant:
0:27 Constant:
0:27 0 (const uint)
0:27 0 (const uint)
0:27 Branch: Return
0:27 Branch: Return
0:? Linker Objects
0:? Linker Objects
0:? 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1})
0:? 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1})
0:? 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2})
0:? 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2})
0:? 'anon@2' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3})
0:? 'anon@2' (layout(
binding=2
column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3})
0:? 'anon@3' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v4, layout(column_major std430 offset=48 ) buffer int i4, layout(column_major std430 offset=60 ) buffer float f1, layout(column_major std430 offset=64 ) buffer float f3, layout(column_major std430 offset=68 ) buffer float f4, layout(column_major std430 offset=72 ) buffer float f5, layout(column_major std430 ) buffer float f6, layout(column_major std430 ) buffer float f7})
0:? 'anon@3' (layout(
binding=8
column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v4, layout(column_major std430 offset=48 ) buffer int i4, layout(column_major std430 offset=60 ) buffer float f1, layout(column_major std430 offset=64 ) buffer float f3, layout(column_major std430 offset=68 ) buffer float f4, layout(column_major std430 offset=72 ) buffer float f5, layout(column_major std430 ) buffer float f6, layout(column_major std430 ) buffer float f7})
// Module Version 10000
// Module Version 10000
// Generated by (magic number): 80001
// Generated by (magic number): 80001
...
@@ -123,6 +123,7 @@ gl_FragCoord origin is upper left
...
@@ -123,6 +123,7 @@ gl_FragCoord origin is upper left
MemberDecorate 28 1 Offset 20
MemberDecorate 28 1 Offset 20
Decorate 28 Block
Decorate 28 Block
Decorate 30 DescriptorSet 0
Decorate 30 DescriptorSet 0
Decorate 30 Binding 2
MemberDecorate 34 0 Offset 16
MemberDecorate 34 0 Offset 16
MemberDecorate 34 1 Offset 48
MemberDecorate 34 1 Offset 48
MemberDecorate 34 2 Offset 60
MemberDecorate 34 2 Offset 60
...
@@ -133,6 +134,7 @@ gl_FragCoord origin is upper left
...
@@ -133,6 +134,7 @@ gl_FragCoord origin is upper left
MemberDecorate 34 7 Offset 80
MemberDecorate 34 7 Offset 80
Decorate 34 BufferBlock
Decorate 34 BufferBlock
Decorate 36 DescriptorSet 0
Decorate 36 DescriptorSet 0
Decorate 36 Binding 8
2: TypeVoid
2: TypeVoid
3: TypeFunction 2
3: TypeFunction 2
6: TypeFloat 32
6: TypeFloat 32
...
...
glslang/Include/revision.h
View file @
b804de60
...
@@ -2,5 +2,5 @@
...
@@ -2,5 +2,5 @@
// For the version, it uses the latest git tag followed by the number of commits.
// 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).
// For the date, it uses the current date (when then script is run).
#define GLSLANG_REVISION "Overload400-PrecQual.146
5
"
#define GLSLANG_REVISION "Overload400-PrecQual.146
8
"
#define GLSLANG_DATE "0
2
-Sep-2016"
#define GLSLANG_DATE "0
5
-Sep-2016"
hlsl/hlslGrammar.cpp
View file @
b804de60
...
@@ -1292,17 +1292,16 @@ bool HlslGrammar::acceptType(TType& type)
...
@@ -1292,17 +1292,16 @@ bool HlslGrammar::acceptType(TType& type)
//
//
bool
HlslGrammar
::
acceptStruct
(
TType
&
type
)
bool
HlslGrammar
::
acceptStruct
(
TType
&
type
)
{
{
// This qualifier.storage will tell us whether it's an AST block or
// This storage qualifier will tell us whether it's an AST
// just a struct.
// block type or just a generic structure type.
TQualifier
qualifier
;
TStorageQualifier
storageQualifier
=
EvqTemporary
;
qualifier
.
clear
();
// CBUFFER
// CBUFFER
if
(
acceptTokenClass
(
EHTokCBuffer
))
if
(
acceptTokenClass
(
EHTokCBuffer
))
qualifier
.
storage
=
EvqUniform
;
storageQualifier
=
EvqUniform
;
// TBUFFER
// TBUFFER
else
if
(
acceptTokenClass
(
EHTokTBuffer
))
else
if
(
acceptTokenClass
(
EHTokTBuffer
))
qualifier
.
storage
=
EvqBuffer
;
storageQualifier
=
EvqBuffer
;
// STRUCT
// STRUCT
else
if
(
!
acceptTokenClass
(
EHTokStruct
))
else
if
(
!
acceptTokenClass
(
EHTokStruct
))
return
false
;
return
false
;
...
@@ -1337,10 +1336,13 @@ bool HlslGrammar::acceptStruct(TType& type)
...
@@ -1337,10 +1336,13 @@ bool HlslGrammar::acceptStruct(TType& type)
}
}
// create the user-defined type
// create the user-defined type
if
(
qualifier
.
storage
==
EvqTemporary
)
if
(
storageQualifier
==
EvqTemporary
)
new
(
&
type
)
TType
(
typeList
,
structName
);
new
(
&
type
)
TType
(
typeList
,
structName
);
else
else
{
TQualifier
qualifier
=
type
.
getQualifier
();
qualifier
.
storage
=
storageQualifier
;
new
(
&
type
)
TType
(
typeList
,
structName
,
qualifier
);
// sets EbtBlock
new
(
&
type
)
TType
(
typeList
,
structName
,
qualifier
);
// sets EbtBlock
}
// If it was named, which means the type can be reused later, add
// If it was named, which means the type can be reused later, add
// it to the symbol table. (Unless it's a block, in which
// it to the symbol table. (Unless it's a block, in which
...
...
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