diff options
author | Dave Airlie <airlied@redhat.com> | 2015-11-30 13:27:22 +1000 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2015-12-07 09:58:59 +1000 |
commit | 19799a59281ea01d47681cd9b04514fc5b96b74d (patch) | |
tree | acac69d04752938ab1c6fea84b4aadab346ea64c /src/gallium/drivers/r600/evergreen_state.c | |
parent | bb2b8778cbf7ca6263bf1540708900620a56ace4 (diff) | |
download | external_mesa3d-19799a59281ea01d47681cd9b04514fc5b96b74d.zip external_mesa3d-19799a59281ea01d47681cd9b04514fc5b96b74d.tar.gz external_mesa3d-19799a59281ea01d47681cd9b04514fc5b96b74d.tar.bz2 |
r600: move to using hw stages array for hw stage atoms
This moves to using an array of hw stages for the atoms.
Note this drops the 23 from the vertex shader, this value
is calculated internally when shaders are bound, so not
required here.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'src/gallium/drivers/r600/evergreen_state.c')
-rw-r--r-- | src/gallium/drivers/r600/evergreen_state.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/src/gallium/drivers/r600/evergreen_state.c b/src/gallium/drivers/r600/evergreen_state.c index d98885a..0b74146 100644 --- a/src/gallium/drivers/r600/evergreen_state.c +++ b/src/gallium/drivers/r600/evergreen_state.c @@ -3496,7 +3496,7 @@ fallback: void evergreen_init_state_functions(struct r600_context *rctx) { unsigned id = 1; - + unsigned i; /* !!! * To avoid GPU lockup registers must be emited in a specific order * (no kidding ...). The order below is important and have been @@ -3555,10 +3555,8 @@ void evergreen_init_state_functions(struct r600_context *rctx) r600_add_atom(rctx, &rctx->b.render_cond_atom, id++); r600_add_atom(rctx, &rctx->b.streamout.begin_atom, id++); r600_add_atom(rctx, &rctx->b.streamout.enable_atom, id++); - r600_init_atom(rctx, &rctx->vertex_shader.atom, id++, r600_emit_shader, 23); - r600_init_atom(rctx, &rctx->pixel_shader.atom, id++, r600_emit_shader, 0); - r600_init_atom(rctx, &rctx->geometry_shader.atom, id++, r600_emit_shader, 0); - r600_init_atom(rctx, &rctx->export_shader.atom, id++, r600_emit_shader, 0); + for (i = 0; i < EG_NUM_HW_STAGES; i++) + r600_init_atom(rctx, &rctx->hw_shader_stages[i].atom, id++, r600_emit_shader, 0); r600_init_atom(rctx, &rctx->shader_stages.atom, id++, evergreen_emit_shader_stages, 6); r600_init_atom(rctx, &rctx->gs_rings.atom, id++, evergreen_emit_gs_rings, 26); |