[Mesa-dev] [PATCH 6/6] glsl: Allow instructions to be generated for array size declarations.

Eric Anholt eric at anholt.net
Mon Apr 11 13:16:36 PDT 2011


On Mon, 11 Apr 2011 12:59:12 -0700, Kenneth Graunke <kenneth at whitecape.org> wrote:
> 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.

I kind of like the sound of up-front constant expression detection for
function calls.  The thing I want to avoid is function calls appearing
in expression trees, which seems like the other way this would work.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20110411/63467cbe/attachment.pgp>


More information about the mesa-dev mailing list