Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
G
glslang
Manage
Activity
Members
Plan
Wiki
Code
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Deploy
Releases
Package Registry
Model registry
Operate
Terraform modules
Analyze
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
CodeLinaro
public-release-test-restored
platform
external
deqp-deps
glslang
Commits
b804de60
Commit
b804de60
authored
8 years ago
by
John Kessenich
Browse files
Options
Downloads
Patches
Plain Diff
HLSL: Track binding numbers to struct instances; fixes issue #496.
parent
58d2843c
No related branches found
No related tags found
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
Test/baseResults/hlsl.buffer.frag.out
+10
-8
10 additions, 8 deletions
Test/baseResults/hlsl.buffer.frag.out
glslang/Include/revision.h
+2
-2
2 additions, 2 deletions
glslang/Include/revision.h
hlsl/hlslGrammar.cpp
+10
-8
10 additions, 8 deletions
hlsl/hlslGrammar.cpp
with
22 additions
and
18 deletions
Test/baseResults/hlsl.buffer.frag.out
+
10
−
8
View file @
b804de60
...
...
@@ -23,19 +23,19 @@ gl_FragCoord origin is upper left
0:27 Constant:
0:27 0 (const uint)
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 0 (const uint)
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 0 (const uint)
0:27 Branch: Return
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@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@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@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(
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:
...
...
@@ -65,19 +65,19 @@ gl_FragCoord origin is upper left
0:27 Constant:
0:27 0 (const uint)
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 0 (const uint)
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 0 (const uint)
0:27 Branch: Return
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@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@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@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(
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
// Generated by (magic number): 80001
...
...
@@ -123,6 +123,7 @@ gl_FragCoord origin is upper left
MemberDecorate 28 1 Offset 20
Decorate 28 Block
Decorate 30 DescriptorSet 0
Decorate 30 Binding 2
MemberDecorate 34 0 Offset 16
MemberDecorate 34 1 Offset 48
MemberDecorate 34 2 Offset 60
...
...
@@ -133,6 +134,7 @@ gl_FragCoord origin is upper left
MemberDecorate 34 7 Offset 80
Decorate 34 BufferBlock
Decorate 36 DescriptorSet 0
Decorate 36 Binding 8
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
...
...
This diff is collapsed.
Click to expand it.
glslang/Include/revision.h
+
2
−
2
View file @
b804de60
...
...
@@ -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.146
5
"
#define GLSLANG_DATE "0
2
-Sep-2016"
#define GLSLANG_REVISION "Overload400-PrecQual.146
8
"
#define GLSLANG_DATE "0
5
-Sep-2016"
This diff is collapsed.
Click to expand it.
hlsl/hlslGrammar.cpp
+
10
−
8
View file @
b804de60
...
...
@@ -1292,17 +1292,16 @@ bool HlslGrammar::acceptType(TType& type)
//
bool
HlslGrammar
::
acceptStruct
(
TType
&
type
)
{
// This qualifier.storage will tell us whether it's an AST block or
// just a struct.
TQualifier
qualifier
;
qualifier
.
clear
();
// This storage qualifier will tell us whether it's an AST
// block type or just a generic structure type.
TStorageQualifier
storageQualifier
=
EvqTemporary
;
// CBUFFER
if
(
acceptTokenClass
(
EHTokCBuffer
))
qualifier
.
storage
=
EvqUniform
;
storageQualifier
=
EvqUniform
;
// TBUFFER
else
if
(
acceptTokenClass
(
EHTokTBuffer
))
qualifier
.
storage
=
EvqBuffer
;
storageQualifier
=
EvqBuffer
;
// STRUCT
else
if
(
!
acceptTokenClass
(
EHTokStruct
))
return
false
;
...
...
@@ -1337,10 +1336,13 @@ bool HlslGrammar::acceptStruct(TType& type)
}
// create the user-defined type
if
(
qualifier
.
storage
==
EvqTemporary
)
if
(
storageQualifier
==
EvqTemporary
)
new
(
&
type
)
TType
(
typeList
,
structName
);
else
else
{
TQualifier
qualifier
=
type
.
getQualifier
();
qualifier
.
storage
=
storageQualifier
;
new
(
&
type
)
TType
(
typeList
,
structName
,
qualifier
);
// sets EbtBlock
}
// 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
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment