diff options
author | Paul Berry <[email protected]> | 2013-07-02 08:02:47 -0700 |
---|---|---|
committer | Paul Berry <[email protected]> | 2013-07-08 14:18:02 -0700 |
commit | 292368570a13501dfa95b1b0dd70966caf6ffc6b (patch) | |
tree | 200c2b359be96e11a893c484137f96716e6883a9 /src | |
parent | ba7b60d3e4a89558dc1b514e7611f17d238a2abc (diff) |
i965: Add an assertion to brwProgramStringNotify.
driver->ProgramStringNotify is only called for ARB programs, fixed
function vertex programs, and ir_to_mesa (which isn't used by the i965
back-end). Therefore, even after geometry shaders are added,
brwProgramStringNotify should only ever be called with a target of
GL_VERTEX_PROGRAM_ARB or GL_FRAGMENT_PROGRAM_ARB.
This patch adds an assertion to clarify that.
Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_program.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_program.c b/src/mesa/drivers/dri/i965/brw_program.c index 87986a952f3..cd37e708ed8 100644 --- a/src/mesa/drivers/dri/i965/brw_program.c +++ b/src/mesa/drivers/dri/i965/brw_program.c @@ -126,7 +126,8 @@ brwProgramStringNotify(struct gl_context *ctx, { struct brw_context *brw = brw_context(ctx); - if (target == GL_FRAGMENT_PROGRAM_ARB) { + switch (target) { + case GL_FRAGMENT_PROGRAM_ARB: { struct gl_fragment_program *fprog = (struct gl_fragment_program *) prog; struct brw_fragment_program *newFP = brw_fragment_program(fprog); const struct brw_fragment_program *curFP = @@ -135,8 +136,9 @@ brwProgramStringNotify(struct gl_context *ctx, if (newFP == curFP) brw->state.dirty.brw |= BRW_NEW_FRAGMENT_PROGRAM; newFP->id = get_new_program_id(brw->intel.intelScreen); + break; } - else if (target == GL_VERTEX_PROGRAM_ARB) { + case GL_VERTEX_PROGRAM_ARB: { struct gl_vertex_program *vprog = (struct gl_vertex_program *) prog; struct brw_vertex_program *newVP = brw_vertex_program(vprog); const struct brw_vertex_program *curVP = @@ -152,6 +154,18 @@ brwProgramStringNotify(struct gl_context *ctx, /* Also tell tnl about it: */ _tnl_program_string(ctx, target, prog); + break; + } + default: + /* + * driver->ProgramStringNotify is only called for ARB programs, fixed + * function vertex programs, and ir_to_mesa (which isn't used by the + * i965 back-end). Therefore, even after geometry shaders are added, + * this function should only ever be called with a target of + * GL_VERTEX_PROGRAM_ARB or GL_FRAGMENT_PROGRAM_ARB. + */ + assert(!"Unexpected target in brwProgramStringNotify"); + break; } brw_add_texrect_params(prog); |