i965: Remove *_generator::shader field; use prog field instead.
authorPaul Berry <stereotype441@gmail.com>
Wed, 22 Jan 2014 19:45:39 +0000 (11:45 -0800)
committerPaul Berry <stereotype441@gmail.com>
Thu, 23 Jan 2014 21:40:55 +0000 (13:40 -0800)
The "shader" field in fs_generator, vec4_generator, and gen8_generator
was only used for one purpose; to figure out if we were compiling an
assembly program or a GLSL shader (shader is NULL for assembly
programs).  And it wasn't being used properly: in vec4 shaders we were
always initializing it based on
prog->_LinkedShaders[MESA_SHADER_FRAGMENT], regardless of whether we
were compiling a geometry shader or a vertex shader.

This patch simplifies things by using the "prog" field instead; this
is also NULL for assembly programs.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/brw_fs.h
src/mesa/drivers/dri/i965/brw_fs_generator.cpp
src/mesa/drivers/dri/i965/brw_vec4.h
src/mesa/drivers/dri/i965/brw_vec4_generator.cpp
src/mesa/drivers/dri/i965/gen8_fs_generator.cpp
src/mesa/drivers/dri/i965/gen8_generator.h
src/mesa/drivers/dri/i965/gen8_vec4_generator.cpp

index 9bc698297988206352319299c6fd402e43085fce..2ccb8c4585d90066bba57d65d6fbda6324762270 100644 (file)
@@ -617,7 +617,6 @@ private:
    struct brw_wm_compile *c;
 
    struct gl_shader_program *prog;
-   struct gl_shader *shader;
    const struct gl_fragment_program *fp;
 
    unsigned dispatch_width; /**< 8 or 16 */
