Age | Commit message (Collapse) | Author |
|
Fixes CorrectParse1.frag and makes for a ton of folding in
CorrectParse2.frag.
|
|
Fixes up 3 more expressions in CorrectParse2.frag.
|
|
This results in constant folding of one more expression in CorrectParse2.frag.
|
|
This results in folding one more constant expression in CorrectParse2.frag.
|
|
|
|
|
|
When an unsized array is accessed with a constant extension index this
sets a lower bound on the allowable sizes. When the unsized array
gets a size set due to a whole-array assignment, this size must be at
least as large as the implied lower bound.
This causes the following tests to pass:
glslparsertest/glsl2/array-16.vert
|
|
This causes the following tests to pass:
glslparsertest/glsl2/matrix-11.vert
glslparsertest/glsl2/matrix-12.vert
glslparsertest/shaders/CorrectParse2.vert
glslparsertest/shaders/CorrectSwizzle2.frag
|
|
|
|
|
|
In GLSL 1.10 this was not allowed, but in GLSL 1.20 and later it is.
This causes the following tests to pass:
glslparsertest/glsl2/array-09.vert
glslparsertest/glsl2/array-13.vert
|
|
Whole arrays are assignable in GLSL 1.20 and later, but it's not clear
how to handle that within the IR because the IR is supposed to be
shading language version agnostic.
|
|
|
|
This causes the following tests to pass:
glslparsertest/shaders/function10.frag
|
|
If there is a void parameter it must not have a name, and it must be
the only parameter.
|
|
|
|
|
|
This causes the following tests to pass:
glslparsertest/shaders/function10.frag
|
|
Fixes constructor-09.glsl and CorrectParse2.frag.
|
|
|
|
This tricked my import of the tests into piglit.
|
|
|
|
Fixes glsl-vs-arrays.vert and glsl-vs-mov-after-deref.vert.
Regresses parser3.frag which was failing for the wrong reason.
|
|
Fixes CorrectFuncOverload.frag.
|
|
|
|
|
|
|
|
Fixes varying2.frag.
|
|
|
|
|
|
They were always throwing a type error because type wasn't being set.
|
|
|
|
|
|
|
|
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
|
|
This makes a little progress on CorrectParse2.frag.
|
|
Fixes constFunc.frag.
|
|
This regresses constFunc.frag, but that's just unexpectedly passing
because of the FINISHME just above.
|
|
Fixes segfaults in a shader consisting of just:
void main(void) { }
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
|
|
It isn't a type (is was enum specifying the kind of node), it was
unused, and it was easily confused with actual type fields. Kill with fire.
|
|
For unsized arrays, we can't flag out-of-bounds accesses until the
array is redeclared with a size. Track the maximum accessed element
and generate an error if the declaration specifies a size that would
cause that access to be out-of-bounds.
This causes the following tests to pass:
glslparsertest/shaders/array10.frag
|
|
This causes the following tests to pass:
glslparsertest/shaders/parser3.frag
glslparsertest/shaders/varying3.frag (also generates spurious error)
|
|
|
|
Test glslparsertest/shaders/array11.frag now passes for the right reason.
|
|
The former gets the type of elements in an array, and the later gets
the declared size, if any, of the array.
|
|
I haven't verified that these are all correct, but it's still a lot
better than not having anything.
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
|
|
ast_function::hir consists of bits pulled out of
ast_function_definition::hir. In fact, the later uses the former to
do a lot of its processing. Several class private data fields were
added to ast_function to facilitate communicate between the two.
This causes the following tests to pass:
glslparsertest/shaders/CorrectModule.frag
This causes the following tests to fail. These shaders were
previously failing to compile, but they were all failing for the wrong
reasons.
glslparsertest/shaders/function9.frag
glslparsertest/shaders/function10.frag
|
|
|
|
Several other code movements were also done. This partitions this
function into two halves. The first half processes the prototype
part, and the second have processes the actual function definition.
The coming patch series will parition ast_function_definition::hir
into (at least) two separate functions.
|
|
|