diff options
author | Brian Paul <[email protected]> | 2009-03-06 16:04:53 -0700 |
---|---|---|
committer | Brian Paul <[email protected]> | 2009-03-06 16:21:20 -0700 |
commit | 5cbd1170da0a902fdc9c460584bc503b0c4085a6 (patch) | |
tree | a55152e7e0cad99823d1ce7a68063c9800da2a06 /src/mesa/drivers/dri/i965/brw_program.c | |
parent | 99e4809f5d2126db36ec652e07bc8e77f1383a84 (diff) |
i965: avoid unnecessary calls to brw_wm_is_glsl()
This function scans the shader to see if it has any GLSL features like
conditionals and loops. Calling this during state validation is expensive.
Just call it when the shader is given to the driver and save the result.
There's some new/temporary assertions to be sure we don't get out of sync
on this.
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_program.c')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_program.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_program.c b/src/mesa/drivers/dri/i965/brw_program.c index 774180c28c7..2894cce3d6b 100644 --- a/src/mesa/drivers/dri/i965/brw_program.c +++ b/src/mesa/drivers/dri/i965/brw_program.c @@ -38,6 +38,7 @@ #include "brw_context.h" #include "brw_util.h" +#include "brw_wm.h" static void brwBindProgram( GLcontext *ctx, GLenum target, @@ -122,6 +123,7 @@ static void brwProgramStringNotify( GLcontext *ctx, if (newFP == curFP) brw->state.dirty.brw |= BRW_NEW_FRAGMENT_PROGRAM; newFP->id = brw->program_id++; + newFP->isGLSL = brw_wm_is_glsl(fprog); } else if (target == GL_VERTEX_PROGRAM_ARB) { struct brw_vertex_program *newVP = (struct brw_vertex_program *) prog; |