index 121f73343cfe31b522a1cb6b3546972aef32a216..6d211e1141206f9899f6883024e21d8d9e44e4f1 100644 (file)
@@ -46,8 +46,6 @@ fs_generator::fs_generator(struct brw_context *brw,
 {
    ctx = &brw->ctx;
 
-   shader = prog ? prog->_LinkedShaders[MESA_SHADER_FRAGMENT] : NULL;
-
    mem_ctx = c;
 
    p = rzalloc(mem_ctx, struct brw_compile);
@@ -1332,7 +1330,7 @@ fs_generator::generate_code(exec_list *instructions, FILE *dump_file)
    const void *last_annotation_ir = NULL;
 
    if (unlikely(INTEL_DEBUG & DEBUG_WM)) {
-      if (shader) {
+      if (prog) {
          printf("Native code for fragment shader %d (SIMD%d dispatch):\n",
                 prog->Name, dispatch_width);
       } else if (fp) {
@@ -1373,7 +1371,7 @@ fs_generator::generate_code(exec_list *instructions, FILE *dump_file)
            last_annotation_ir = inst->ir;
            if (last_annotation_ir) {
               printf("   ");
-               if (shader)
+               if (prog)
                   ((ir_instruction *)inst->ir)->print();
                else {
                   const prog_instruction *fpi;
index 4a5b57775c30abea3bb29aaacbf96267b7b49176..e17b5cd3f3759efd33737396b00f42c09fa75fbd 100644 (file)
@@ -652,7 +652,6 @@ private:
    struct brw_compile *p;
 
    struct gl_shader_program *shader_prog;
-   struct gl_shader *shader;
    const struct gl_program *prog;
 
    struct brw_vec4_prog_data *prog_data;
index 1e6520dbabe02a82990a7cbe038d313c7b22e0d9..94d1e791689c9d717b6ab04da0170779797b08a2 100644 (file)
@@ -142,8 +142,6 @@ vec4_generator::vec4_generator(struct brw_context *brw,
    : brw(brw), shader_prog(shader_prog), prog(prog), prog_data(prog_data),
      mem_ctx(mem_ctx), debug_flag(debug_flag)
 {
-   shader = shader_prog ? shader_prog->_LinkedShaders[MESA_SHADER_VERTEX] : NULL;
-
    p = rzalloc(mem_ctx, struct brw_compile);
    brw_init_compile(brw, p, mem_ctx);
 }
@@ -1257,7 +1255,7 @@ vec4_generator::generate_code(exec_list *instructions)
    const void *last_annotation_ir = NULL;
 
    if (unlikely(debug_flag)) {
-      if (shader) {
+      if (prog) {
          printf("Native code for vertex shader %d:\n", shader_prog->Name);
       } else {
          printf("Native code for vertex program %d:\n", prog->Id);
@@ -1273,7 +1271,7 @@ vec4_generator::generate_code(exec_list *instructions)
            last_annotation_ir = inst->ir;
            if (last_annotation_ir) {
               printf("   ");
-               if (shader) {
+               if (prog) {
                   ((ir_instruction *) last_annotation_ir)->print();
                } else {
                   const prog_instruction *vpi;
index 6c710bc8a0c1d5abeaf99dc32ce4e4d87781bacf..e0b52126705cdcad30bcad9acc6533329fe56d02 100644 (file)
@@ -43,8 +43,6 @@ gen8_fs_generator::gen8_fs_generator(struct brw_context *brw,
    : gen8_generator(brw, shader_prog, fp ? &fp->Base : NULL, c), c(c), fp(fp),
      dual_source_output(dual_source_output)
 {
-   shader =
-      shader_prog ? shader_prog->_LinkedShaders[MESA_SHADER_FRAGMENT] : NULL;
 }
 
 gen8_fs_generator::~gen8_fs_generator()
@@ -570,7 +568,7 @@ gen8_fs_generator::generate_code(exec_list *instructions)
    const void *last_annotation_ir = NULL;
 
    if (unlikely(INTEL_DEBUG & DEBUG_WM)) {
-      if (shader) {
+      if (prog) {
          printf("Native code for fragment shader %d (SIMD%d dispatch):\n",
                 shader_prog->Name, dispatch_width);
       } else if (fp) {
@@ -611,7 +609,7 @@ gen8_fs_generator::generate_code(exec_list *instructions)
             last_annotation_ir = ir->ir;
             if (last_annotation_ir) {
                printf("   ");
-               if (shader) {
+               if (prog) {
                   ((ir_instruction *) ir->ir)->print();
                } else if (prog) {
                   const prog_instruction *fpi;
index 7d74267bcf1e8a96e984a37bf55dbf21b5f7d7f7..1f4b7f8823e3cf48ddfd146106b05cf390ee912e 100644 (file)
@@ -133,7 +133,6 @@ protected:
    gen8_instruction *next_inst(unsigned opcode);
 
    struct gl_shader_program *shader_prog;
-   struct gl_shader *shader;
    struct gl_program *prog;
 
    struct brw_context *brw;
index f1fc188eca33a216979c526ffa833fb592acf94c..5a348580b9a48c4605dbd18ffac0d6e1923a2f37 100644 (file)
@@ -42,7 +42,6 @@ gen8_vec4_generator::gen8_vec4_generator(struct brw_context *brw,
      prog_data(prog_data),
      debug_flag(debug_flag)
 {
-   shader = shader_prog ? shader_prog->_LinkedShaders[MESA_SHADER_VERTEX] : NULL;
 }
 
 gen8_vec4_generator::~gen8_vec4_generator()
@@ -783,7 +782,7 @@ gen8_vec4_generator::generate_code(exec_list *instructions)
    const void *last_annotation_ir = NULL;
 
    if (unlikely(debug_flag)) {
-      if (shader) {
+      if (prog) {
          printf("Native code for vertex shader %d:\n", shader_prog->Name);
       } else {
          printf("Native code for vertex program %d:\n", prog->Id);
@@ -799,7 +798,7 @@ gen8_vec4_generator::generate_code(exec_list *instructions)
             last_annotation_ir = ir->ir;
             if (last_annotation_ir) {
                printf("   ");
-               if (shader) {
+               if (prog) {
                   ((ir_instruction *) last_annotation_ir)->print();
                } else {
                   const prog_instruction *vpi;