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
e8d21388
Commit
e8d21388
authored
Nov 02, 2017
by
John Kessenich
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix nondeterminism discussed in
258b700f
parent
ac516024
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
42 additions
and
8 deletions
+42
-8
310AofA.vert.out
Test/baseResults/310AofA.vert.out
+2
-2
430AofA.frag.out
Test/baseResults/430AofA.frag.out
+2
-2
implicitInnerAtomicUint.frag.out
Test/baseResults/implicitInnerAtomicUint.frag.out
+20
-0
implicitInnerAtomicUint.frag
Test/implicitInnerAtomicUint.frag
+3
-0
arrays.h
glslang/Include/arrays.h
+9
-0
ParseHelper.cpp
glslang/MachineIndependent/ParseHelper.cpp
+4
-2
ParseHelper.h
glslang/MachineIndependent/ParseHelper.h
+1
-1
AST.FromFile.cpp
gtests/AST.FromFile.cpp
+1
-1
No files found.
Test/baseResults/310AofA.vert.out
View file @
e8d21388
...
@@ -320,7 +320,7 @@ ERROR: node is still EOpNull!
...
@@ -320,7 +320,7 @@ ERROR: node is still EOpNull!
0:? Linker Objects
0:? Linker Objects
0:? 'name' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer implicitly-sized array of highp float u, layout( column_major shared) buffer implicitly-sized array of highp 4-component vector of float v})
0:? 'name' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer implicitly-sized array of highp float u, layout( column_major shared) buffer implicitly-sized array of highp 4-component vector of float v})
0:? 'uname' (layout( column_major shared) uniform 3-element array of block{layout( column_major shared) uniform highp float u, layout( column_major shared) uniform implicitly-sized array of highp 4-component vector of float v})
0:? 'uname' (layout( column_major shared) uniform 3-element array of block{layout( column_major shared) uniform highp float u, layout( column_major shared) uniform implicitly-sized array of highp 4-component vector of float v})
0:? 'name2' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer highp float u, layout( column_major shared) buffer implicitly-sized array of
implicitly-sized
array of highp 4-component vector of float v})
0:? 'name2' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer highp float u, layout( column_major shared) buffer implicitly-sized array of
1-element
array of highp 4-component vector of float v})
0:? 'name3' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer highp float u, layout( column_major shared) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v})
0:? 'name3' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer highp float u, layout( column_major shared) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v})
0:? 'many' ( global 1-element array of 2-element array of 3-element array of 4-element array of 5-element array of 6-element array of highp float)
0:? 'many' ( global 1-element array of 2-element array of 3-element array of 4-element array of 5-element array of 6-element array of highp float)
0:? 'gu' ( global implicitly-sized array of 7-element array of highp float)
0:? 'gu' ( global implicitly-sized array of 7-element array of highp float)
...
@@ -361,7 +361,7 @@ ERROR: node is still EOpNull!
...
@@ -361,7 +361,7 @@ ERROR: node is still EOpNull!
0:? Linker Objects
0:? Linker Objects
0:? 'name' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer implicitly-sized array of highp float u, layout( column_major shared) buffer implicitly-sized array of highp 4-component vector of float v})
0:? 'name' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer implicitly-sized array of highp float u, layout( column_major shared) buffer implicitly-sized array of highp 4-component vector of float v})
0:? 'uname' (layout( column_major shared) uniform 3-element array of block{layout( column_major shared) uniform highp float u, layout( column_major shared) uniform 1-element array of highp 4-component vector of float v})
0:? 'uname' (layout( column_major shared) uniform 3-element array of block{layout( column_major shared) uniform highp float u, layout( column_major shared) uniform 1-element array of highp 4-component vector of float v})
0:? 'name2' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer highp float u, layout( column_major shared) buffer implicitly-sized array of
implicitly-sized
array of highp 4-component vector of float v})
0:? 'name2' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer highp float u, layout( column_major shared) buffer implicitly-sized array of
1-element
array of highp 4-component vector of float v})
0:? 'name3' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer highp float u, layout( column_major shared) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v})
0:? 'name3' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer highp float u, layout( column_major shared) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v})
0:? 'many' ( global 1-element array of 2-element array of 3-element array of 4-element array of 5-element array of 6-element array of highp float)
0:? 'many' ( global 1-element array of 2-element array of 3-element array of 4-element array of 5-element array of 6-element array of highp float)
0:? 'gu' ( global 1-element array of 7-element array of highp float)
0:? 'gu' ( global 1-element array of 7-element array of highp float)
...
...
Test/baseResults/430AofA.frag.out
View file @
e8d21388
...
@@ -405,7 +405,7 @@ ERROR: node is still EOpNull!
...
@@ -405,7 +405,7 @@ ERROR: node is still EOpNull!
0:? Linker Objects
0:? Linker Objects
0:? 'many' ( global 1-element array of 2-element array of 3-element array of 4-element array of 5-element array of 6-element array of float)
0:? 'many' ( global 1-element array of 2-element array of 3-element array of 4-element array of 5-element array of 6-element array of float)
0:? 'gu' ( global implicitly-sized array of 7-element array of float)
0:? 'gu' ( global implicitly-sized array of 7-element array of float)
0:? 'gimp' ( global implicitly-sized array of
implicitly-sized
array of float)
0:? 'gimp' ( global implicitly-sized array of
1-element
array of float)
0:? 'g4' ( global 4-element array of 7-element array of float)
0:? 'g4' ( global 4-element array of 7-element array of float)
0:? 'g5' ( global 5-element array of 7-element array of float)
0:? 'g5' ( global 5-element array of 7-element array of float)
...
@@ -768,7 +768,7 @@ ERROR: node is still EOpNull!
...
@@ -768,7 +768,7 @@ ERROR: node is still EOpNull!
0:? Linker Objects
0:? Linker Objects
0:? 'many' ( global 1-element array of 2-element array of 3-element array of 4-element array of 5-element array of 6-element array of float)
0:? 'many' ( global 1-element array of 2-element array of 3-element array of 4-element array of 5-element array of 6-element array of float)
0:? 'gu' ( global 1-element array of 7-element array of float)
0:? 'gu' ( global 1-element array of 7-element array of float)
0:? 'gimp' ( global 1-element array of
implicitly-sized
array of float)
0:? 'gimp' ( global 1-element array of
1-element
array of float)
0:? 'g4' ( global 4-element array of 7-element array of float)
0:? 'g4' ( global 4-element array of 7-element array of float)
0:? 'g5' ( global 5-element array of 7-element array of float)
0:? 'g5' ( global 5-element array of 7-element array of float)
Test/baseResults/implicitInnerAtomicUint.frag.out
0 → 100755
View file @
e8d21388
implicitInnerAtomicUint.frag
ERROR: 0:2: '[]' : only outermost dimension of an array of arrays can be implicitly sized
ERROR: 1 compilation errors. No code generated.
Shader version: 460
ERROR: node is still EOpNull!
0:? Linker Objects
0:? 'c' (layout( binding=0 offset=0) uniform 1-element array of 1-element array of atomic_uint)
Linked fragment stage:
ERROR: Linking fragment stage: Missing entry point: Each stage requires one entry point
Shader version: 460
ERROR: node is still EOpNull!
0:? Linker Objects
0:? 'c' (layout( binding=0 offset=0) uniform 1-element array of 1-element array of atomic_uint)
Test/implicitInnerAtomicUint.frag
0 → 100644
View file @
e8d21388
#version 460
layout
(
binding
=
0
)
uniform
atomic_uint
c
[
1
][];
\ No newline at end of file
glslang/Include/arrays.h
View file @
e8d21388
...
@@ -264,6 +264,15 @@ struct TArraySizes {
...
@@ -264,6 +264,15 @@ struct TArraySizes {
return
false
;
return
false
;
}
}
bool
clearInnerImplicit
()
{
for
(
int
d
=
1
;
d
<
sizes
.
size
();
++
d
)
{
if
(
sizes
.
getDimSize
(
d
)
==
(
unsigned
)
UnsizedArraySize
)
setDimSize
(
d
,
1
);
}
return
false
;
}
bool
isInnerSpecialization
()
const
bool
isInnerSpecialization
()
const
{
{
for
(
int
d
=
1
;
d
<
sizes
.
size
();
++
d
)
{
for
(
int
d
=
1
;
d
<
sizes
.
size
();
++
d
)
{
...
...
glslang/MachineIndependent/ParseHelper.cpp
View file @
e8d21388
...
@@ -3002,7 +3002,7 @@ void TParseContext::structArrayCheck(const TSourceLoc& /*loc*/, const TType& typ
...
@@ -3002,7 +3002,7 @@ void TParseContext::structArrayCheck(const TSourceLoc& /*loc*/, const TType& typ
}
}
}
}
void
TParseContext
::
arraySizesCheck
(
const
TSourceLoc
&
loc
,
const
TQualifier
&
qualifier
,
const
TArraySizes
*
arraySizes
,
bool
initializer
,
bool
lastMember
)
void
TParseContext
::
arraySizesCheck
(
const
TSourceLoc
&
loc
,
const
TQualifier
&
qualifier
,
TArraySizes
*
arraySizes
,
bool
initializer
,
bool
lastMember
)
{
{
assert
(
arraySizes
);
assert
(
arraySizes
);
...
@@ -3015,8 +3015,10 @@ void TParseContext::arraySizesCheck(const TSourceLoc& loc, const TQualifier& qua
...
@@ -3015,8 +3015,10 @@ void TParseContext::arraySizesCheck(const TSourceLoc& loc, const TQualifier& qua
return
;
return
;
// No environment allows any non-outer-dimension to be implicitly sized
// No environment allows any non-outer-dimension to be implicitly sized
if
(
arraySizes
->
isInnerImplicit
())
if
(
arraySizes
->
isInnerImplicit
())
{
error
(
loc
,
"only outermost dimension of an array of arrays can be implicitly sized"
,
"[]"
,
""
);
error
(
loc
,
"only outermost dimension of an array of arrays can be implicitly sized"
,
"[]"
,
""
);
arraySizes
->
clearInnerImplicit
();
}
if
(
arraySizes
->
isInnerSpecialization
())
if
(
arraySizes
->
isInnerSpecialization
())
error
(
loc
,
"only outermost dimension of an array of arrays can be a specialization constant"
,
"[]"
,
""
);
error
(
loc
,
"only outermost dimension of an array of arrays can be a specialization constant"
,
"[]"
,
""
);
...
...
glslang/MachineIndependent/ParseHelper.h
View file @
e8d21388
...
@@ -338,7 +338,7 @@ public:
...
@@ -338,7 +338,7 @@ public:
bool
arrayError
(
const
TSourceLoc
&
,
const
TType
&
);
bool
arrayError
(
const
TSourceLoc
&
,
const
TType
&
);
void
arraySizeRequiredCheck
(
const
TSourceLoc
&
,
const
TArraySizes
&
);
void
arraySizeRequiredCheck
(
const
TSourceLoc
&
,
const
TArraySizes
&
);
void
structArrayCheck
(
const
TSourceLoc
&
,
const
TType
&
structure
);
void
structArrayCheck
(
const
TSourceLoc
&
,
const
TType
&
structure
);
void
arraySizesCheck
(
const
TSourceLoc
&
,
const
TQualifier
&
,
const
TArraySizes
*
,
bool
initializer
,
bool
lastMember
);
void
arraySizesCheck
(
const
TSourceLoc
&
,
const
TQualifier
&
,
TArraySizes
*
,
bool
initializer
,
bool
lastMember
);
void
arrayOfArrayVersionCheck
(
const
TSourceLoc
&
);
void
arrayOfArrayVersionCheck
(
const
TSourceLoc
&
);
void
arrayDimCheck
(
const
TSourceLoc
&
,
const
TArraySizes
*
sizes1
,
const
TArraySizes
*
sizes2
);
void
arrayDimCheck
(
const
TSourceLoc
&
,
const
TArraySizes
*
sizes1
,
const
TArraySizes
*
sizes2
);
void
arrayDimCheck
(
const
TSourceLoc
&
,
const
TType
*
,
const
TArraySizes
*
);
void
arrayDimCheck
(
const
TSourceLoc
&
,
const
TType
*
,
const
TArraySizes
*
);
...
...
gtests/AST.FromFile.cpp
View file @
e8d21388
...
@@ -160,7 +160,7 @@ INSTANTIATE_TEST_CASE_P(
...
@@ -160,7 +160,7 @@ INSTANTIATE_TEST_CASE_P(
"460.vert"
,
"460.vert"
,
"dce.frag"
,
"dce.frag"
,
"atomic_uint.frag"
,
"atomic_uint.frag"
,
//
"implicitInnerAtomicUint.frag",
"implicitInnerAtomicUint.frag"
,
"aggOps.frag"
,
"aggOps.frag"
,
"always-discard.frag"
,
"always-discard.frag"
,
"always-discard2.frag"
,
"always-discard2.frag"
,
...
...
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