On 04/09/2011 10:17 PM, Eric Anholt wrote:
The specs only say that they have to be a constant expression, which
would allow things like builtin function calls that generate
instructions as a side effect of their parsing.
Fixes the fixed array-size-constant-relational.vert.
---
src/glsl/ast.h | 2 +-
src/glsl/ast_function.cpp | 3 ++-
src/glsl/ast_to_hir.cpp | 34 ++++++++++++++++++----------------
3 files changed, 21 insertions(+), 18 deletions(-)
NAK. It seems utterly wrong that constant expressions generate
instructions. I think we should fix this, rather than allow it.
Apparently what's being emitted is:
1. The function prototype
2. A global variable declaration (i.e. lessThan_retval)
3. A global call and assignment (initializer)
Of course, these will likely not be used. ast_function could probably
detect if a function call is a C.E. and avoid emitting them.
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev