gallium/u_blitter: work around broken sample shading in llvmpipe and zink
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13602>
This commit is contained in:
parent
eb34716c1f
commit
8b287c3f92
4 changed files with 11 additions and 0 deletions
|
|
@ -349,6 +349,13 @@ struct blitter_context *util_blitter_create(struct pipe_context *pipe)
|
|||
return &ctx->base;
|
||||
}
|
||||
|
||||
void util_blitter_sample_shading_force_off(struct blitter_context *blitter)
|
||||
{
|
||||
struct blitter_context_priv *ctx = (struct blitter_context_priv*)blitter;
|
||||
|
||||
ctx->has_sample_shading = false;
|
||||
}
|
||||
|
||||
void *util_blitter_get_noop_blend_state(struct blitter_context *blitter)
|
||||
{
|
||||
struct blitter_context_priv *ctx = (struct blitter_context_priv*)blitter;
|
||||
|
|
|
|||
|
|
@ -154,6 +154,7 @@ struct blitter_context *util_blitter_create(struct pipe_context *pipe);
|
|||
*/
|
||||
void util_blitter_destroy(struct blitter_context *blitter);
|
||||
|
||||
void util_blitter_sample_shading_force_off(struct blitter_context *blitter);
|
||||
void util_blitter_cache_all_shaders(struct blitter_context *blitter);
|
||||
void *util_blitter_get_noop_blend_state(struct blitter_context *blitter);
|
||||
void *util_blitter_get_noop_dsa_state(struct blitter_context *blitter);
|
||||
|
|
|
|||
|
|
@ -268,6 +268,7 @@ llvmpipe_create_context(struct pipe_screen *screen, void *priv,
|
|||
goto fail;
|
||||
}
|
||||
|
||||
util_blitter_sample_shading_force_off(llvmpipe->blitter);
|
||||
/* must be done before installing Draw stages */
|
||||
util_blitter_cache_all_shaders(llvmpipe->blitter);
|
||||
|
||||
|
|
|
|||
|
|
@ -4153,6 +4153,8 @@ zink_context_create(struct pipe_screen *pscreen, void *priv, unsigned flags)
|
|||
if (!ctx->blitter)
|
||||
goto fail;
|
||||
|
||||
util_blitter_sample_shading_force_off(ctx->blitter);
|
||||
|
||||
ctx->gfx_pipeline_state.shader_keys.last_vertex.key.vs_base.last_vertex_stage = true;
|
||||
ctx->last_vertex_stage_dirty = true;
|
||||
ctx->gfx_pipeline_state.shader_keys.key[PIPE_SHADER_VERTEX].size = sizeof(struct zink_vs_key_base);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue