diff options
author | Topi Pohjolainen <topi.pohjolainen@intel.com> | 2014-02-14 11:54:02 +0200 |
---|---|---|
committer | Topi Pohjolainen <topi.pohjolainen@intel.com> | 2014-03-05 10:20:21 +0200 |
commit | 81494ec6137d133f999a98474d1660b8c87d2276 (patch) | |
tree | 490555758b54928ba47de38aa2b6a352caf8ae01 /src | |
parent | afed5354aa7860483113722d2a810cccfa175474 (diff) | |
download | external_mesa3d-81494ec6137d133f999a98474d1660b8c87d2276.zip external_mesa3d-81494ec6137d133f999a98474d1660b8c87d2276.tar.gz external_mesa3d-81494ec6137d133f999a98474d1660b8c87d2276.tar.bz2 |
i965: Merge initialisation of backend_visitor
Reviewed-by: Matt Turner <mattst88@gmail.com>
Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_fs_visitor.cpp | 9 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_shader.cpp | 12 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_shader.h | 7 | ||||
-rw-r--r-- | 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); |