i965/vec4: Move total_scratch calculation into the visitor.
This is more consistent with how we do it in the FS backend, and reduces a tiny bit of duplication. It'll also allow for a bit more tidying. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
This commit is contained in:
parent
dc776ffb90
commit
8524deb8c8
|
@ -267,10 +267,7 @@ brw_codegen_gs_prog(struct brw_context *brw,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Scratch space is used for register spilling */
|
/* Scratch space is used for register spilling */
|
||||||
if (c.base.last_scratch) {
|
if (c.prog_data.base.base.total_scratch) {
|
||||||
c.prog_data.base.base.total_scratch
|
|
||||||
= brw_get_scratch_size(c.base.last_scratch*REG_SIZE);
|
|
||||||
|
|
||||||
brw_get_scratch_bo(brw, &stage_state->scratch_bo,
|
brw_get_scratch_bo(brw, &stage_state->scratch_bo,
|
||||||
c.prog_data.base.base.total_scratch *
|
c.prog_data.base.base.total_scratch *
|
||||||
brw->max_gs_threads);
|
brw->max_gs_threads);
|
||||||
|
|
|
@ -1846,6 +1846,11 @@ vec4_visitor::run(gl_clip_plane *clip_planes)
|
||||||
|
|
||||||
opt_set_dependency_control();
|
opt_set_dependency_control();
|
||||||
|
|
||||||
|
if (c->last_scratch > 0) {
|
||||||
|
prog_data->base.total_scratch =
|
||||||
|
brw_get_scratch_size(c->last_scratch * REG_SIZE);
|
||||||
|
}
|
||||||
|
|
||||||
/* If any state parameters were appended, then ParameterValues could have
|
/* If any state parameters were appended, then ParameterValues could have
|
||||||
* been realloced, in which case the driver uniform storage set up by
|
* been realloced, in which case the driver uniform storage set up by
|
||||||
* _mesa_associate_uniform_storage() would point to freed memory. Make
|
* _mesa_associate_uniform_storage() would point to freed memory. Make
|
||||||
|
@ -1943,8 +1948,6 @@ brw_vs_emit(struct brw_context *brw,
|
||||||
}
|
}
|
||||||
g.generate_code(v.cfg, 8);
|
g.generate_code(v.cfg, 8);
|
||||||
assembly = g.get_assembly(final_assembly_size);
|
assembly = g.get_assembly(final_assembly_size);
|
||||||
|
|
||||||
c->base.last_scratch = v.last_scratch;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!assembly) {
|
if (!assembly) {
|
||||||
|
|
|
@ -195,10 +195,7 @@ brw_codegen_vs_prog(struct brw_context *brw,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Scratch space is used for register spilling */
|
/* Scratch space is used for register spilling */
|
||||||
if (c.base.last_scratch) {
|
if (prog_data.base.base.total_scratch) {
|
||||||
prog_data.base.base.total_scratch
|
|
||||||
= brw_get_scratch_size(c.base.last_scratch*REG_SIZE);
|
|
||||||
|
|
||||||
brw_get_scratch_bo(brw, &brw->vs.base.scratch_bo,
|
brw_get_scratch_bo(brw, &brw->vs.base.scratch_bo,
|
||||||
prog_data.base.base.total_scratch *
|
prog_data.base.base.total_scratch *
|
||||||
brw->max_vs_threads);
|
brw->max_vs_threads);
|
||||||
|
|
Loading…
Reference in New Issue