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:
Paul Berry 2013-02-17 11:25:37 -08:00
parent 4d773603d3
commit 9bb6840b28
3 changed files with 7 additions and 9 deletions

View file

@ -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);

View file

@ -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;
};

View file

@ -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);
}