mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-29 08:00:12 +01:00
radeonsi: fix binding the dummy pixel shader
This fixes valgrind errors in glxinfo. Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
This commit is contained in:
parent
0eb528abf2
commit
7fa8fb7382
3 changed files with 11 additions and 24 deletions
|
|
@ -166,7 +166,7 @@ struct r600_context {
|
|||
|
||||
/* With rasterizer discard, there doesn't have to be a pixel shader.
|
||||
* In that case, we bind this one: */
|
||||
struct si_pipe_shader *dummy_pixel_shader;
|
||||
void *dummy_pixel_shader;
|
||||
struct r600_atom cache_flush;
|
||||
struct pipe_constant_buffer null_const_buf; /* used for set_constant_buffer(NULL) on CIK */
|
||||
|
||||
|
|
|
|||
|
|
@ -2335,15 +2335,12 @@ static void si_bind_vs_shader(struct pipe_context *ctx, void *state)
|
|||
if (rctx->vs_shader == sel)
|
||||
return;
|
||||
|
||||
if (!sel || !sel->current)
|
||||
return;
|
||||
|
||||
rctx->vs_shader = sel;
|
||||
|
||||
if (sel && sel->current) {
|
||||
si_pm4_bind_state(rctx, vs, sel->current->pm4);
|
||||
rctx->b.streamout.stride_in_dw = sel->so.stride;
|
||||
} else {
|
||||
si_pm4_bind_state(rctx, vs, rctx->dummy_pixel_shader->pm4);
|
||||
}
|
||||
|
||||
si_pm4_bind_state(rctx, vs, sel->current->pm4);
|
||||
rctx->b.streamout.stride_in_dw = sel->so.stride;
|
||||
rctx->b.flags |= R600_CONTEXT_INV_SHADER_CACHE;
|
||||
}
|
||||
|
||||
|
|
@ -2355,13 +2352,11 @@ static void si_bind_ps_shader(struct pipe_context *ctx, void *state)
|
|||
if (rctx->ps_shader == sel)
|
||||
return;
|
||||
|
||||
if (!sel || !sel->current)
|
||||
sel = rctx->dummy_pixel_shader;
|
||||
|
||||
rctx->ps_shader = sel;
|
||||
|
||||
if (sel && sel->current)
|
||||
si_pm4_bind_state(rctx, ps, sel->current->pm4);
|
||||
else
|
||||
si_pm4_bind_state(rctx, ps, rctx->dummy_pixel_shader->pm4);
|
||||
|
||||
si_pm4_bind_state(rctx, ps, sel->current->pm4);
|
||||
rctx->b.flags |= R600_CONTEXT_INV_SHADER_CACHE;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -470,17 +470,9 @@ static void si_update_derived_state(struct r600_context *rctx)
|
|||
si_pipe_shader_ps(ctx, rctx->ps_shader->current);
|
||||
ps_dirty = 0;
|
||||
}
|
||||
if (!rctx->ps_shader->current->bo) {
|
||||
if (!rctx->dummy_pixel_shader->pm4)
|
||||
si_pipe_shader_ps(ctx, rctx->dummy_pixel_shader);
|
||||
else
|
||||
si_pm4_bind_state(rctx, vs, rctx->dummy_pixel_shader->pm4);
|
||||
|
||||
ps_dirty = 0;
|
||||
}
|
||||
if (rctx->ps_shader->current->cb0_is_integer != rctx->fb_cb0_is_integer) {
|
||||
si_pipe_shader_ps(ctx, rctx->ps_shader->current);
|
||||
ps_dirty = 1;
|
||||
ps_dirty = 0;
|
||||
}
|
||||
|
||||
if (ps_dirty) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue