diff options
author | Jerome Glisse <jglisse@redhat.com> | 2010-08-24 17:46:31 -0400 |
---|---|---|
committer | Jerome Glisse <jglisse@redhat.com> | 2010-08-25 17:41:50 -0400 |
commit | bd25e23bf3740f59ce8859848c715daeb9e9821f (patch) | |
tree | a5a3aee080ec3dbf75a85aa1a5eafae538465c5b /src/gallium/drivers/r600/r600_context.c | |
parent | b5c07b9226d8e7de78f6367b5799b39caf820ef3 (diff) |
r600g: simplify states
Directly build PM4 packet, avoid using malloc (no states are
bigger than 128 dwords), remove unecessary informations,
remove pm4 building in favor of prebuild pm4 packet.
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Diffstat (limited to 'src/gallium/drivers/r600/r600_context.c')
-rw-r--r-- | src/gallium/drivers/r600/r600_context.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/src/gallium/drivers/r600/r600_context.c b/src/gallium/drivers/r600/r600_context.c index 9af28356c5c..790a85110bf 100644 --- a/src/gallium/drivers/r600/r600_context.c +++ b/src/gallium/drivers/r600/r600_context.c @@ -53,12 +53,10 @@ void r600_flush(struct pipe_context *ctx, unsigned flags, /* suspend queries */ r600_queries_suspend(ctx); - if (radeon_ctx_pm4(rctx->ctx)) - goto out; /* FIXME dumping should be removed once shader support instructions * without throwing bad code */ - if (!rctx->ctx->cpm4) + if (!rctx->ctx->id) goto out; sprintf(dname, "gallium-%08d.bof", dc); if (dc < 2) { @@ -73,8 +71,7 @@ void r600_flush(struct pipe_context *ctx, unsigned flags, } dc++; out: - rctx->ctx = radeon_ctx_decref(rctx->ctx); - rctx->ctx = radeon_ctx(rscreen->rw); + radeon_ctx_clear(rctx->ctx); /* resume queries */ r600_queries_resume(ctx); } @@ -218,7 +215,7 @@ static void r600_init_config(struct r600_context *rctx) num_es_stack_entries = 0; break; } - rctx->hw_states.config = radeon_state(rctx->rw, R600_CONFIG_TYPE, R600_CONFIG); + rctx->hw_states.config = radeon_state(rctx->rw, R600_CONFIG); rctx->hw_states.config->states[R600_CONFIG__SQ_CONFIG] = 0x00000000; switch (family) { |