Mesa (master): i965: Merge initialisation of backend_visitor

Topi Pohjolainen tpohjola at kemper.freedesktop.org
Wed Mar 5 11:23:09 UTC 2014


Module: Mesa
Branch: master
Commit: 81494ec6137d133f999a98474d1660b8c87d2276
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=81494ec6137d133f999a98474d1660b8c87d2276

Author: Topi Pohjolainen <topi.pohjolainen at intel.com>
Date:   Fri Feb 14 11:54:02 2014 +0200

i965: Merge initialisation of backend_visitor

Reviewed-by: Matt Turner <mattst88 at gmail.com>
Signed-off-by: Topi Pohjolainen <topi.pohjolainen at intel.com>

---

 src/mesa/drivers/dri/i965/brw_fs_visitor.cpp   |    9 ++-------
 src/mesa/drivers/dri/i965/brw_shader.cpp       |   12 ++++++++++++
 src/mesa/drivers/dri/i965/brw_shader.h         |    7 +++++++
 src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp |    9 ++-------
 4 files changed, 23 insertions(+), 14 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
index 6dcdd28..424763b 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
@@ -2942,16 +2942,11 @@ fs_visitor::fs_visitor(struct brw_context *brw,
                        struct gl_shader_program *shader_prog,
                        struct gl_fragment_program *fp,
                        unsigned dispatch_width)
-   : dispatch_width(dispatch_width)
+   : backend_visitor(brw, shader_prog, &fp->Base, &c->prog_data.base),
+     dispatch_width(dispatch_width)
 {
    this->c = c;
-   this->brw = brw;
    this->fp = fp;
-   this->prog = &fp->Base;
-   this->shader_prog = shader_prog;
-   this->prog = &fp->Base;
-   this->stage_prog_data = &c->prog_data.base;
-   this->ctx = &brw->ctx;
    this->mem_ctx = ralloc_context(NULL);
    if (shader_prog)
       shader = (struct brw_shader *)
diff --git a/src/mesa/drivers/dri/i965/brw_shader.cpp b/src/mesa/drivers/dri/i965/brw_shader.cpp
index 173aeb6..747137e 100644
--- a/src/mesa/drivers/dri/i965/brw_shader.cpp
+++ b/src/mesa/drivers/dri/i965/brw_shader.cpp
@@ -536,6 +536,18 @@ brw_instruction_name(enum opcode op)
    }
 }
 
+backend_visitor::backend_visitor(struct brw_context *brw,
+                                 struct gl_shader_program *shader_prog,
+                                 struct gl_program *prog,
+                                 struct brw_stage_prog_data *stage_prog_data)
+   : brw(brw),
+     ctx(&brw->ctx),
+     shader_prog(shader_prog),
+     prog(prog),
+     stage_prog_data(stage_prog_data)
+{
+}
+
 bool
 backend_instruction::is_tex()
 {
diff --git a/src/mesa/drivers/dri/i965/brw_shader.h b/src/mesa/drivers/dri/i965/brw_shader.h
index 4d98cbc..0163414 100644
--- a/src/mesa/drivers/dri/i965/brw_shader.h
+++ b/src/mesa/drivers/dri/i965/brw_shader.h
@@ -69,6 +69,13 @@ enum instruction_scheduler_mode {
 };
 
 class backend_visitor : public ir_visitor {
+protected:
+
+   backend_visitor(struct brw_context *brw,
+                   struct gl_shader_program *shader_prog,
+                   struct gl_program *prog,
+                   struct brw_stage_prog_data *stage_prog_data);
+
 public:
 
    struct brw_context *brw;
diff --git a/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp b/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp
index 26122cc..87b1361 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp
+++ b/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp
@@ -3363,7 +3363,8 @@ vec4_visitor::vec4_visitor(struct brw_context *brw,
                            shader_time_shader_type st_base,
                            shader_time_shader_type st_written,
                            shader_time_shader_type st_reset)
-   : c(c),
+   : backend_visitor(brw, shader_prog, prog, &prog_data->base),
+     c(c),
      key(key),
      prog_data(prog_data),
      sanity_param_count(0),
@@ -3376,9 +3377,6 @@ vec4_visitor::vec4_visitor(struct brw_context *brw,
      st_written(st_written),
      st_reset(st_reset)
 {
-   this->brw = brw;
-   this->ctx = &brw->ctx;
-   this->shader_prog = shader_prog;
    this->shader = shader;
 
    this->mem_ctx = mem_ctx;
@@ -3388,9 +3386,6 @@ vec4_visitor::vec4_visitor(struct brw_context *brw,
    this->current_annotation = NULL;
    memset(this->output_reg_annotation, 0, sizeof(this->output_reg_annotation));
 
-   this->prog = prog;
-   this->stage_prog_data = &prog_data->base;
-
    this->variable_ht = hash_table_ctor(0,
 				       hash_table_pointer_hash,
 				       hash_table_pointer_compare);




More information about the mesa-commit mailing list