mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-28 12:30:09 +01:00
radeonsi: allow unbinding pixel shaders and remove the dummy shader
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
This commit is contained in:
parent
50bb2decf7
commit
07b3cc6ecf
3 changed files with 1 additions and 22 deletions
|
|
@ -55,8 +55,6 @@ static void si_destroy_context(struct pipe_context *context)
|
|||
|
||||
if (sctx->pstipple_sampler_state)
|
||||
sctx->b.b.delete_sampler_state(&sctx->b.b, sctx->pstipple_sampler_state);
|
||||
if (sctx->dummy_pixel_shader)
|
||||
sctx->b.b.delete_fs_state(&sctx->b.b, sctx->dummy_pixel_shader);
|
||||
if (sctx->fixed_func_tcs_shader.cso)
|
||||
sctx->b.b.delete_tcs_state(&sctx->b.b, sctx->fixed_func_tcs_shader.cso);
|
||||
if (sctx->custom_dsa_flush)
|
||||
|
|
|
|||
|
|
@ -203,9 +203,6 @@ struct si_context {
|
|||
struct si_pm4_state *init_config;
|
||||
bool init_config_has_vgt_flush;
|
||||
struct si_pm4_state *vgt_shader_config[4];
|
||||
/* With rasterizer discard, there doesn't have to be a pixel shader.
|
||||
* In that case, we bind this one: */
|
||||
void *dummy_pixel_shader;
|
||||
|
||||
/* shaders */
|
||||
struct si_shader_ctx_state ps_shader;
|
||||
|
|
|
|||
|
|
@ -864,16 +864,6 @@ static void si_bind_tes_shader(struct pipe_context *ctx, void *state)
|
|||
si_update_viewports_and_scissors(sctx);
|
||||
}
|
||||
|
||||
static void si_make_dummy_ps(struct si_context *sctx)
|
||||
{
|
||||
if (!sctx->dummy_pixel_shader) {
|
||||
sctx->dummy_pixel_shader =
|
||||
util_make_fragment_cloneinput_shader(&sctx->b.b, 0,
|
||||
TGSI_SEMANTIC_GENERIC,
|
||||
TGSI_INTERPOLATE_CONSTANT);
|
||||
}
|
||||
}
|
||||
|
||||
static void si_bind_ps_shader(struct pipe_context *ctx, void *state)
|
||||
{
|
||||
struct si_context *sctx = (struct si_context *)ctx;
|
||||
|
|
@ -883,14 +873,8 @@ static void si_bind_ps_shader(struct pipe_context *ctx, void *state)
|
|||
if (sctx->ps_shader.cso == sel)
|
||||
return;
|
||||
|
||||
/* use a dummy shader if binding a NULL shader */
|
||||
if (!sel) {
|
||||
si_make_dummy_ps(sctx);
|
||||
sel = sctx->dummy_pixel_shader;
|
||||
}
|
||||
|
||||
sctx->ps_shader.cso = sel;
|
||||
sctx->ps_shader.current = sel->first_variant;
|
||||
sctx->ps_shader.current = sel ? sel->first_variant : NULL;
|
||||
si_mark_atom_dirty(sctx, &sctx->cb_target_mask);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue