i965/vs: Generalize data structures pointed to by vec4_generator.
This patch removes the following field from vec4_generator, since it is not used: - struct brw_vs_compile *c And changes the following field: - struct gl_vertex_program *vp => struct gl_program *prog With these changes, vec4_generator no longer refers to any VS-specific data structures. This will pave the way for re-using it 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>
This commit is contained in:
@@ -1539,7 +1539,7 @@ brw_vs_emit(struct brw_context *brw,
|
||||
return NULL;
|
||||
}
|
||||
|
||||
vec4_generator g(brw, c, prog, mem_ctx);
|
||||
vec4_generator g(brw, prog, &c->vp->program.Base, mem_ctx);
|
||||
const unsigned *generated =g.generate_assembly(&v.instructions,
|
||||
final_assembly_size);
|
||||
|
||||
|
||||
@@ -523,8 +523,8 @@ class vec4_generator
|
||||
{
|
||||
public:
|
||||
vec4_generator(struct brw_context *brw,
|
||||
struct brw_vs_compile *c,
|
||||
struct gl_shader_program *shader_prog,
|
||||
struct gl_program *prog,
|
||||
void *mem_ctx);
|
||||
~vec4_generator();
|
||||
|
||||
@@ -583,11 +583,10 @@ private:
|
||||
struct gl_context *ctx;
|
||||
|
||||
struct brw_compile *p;
|
||||
struct brw_vs_compile *c;
|
||||
|
||||
struct gl_shader_program *shader_prog;
|
||||
struct gl_shader *shader;
|
||||
const struct gl_vertex_program *vp;
|
||||
const struct gl_program *prog;
|
||||
|
||||
void *mem_ctx;
|
||||
};
|
||||
|
||||
@@ -133,13 +133,12 @@ vec4_instruction::get_src(int i)
|
||||
}
|
||||
|
||||
vec4_generator::vec4_generator(struct brw_context *brw,
|
||||
struct brw_vs_compile *c,
|
||||
struct gl_shader_program *shader_prog,
|
||||
struct gl_program *prog,
|
||||
void *mem_ctx)
|
||||
: brw(brw), c(c), shader_prog(shader_prog), mem_ctx(mem_ctx)
|
||||
: brw(brw), shader_prog(shader_prog), prog(prog), mem_ctx(mem_ctx)
|
||||
{
|
||||
intel = &brw->intel;
|
||||
vp = &c->vp->program;
|
||||
|
||||
shader = shader_prog ? shader_prog->_LinkedShaders[MESA_SHADER_VERTEX] : NULL;
|
||||
|
||||
@@ -710,7 +709,7 @@ vec4_generator::generate_code(exec_list *instructions)
|
||||
if (shader) {
|
||||
printf("Native code for vertex shader %d:\n", shader_prog->Name);
|
||||
} else {
|
||||
printf("Native code for vertex program %d:\n", c->vp->program.Base.Id);
|
||||
printf("Native code for vertex program %d:\n", prog->Id);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -728,7 +727,7 @@ vec4_generator::generate_code(exec_list *instructions)
|
||||
} else {
|
||||
const prog_instruction *vpi;
|
||||
vpi = (const prog_instruction *) inst->ir;
|
||||
printf("%d: ", (int)(vpi - vp->Base.Instructions));
|
||||
printf("%d: ", (int)(vpi - prog->Instructions));
|
||||
_mesa_fprint_instruction_opt(stdout, vpi, 0,
|
||||
PROG_PRINT_DEBUG, NULL);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user