glsl: Added gl_shader_state::EmitContReturn field
authorBrian Paul <brianp@vmware.com>
Wed, 17 Jun 2009 17:57:39 +0000 (11:57 -0600)
committerBrian Paul <brianp@vmware.com>
Fri, 26 Jun 2009 19:16:32 +0000 (13:16 -0600)
This is the start of a glsl-continue-return feature branch to support
a GLSL code generator option for 'continue' and 'return' statements.
Some targets don't support CONT or RET statements so we'll need to
try to generate code that does not use them...

src/mesa/main/mtypes.h
src/mesa/shader/shader_api.c

index b9cb972e5f4aa7f5771acdc9004347c2d1e55428..84a082b253e3abc8705cbe085a01e6b5109bd9db 100644 (file)
@@ -2032,6 +2032,7 @@ struct gl_shader_state
    struct gl_shader_program *CurrentProgram; /**< The user-bound program */
    /** Driver-selectable options: */
    GLboolean EmitHighLevelInstructions; /**< IF/ELSE/ENDIF vs. BRA, etc. */
+   GLboolean EmitContReturn;            /**< Emit CONT/RET opcodes? */
    GLboolean EmitCondCodes;             /**< Use condition codes? */
    GLboolean EmitComments;              /**< Annotated instructions */
    void *MemPool;
index 644cd39185cf163c406d4ef85a4565247886c207..cf9f8b9222422b53a018c1f8b9028caeabb63405 100644 (file)
@@ -402,6 +402,7 @@ _mesa_init_shader_state(GLcontext * ctx)
     * are generated by the GLSL compiler.
     */
    ctx->Shader.EmitHighLevelInstructions = GL_TRUE;
+   ctx->Shader.EmitContReturn = GL_TRUE;
    ctx->Shader.EmitCondCodes = GL_FALSE;
    ctx->Shader.EmitComments = GL_FALSE;
    ctx->Shader.Flags = get_shader_flags();