i965/vs: Make type of vec4_visitor::vp more generic.
authorPaul Berry <stereotype441@gmail.com>
Sat, 16 Feb 2013 04:19:23 +0000 (20:19 -0800)
committerPaul Berry <stereotype441@gmail.com>
Thu, 11 Apr 2013 16:25:24 +0000 (09:25 -0700)
The vec4_visitor functions don't use any VS specific data from
vec4_visitor::vp.  So rename it to "prog" and change its type from
struct gl_vertex_program * to struct gl_program *.  This will allow
the code to be re-used for geometry shaders.

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
v2: Use the name "prog" rather than "p".

Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/brw_vec4.cpp
src/mesa/drivers/dri/i965/brw_vec4.h
src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp
src/mesa/drivers/dri/i965/brw_vec4_vp.cpp

index 672beb78a054516c5c863d986857f4098518252d..ab1119e0671c5406fa3b214bc06876edb84e367d 100644 (file)
@@ -1377,7 +1377,7 @@ vec4_visitor::emit_shader_time_write(enum shader_time_shader_type type,
                                      src_reg value)
 {
    int shader_time_index =
-      brw_get_shader_time_index(brw, shader_prog, &vp->Base, type);
+      brw_get_shader_time_index(brw, shader_prog, prog, type);
 
    dst_reg dst =
       dst_reg(this, glsl_type::get_array_instance(glsl_type::vec4_type, 2));
@@ -1398,7 +1398,7 @@ vec4_visitor::emit_shader_time_write(enum shader_time_shader_type type,
 bool
 vec4_visitor::run()
 {
-   sanity_param_count = vp->Base.Parameters->NumParameters;
+   sanity_param_count = prog->Parameters->NumParameters;
 
    if (INTEL_DEBUG & DEBUG_SHADER_TIME)
       emit_shader_time_begin();
@@ -1482,7 +1482,7 @@ vec4_visitor::run()
     * _mesa_associate_uniform_storage() would point to freed memory.  Make
     * sure that didn't happen.
     */
-   assert(sanity_param_count == vp->Base.Parameters->NumParameters);
+   assert(sanity_param_count == prog->Parameters->NumParameters);
 
    return !failed;
 }
index 10f0c9d7abc2fffaa022f69ab5fda896758ac3c1..5839a0470bdfde5b892ccabde1eb328e7656e21f 100644 (file)
@@ -226,7 +226,7 @@ public:
       return dst_reg(retype(brw_null_reg(), BRW_REGISTER_TYPE_D));
    }
 
-   struct gl_vertex_program *vp;
+   struct gl_program *prog;
    struct brw_vs_compile *c;
    struct brw_vs_prog_data *prog_data;
    unsigned int sanity_param_count;
index 20b5330de43c0d9c6a0d8ccc8fef1470236391bd..e4877c29eb1c2d721c381d28bce1315d64c580e9 100644 (file)
@@ -676,9 +676,9 @@ vec4_visitor::setup_builtin_uniform_values(ir_variable *ir)
        * ParameterValues directly, since unlike brw_fs.cpp, we never
        * add new state references during compile.
        */
-      int index = _mesa_add_state_reference(this->vp->Base.Parameters,
+      int index = _mesa_add_state_reference(this->prog->Parameters,
                                            (gl_state_index *)slots[i].tokens);
-      float *values = &this->vp->Base.Parameters->ParameterValues[index][0].f;
+      float *values = &this->prog->Parameters->ParameterValues[index][0].f;
 
       this->uniform_vector_size[this->uniforms] = 0;
       /* Add each of the unique swizzled channels of the element.
@@ -2078,7 +2078,7 @@ void
 vec4_visitor::visit(ir_texture *ir)
 {
    int sampler =
-      _mesa_get_sampler_uniform_value(ir->sampler, shader_prog, &vp->Base);
+      _mesa_get_sampler_uniform_value(ir->sampler, shader_prog, prog);
 
    /* Should be lowered by do_lower_texture_projection */
    assert(!ir->projector);
@@ -3004,7 +3004,7 @@ vec4_visitor::vec4_visitor(struct brw_context *brw,
    memset(this->output_reg_annotation, 0, sizeof(this->output_reg_annotation));
 
    this->c = c;
-   this->vp = &c->vp->program;
+   this->prog = &c->vp->program.Base;
    this->prog_data = &c->prog_data;
 
    this->variable_ht = hash_table_ctor(0,
index 1acdd5287ed5c585c70cbb83e94c7e390d0af76f..366919379d08585acdea0822c7e1b8290ad5160e 100644 (file)
@@ -84,8 +84,8 @@ vec4_visitor::emit_vertex_program_code()
    src_reg one = src_reg(this, glsl_type::float_type);
    emit(MOV(dst_reg(one), src_reg(1.0f)));
 
-   for (unsigned int insn = 0; insn < vp->Base.NumInstructions; insn++) {
-      const struct prog_instruction *vpi = &vp->Base.Instructions[insn];
+   for (unsigned int insn = 0; insn < prog->NumInstructions; insn++) {
+      const struct prog_instruction *vpi = &prog->Instructions[insn];
       base_ir = vpi;
 
       dst_reg dst;
@@ -423,7 +423,7 @@ void
 vec4_visitor::setup_vp_regs()
 {
    /* PROGRAM_TEMPORARY */
-   int num_temp = vp->Base.NumTemporaries;
+   int num_temp = prog->NumTemporaries;
    vp_temp_regs = rzalloc_array(mem_ctx, src_reg, num_temp);
    for (int i = 0; i < num_temp; i++)
       vp_temp_regs[i] = src_reg(this, glsl_type::vec4_type);