radeonsi: don't save and restore vertex buffers and elements for u_blitter
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
This commit is contained in:
parent
69ccb9dae7
commit
5f566faa46
|
@ -552,7 +552,6 @@ void util_blitter_unset_running_flag(struct blitter_context *blitter)
|
||||||
|
|
||||||
static void blitter_check_saved_vertex_states(struct blitter_context_priv *ctx)
|
static void blitter_check_saved_vertex_states(struct blitter_context_priv *ctx)
|
||||||
{
|
{
|
||||||
assert(ctx->base.saved_velem_state != INVALID_PTR);
|
|
||||||
assert(ctx->base.saved_vs != INVALID_PTR);
|
assert(ctx->base.saved_vs != INVALID_PTR);
|
||||||
assert(!ctx->has_geometry_shader || ctx->base.saved_gs != INVALID_PTR);
|
assert(!ctx->has_geometry_shader || ctx->base.saved_gs != INVALID_PTR);
|
||||||
assert(!ctx->has_tessellation || ctx->base.saved_tcs != INVALID_PTR);
|
assert(!ctx->has_tessellation || ctx->base.saved_tcs != INVALID_PTR);
|
||||||
|
@ -568,13 +567,17 @@ void util_blitter_restore_vertex_states(struct blitter_context *blitter)
|
||||||
unsigned i;
|
unsigned i;
|
||||||
|
|
||||||
/* Vertex buffer. */
|
/* Vertex buffer. */
|
||||||
|
if (ctx->base.saved_vertex_buffer.buffer.resource) {
|
||||||
pipe->set_vertex_buffers(pipe, ctx->base.vb_slot, 1,
|
pipe->set_vertex_buffers(pipe, ctx->base.vb_slot, 1,
|
||||||
&ctx->base.saved_vertex_buffer);
|
&ctx->base.saved_vertex_buffer);
|
||||||
pipe_vertex_buffer_unreference(&ctx->base.saved_vertex_buffer);
|
pipe_vertex_buffer_unreference(&ctx->base.saved_vertex_buffer);
|
||||||
|
}
|
||||||
|
|
||||||
/* Vertex elements. */
|
/* Vertex elements. */
|
||||||
|
if (ctx->base.saved_velem_state != INVALID_PTR) {
|
||||||
pipe->bind_vertex_elements_state(pipe, ctx->base.saved_velem_state);
|
pipe->bind_vertex_elements_state(pipe, ctx->base.saved_velem_state);
|
||||||
ctx->base.saved_velem_state = INVALID_PTR;
|
ctx->base.saved_velem_state = INVALID_PTR;
|
||||||
|
}
|
||||||
|
|
||||||
/* Vertex shader. */
|
/* Vertex shader. */
|
||||||
pipe->bind_vs_state(pipe, ctx->base.saved_vs);
|
pipe->bind_vs_state(pipe, ctx->base.saved_vs);
|
||||||
|
|
|
@ -54,8 +54,6 @@ static void si_blitter_begin(struct pipe_context *ctx, enum si_blitter_op op)
|
||||||
{
|
{
|
||||||
struct si_context *sctx = (struct si_context *)ctx;
|
struct si_context *sctx = (struct si_context *)ctx;
|
||||||
|
|
||||||
util_blitter_save_vertex_buffer_slot(sctx->blitter, sctx->vertex_buffer);
|
|
||||||
util_blitter_save_vertex_elements(sctx->blitter, sctx->vertex_elements);
|
|
||||||
util_blitter_save_vertex_shader(sctx->blitter, sctx->vs_shader.cso);
|
util_blitter_save_vertex_shader(sctx->blitter, sctx->vs_shader.cso);
|
||||||
util_blitter_save_tessctrl_shader(sctx->blitter, sctx->tcs_shader.cso);
|
util_blitter_save_tessctrl_shader(sctx->blitter, sctx->tcs_shader.cso);
|
||||||
util_blitter_save_tesseval_shader(sctx->blitter, sctx->tes_shader.cso);
|
util_blitter_save_tesseval_shader(sctx->blitter, sctx->tes_shader.cso);
|
||||||
|
|
Loading…
Reference in New Issue