case GL_VERTEX_PROGRAM_ARB:
brw->state.dirty.brw |= BRW_NEW_VERTEX_PROGRAM;
break;
+ case MESA_GEOMETRY_PROGRAM:
+ brw->state.dirty.brw |= BRW_NEW_GEOMETRY_PROGRAM;
+ break;
case GL_FRAGMENT_PROGRAM_ARB:
brw->state.dirty.brw |= BRW_NEW_FRAGMENT_PROGRAM;
break;
return NULL;
}
+ case MESA_GEOMETRY_PROGRAM: {
+ struct brw_geometry_program *prog = CALLOC_STRUCT(brw_geometry_program);
+ if (prog) {
+ prog->id = get_new_program_id(brw->intelScreen);
+
+ return _mesa_init_geometry_program(ctx, &prog->program, target, id);
+ } else {
+ return NULL;
+ }
+ }
+
default:
- return _mesa_new_program(ctx, target, id);
+ assert(!"Unsupported target in brwNewProgram()");
+ return NULL;
}
}