summaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/i965/brw_program.c
diff options
context:
space:
mode:
authorPaul Berry <stereotype441@gmail.com>2013-07-02 08:02:47 -0700
committerPaul Berry <stereotype441@gmail.com>2013-07-08 14:18:02 -0700
commit292368570a13501dfa95b1b0dd70966caf6ffc6b (patch)
tree200c2b359be96e11a893c484137f96716e6883a9 /src/mesa/drivers/dri/i965/brw_program.c
parentba7b60d3e4a89558dc1b514e7611f17d238a2abc (diff)
downloadexternal_mesa3d-292368570a13501dfa95b1b0dd70966caf6ffc6b.zip
external_mesa3d-292368570a13501dfa95b1b0dd70966caf6ffc6b.tar.gz
external_mesa3d-292368570a13501dfa95b1b0dd70966caf6ffc6b.tar.bz2
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 <kenneth@whitecape.org>
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_program.c')
-rw-r--r--src/mesa/drivers/dri/i965/brw_program.c18
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 87986a9..cd37e70 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);