i965/cs: Create the brw_compute_program struct, and the code to initialize it.
authorPaul Berry <stereotype441@gmail.com>
Tue, 7 Jan 2014 23:51:13 +0000 (15:51 -0800)
committerPaul Berry <stereotype441@gmail.com>
Wed, 5 Feb 2014 17:05:04 +0000 (09:05 -0800)
v2: Fix comment.

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
src/mesa/drivers/dri/i965/brw_context.h
src/mesa/drivers/dri/i965/brw_program.c

index a0189b77bad15c81d8710fcad9e6b3dd4910e6fc..bee39fadee9400c69d641d14fb365bd83a22091d 100644 (file)
@@ -316,6 +316,14 @@ struct brw_fragment_program {
    GLuint id;  /**< serial no. to identify frag progs, never re-used */
 };
 
+
+/** Subclass of Mesa compute program */
+struct brw_compute_program {
+   struct gl_compute_program program;
+   unsigned id;  /**< serial no. to identify compute progs, never re-used */
+};
+
+
 struct brw_shader {
    struct gl_shader base;
 
index a6a2403f538a5e3ad5ed431bf0a412fc1863c026..1e35191a8ce13dc9348ca0804da4ec3599e9be61 100644 (file)
@@ -113,6 +113,17 @@ static struct gl_program *brwNewProgram( struct gl_context *ctx,
       }
    }
 
+   case GL_COMPUTE_PROGRAM_NV: {
+      struct brw_compute_program *prog = CALLOC_STRUCT(brw_compute_program);
+      if (prog) {
+         prog->id = get_new_program_id(brw->intelScreen);
+
+         return _mesa_init_compute_program(ctx, &prog->program, target, id);
+      } else {
+         return NULL;
+      }
+   }
+
    default:
       assert(!"Unsupported target in brwNewProgram()");
       return NULL;