i965/vec4: Make with_writemask() non-static.
[mesa.git] / src / mesa / drivers / dri / i965 / brw_program.c
index bb9676be8a5f78776b76050b4f051a7a276773c0..9a517be0b3443a544863cf89b933e5e80c14d57a 100644 (file)
@@ -62,6 +62,9 @@ static void brwBindProgram( struct gl_context *ctx,
    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;
@@ -99,8 +102,20 @@ static struct gl_program *brwNewProgram( struct gl_context *ctx,
         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;
    }
 }