diff --git a/src/gallium/auxiliary/util/u_blitter.c b/src/gallium/auxiliary/util/u_blitter.c index f23474325e1..ddf0341c935 100644 --- a/src/gallium/auxiliary/util/u_blitter.c +++ b/src/gallium/auxiliary/util/u_blitter.c @@ -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; diff --git a/src/gallium/auxiliary/util/u_blitter.h b/src/gallium/auxiliary/util/u_blitter.h index 70157e5df4b..68424acbf85 100644 --- a/src/gallium/auxiliary/util/u_blitter.h +++ b/src/gallium/auxiliary/util/u_blitter.h @@ -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); diff --git a/src/gallium/drivers/llvmpipe/lp_context.c b/src/gallium/drivers/llvmpipe/lp_context.c index 35f3618e8d7..e7dc5457e8e 100644 --- a/src/gallium/drivers/llvmpipe/lp_context.c +++ b/src/gallium/drivers/llvmpipe/lp_context.c @@ -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); diff --git a/src/gallium/drivers/zink/zink_context.c b/src/gallium/drivers/zink/zink_context.c index 48d701a139e..2edcb1907c0 100644 --- a/src/gallium/drivers/zink/zink_context.c +++ b/src/gallium/drivers/zink/zink_context.c @@ -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);