Mesa (main): gallium/u_blitter: disable sample shading for all blits
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Thu Nov 4 15:28:45 UTC 2021
Module: Mesa
Branch: main
Commit: 6d483fed852b0500a2668ac9f58d9a85f3d3586f
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=6d483fed852b0500a2668ac9f58d9a85f3d3586f
Author: Marek Olšák <marek.olsak at amd.com>
Date: Fri Oct 29 10:59:51 2021 -0400
gallium/u_blitter: disable sample shading for all blits
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer at amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13602>
---
src/gallium/auxiliary/util/u_blitter.c | 27 +++++++++++++++++++++++
src/gallium/auxiliary/util/u_blitter.h | 4 +++-
src/gallium/drivers/asahi/agx_blit.c | 2 +-
src/gallium/drivers/crocus/crocus_blit.c | 2 +-
src/gallium/drivers/d3d12/d3d12_blit.cpp | 2 +-
src/gallium/drivers/etnaviv/etnaviv_clear_blit.c | 2 +-
src/gallium/drivers/freedreno/freedreno_blitter.c | 2 +-
src/gallium/drivers/llvmpipe/lp_surface.c | 2 +-
src/gallium/drivers/nouveau/nv30/nv30_miptree.c | 2 +-
src/gallium/drivers/panfrost/pan_blit.c | 2 +-
src/gallium/drivers/r300/r300_blit.c | 2 +-
src/gallium/drivers/r600/r600_blit.c | 2 +-
src/gallium/drivers/radeonsi/si_blit.c | 2 +-
src/gallium/drivers/svga/svga_pipe_blit.c | 2 +-
src/gallium/drivers/svga/svga_pipe_clear.c | 2 +-
src/gallium/drivers/swr/swr_context.cpp | 2 +-
src/gallium/drivers/v3d/v3d_blit.c | 2 +-
src/gallium/drivers/vc4/vc4_blit.c | 2 +-
src/gallium/drivers/zink/zink_blit.c | 2 +-
19 files changed, 47 insertions(+), 18 deletions(-)
diff --git a/src/gallium/auxiliary/util/u_blitter.c b/src/gallium/auxiliary/util/u_blitter.c
index 4623eb7b08b..b7b7e531d70 100644
--- a/src/gallium/auxiliary/util/u_blitter.c
+++ b/src/gallium/auxiliary/util/u_blitter.c
@@ -711,6 +711,10 @@ void util_blitter_restore_fragment_states(struct blitter_context *blitter)
ctx->base.is_sample_mask_saved = false;
}
+ if (ctx->base.saved_min_samples != ~0 && pipe->set_min_samples)
+ pipe->set_min_samples(pipe, ctx->base.saved_min_samples);
+ ctx->base.saved_min_samples = ~0;
+
/* Miscellaneous states. */
/* XXX check whether these are saved and whether they need to be restored
* (depending on the operation) */
@@ -1479,6 +1483,8 @@ void util_blitter_common_clear_setup(struct blitter_context *blitter,
}
pipe->set_sample_mask(pipe, ~0);
+ if (pipe->set_min_samples)
+ pipe->set_min_samples(pipe, 1);
blitter_set_dst_dimensions(ctx, width, height);
}
@@ -1816,6 +1822,8 @@ static void do_blits(struct blitter_context_priv *ctx,
/* Draw. */
pipe->set_sample_mask(pipe, ~0);
+ if (pipe->set_min_samples)
+ pipe->set_min_samples(pipe, 1);
blitter_draw_tex(ctx, dstbox->x, dstbox->y,
dstbox->x + dstbox->width,
dstbox->y + dstbox->height,
@@ -1871,6 +1879,9 @@ static void do_blits(struct blitter_context_priv *ctx,
/* MSAA copy. */
unsigned i, max_sample = sample0_only ? 0 : dst_samples - 1;
+ if (pipe->set_min_samples)
+ pipe->set_min_samples(pipe, 1);
+
for (i = 0; i <= max_sample; i++) {
pipe->set_sample_mask(pipe, 1 << i);
blitter_draw_tex(ctx, dstbox->x, dstbox->y,
@@ -1886,6 +1897,8 @@ static void do_blits(struct blitter_context_priv *ctx,
} else {
/* Normal copy, MSAA upsampling, or MSAA resolve. */
pipe->set_sample_mask(pipe, ~0);
+ if (pipe->set_min_samples)
+ pipe->set_min_samples(pipe, 1);
blitter_draw_tex(ctx, dstbox->x, dstbox->y,
dstbox->x + dstbox->width,
dstbox->y + dstbox->height,
@@ -2312,6 +2325,8 @@ void util_blitter_clear_render_target(struct blitter_context *blitter,
fb_state.zsbuf = 0;
pipe->set_framebuffer_state(pipe, &fb_state);
pipe->set_sample_mask(pipe, ~0);
+ if (pipe->set_min_samples)
+ pipe->set_min_samples(pipe, 1);
msaa = util_framebuffer_get_num_samples(&fb_state) > 1;
blitter_set_dst_dimensions(ctx, dstsurf->width, dstsurf->height);
@@ -2395,6 +2410,8 @@ void util_blitter_clear_depth_stencil(struct blitter_context *blitter,
fb_state.zsbuf = dstsurf;
pipe->set_framebuffer_state(pipe, &fb_state);
pipe->set_sample_mask(pipe, ~0);
+ if (pipe->set_min_samples)
+ pipe->set_min_samples(pipe, 1);
blitter_set_dst_dimensions(ctx, dstsurf->width, dstsurf->height);
@@ -2464,6 +2481,8 @@ void util_blitter_custom_depth_stencil(struct blitter_context *blitter,
fb_state.zsbuf = zsurf;
pipe->set_framebuffer_state(pipe, &fb_state);
pipe->set_sample_mask(pipe, sample_mask);
+ if (pipe->set_min_samples)
+ pipe->set_min_samples(pipe, 1);
blitter_set_common_draw_rect_state(ctx, false,
util_framebuffer_get_num_samples(&fb_state) > 1);
@@ -2642,6 +2661,8 @@ void util_blitter_custom_resolve_color(struct blitter_context *blitter,
pipe->bind_depth_stencil_alpha_state(pipe, ctx->dsa_keep_depth_stencil);
bind_fs_write_one_cbuf(ctx);
pipe->set_sample_mask(pipe, sample_mask);
+ if (pipe->set_min_samples)
+ pipe->set_min_samples(pipe, 1);
memset(&surf_tmpl, 0, sizeof(surf_tmpl));
surf_tmpl.format = format;
@@ -2715,6 +2736,8 @@ void util_blitter_custom_color(struct blitter_context *blitter,
fb_state.zsbuf = 0;
pipe->set_framebuffer_state(pipe, &fb_state);
pipe->set_sample_mask(pipe, ~0);
+ if (pipe->set_min_samples)
+ pipe->set_min_samples(pipe, 1);
blitter_set_common_draw_rect_state(ctx, false,
util_framebuffer_get_num_samples(&fb_state) > 1);
@@ -2776,6 +2799,8 @@ void util_blitter_custom_shader(struct blitter_context *blitter,
fb_state.cbufs[0] = dstsurf;
pipe->set_framebuffer_state(pipe, &fb_state);
pipe->set_sample_mask(pipe, ~0);
+ if (pipe->set_min_samples)
+ pipe->set_min_samples(pipe, 1);
blitter_set_common_draw_rect_state(ctx, false,
util_framebuffer_get_num_samples(&fb_state) > 1);
@@ -2870,6 +2895,8 @@ util_blitter_stencil_fallback(struct blitter_context *blitter,
fb_state.zsbuf = dst_view;
pipe->set_framebuffer_state(pipe, &fb_state);
pipe->set_sample_mask(pipe, ~0);
+ if (pipe->set_min_samples)
+ pipe->set_min_samples(pipe, 1);
blitter_set_common_draw_rect_state(ctx, scissor != NULL,
util_framebuffer_get_num_samples(&fb_state) > 1);
diff --git a/src/gallium/auxiliary/util/u_blitter.h b/src/gallium/auxiliary/util/u_blitter.h
index 48b9344430f..70157e5df4b 100644
--- a/src/gallium/auxiliary/util/u_blitter.h
+++ b/src/gallium/auxiliary/util/u_blitter.h
@@ -118,6 +118,7 @@ struct blitter_context
bool skip_viewport_restore;
bool is_sample_mask_saved;
unsigned saved_sample_mask;
+ unsigned saved_min_samples;
unsigned saved_num_sampler_states;
void *saved_sampler_states[PIPE_MAX_SAMPLERS];
@@ -565,10 +566,11 @@ util_blitter_save_so_targets(struct blitter_context *blitter,
static inline void
util_blitter_save_sample_mask(struct blitter_context *blitter,
- unsigned sample_mask)
+ unsigned sample_mask, unsigned min_samples)
{
blitter->is_sample_mask_saved = true;
blitter->saved_sample_mask = sample_mask;
+ blitter->saved_min_samples = min_samples;
}
static inline void
diff --git a/src/gallium/drivers/asahi/agx_blit.c b/src/gallium/drivers/asahi/agx_blit.c
index 213761ade0b..545be057f4f 100644
--- a/src/gallium/drivers/asahi/agx_blit.c
+++ b/src/gallium/drivers/asahi/agx_blit.c
@@ -97,7 +97,7 @@ agx_blitter_save(struct agx_context *ctx, struct blitter_context *blitter,
util_blitter_save_depth_stencil_alpha(blitter, &ctx->zs);
util_blitter_save_stencil_ref(blitter, &ctx->stencil_ref);
util_blitter_save_so_targets(blitter, 0, NULL);
- util_blitter_save_sample_mask(blitter, ctx->sample_mask);
+ util_blitter_save_sample_mask(blitter, ctx->sample_mask, 0);
util_blitter_save_framebuffer(blitter, &ctx->framebuffer);
util_blitter_save_fragment_sampler_states(blitter,
diff --git a/src/gallium/drivers/crocus/crocus_blit.c b/src/gallium/drivers/crocus/crocus_blit.c
index c32bf9fbb1d..52255266675 100644
--- a/src/gallium/drivers/crocus/crocus_blit.c
+++ b/src/gallium/drivers/crocus/crocus_blit.c
@@ -49,7 +49,7 @@ void crocus_blitter_begin(struct crocus_context *ice, enum crocus_blitter_op op,
util_blitter_save_depth_stencil_alpha(ice->blitter, ice->state.cso_zsa);
util_blitter_save_stencil_ref(ice->blitter, &ice->state.stencil_ref);
util_blitter_save_fragment_shader(ice->blitter, ice->shaders.uncompiled[MESA_SHADER_FRAGMENT]);
- util_blitter_save_sample_mask(ice->blitter, ice->state.sample_mask);
+ util_blitter_save_sample_mask(ice->blitter, ice->state.sample_mask, 0);
util_blitter_save_rasterizer(ice->blitter, ice->state.cso_rast);
util_blitter_save_scissor(ice->blitter, &ice->state.scissors[0]);
util_blitter_save_viewport(ice->blitter, &ice->state.viewports[0]);
diff --git a/src/gallium/drivers/d3d12/d3d12_blit.cpp b/src/gallium/drivers/d3d12/d3d12_blit.cpp
index ed44263c8f8..2310d79c67f 100644
--- a/src/gallium/drivers/d3d12/d3d12_blit.cpp
+++ b/src/gallium/drivers/d3d12/d3d12_blit.cpp
@@ -557,7 +557,7 @@ util_blit_save_state(struct d3d12_context *ctx)
ctx->sampler_views[PIPE_SHADER_FRAGMENT]);
util_blitter_save_fragment_constant_buffer_slot(ctx->blitter, ctx->cbufs[PIPE_SHADER_FRAGMENT]);
util_blitter_save_vertex_buffer_slot(ctx->blitter, ctx->vbs);
- util_blitter_save_sample_mask(ctx->blitter, ctx->gfx_pipeline_state.sample_mask);
+ util_blitter_save_sample_mask(ctx->blitter, ctx->gfx_pipeline_state.sample_mask, 0);
util_blitter_save_so_targets(ctx->blitter, ctx->gfx_pipeline_state.num_so_targets, ctx->so_targets);
}
diff --git a/src/gallium/drivers/etnaviv/etnaviv_clear_blit.c b/src/gallium/drivers/etnaviv/etnaviv_clear_blit.c
index 99fd6cc1327..113f9cf53b7 100644
--- a/src/gallium/drivers/etnaviv/etnaviv_clear_blit.c
+++ b/src/gallium/drivers/etnaviv/etnaviv_clear_blit.c
@@ -61,7 +61,7 @@ etna_blit_save_state(struct etna_context *ctx)
util_blitter_save_blend(ctx->blitter, ctx->blend);
util_blitter_save_depth_stencil_alpha(ctx->blitter, ctx->zsa);
util_blitter_save_stencil_ref(ctx->blitter, &ctx->stencil_ref_s);
- util_blitter_save_sample_mask(ctx->blitter, ctx->sample_mask);
+ util_blitter_save_sample_mask(ctx->blitter, ctx->sample_mask, 0);
util_blitter_save_framebuffer(ctx->blitter, &ctx->framebuffer_s);
util_blitter_save_fragment_sampler_states(ctx->blitter,
ctx->num_fragment_samplers, (void **)ctx->sampler);
diff --git a/src/gallium/drivers/freedreno/freedreno_blitter.c b/src/gallium/drivers/freedreno/freedreno_blitter.c
index c41a0736ecb..ad829711aa1 100644
--- a/src/gallium/drivers/freedreno/freedreno_blitter.c
+++ b/src/gallium/drivers/freedreno/freedreno_blitter.c
@@ -94,7 +94,7 @@ fd_blitter_pipe_begin(struct fd_context *ctx, bool render_cond) assert_dt
util_blitter_save_blend(ctx->blitter, ctx->blend);
util_blitter_save_depth_stencil_alpha(ctx->blitter, ctx->zsa);
util_blitter_save_stencil_ref(ctx->blitter, &ctx->stencil_ref);
- util_blitter_save_sample_mask(ctx->blitter, ctx->sample_mask);
+ util_blitter_save_sample_mask(ctx->blitter, ctx->sample_mask, ctx->min_samples);
util_blitter_save_framebuffer(ctx->blitter, &ctx->framebuffer);
util_blitter_save_fragment_sampler_states(
ctx->blitter, ctx->tex[PIPE_SHADER_FRAGMENT].num_samplers,
diff --git a/src/gallium/drivers/llvmpipe/lp_surface.c b/src/gallium/drivers/llvmpipe/lp_surface.c
index a93131121f6..a116b02005f 100644
--- a/src/gallium/drivers/llvmpipe/lp_surface.c
+++ b/src/gallium/drivers/llvmpipe/lp_surface.c
@@ -159,7 +159,7 @@ static void lp_blit(struct pipe_context *pipe,
util_blitter_save_tesseval_shader(lp->blitter, (void*)lp->tes);
util_blitter_save_depth_stencil_alpha(lp->blitter, (void*)lp->depth_stencil);
util_blitter_save_stencil_ref(lp->blitter, &lp->stencil_ref);
- util_blitter_save_sample_mask(lp->blitter, lp->sample_mask);
+ util_blitter_save_sample_mask(lp->blitter, lp->sample_mask, lp->min_samples);
util_blitter_save_framebuffer(lp->blitter, &lp->framebuffer);
util_blitter_save_fragment_sampler_states(lp->blitter,
lp->num_samplers[PIPE_SHADER_FRAGMENT],
diff --git a/src/gallium/drivers/nouveau/nv30/nv30_miptree.c b/src/gallium/drivers/nouveau/nv30/nv30_miptree.c
index aef160ac160..5d1f16b28c9 100644
--- a/src/gallium/drivers/nouveau/nv30/nv30_miptree.c
+++ b/src/gallium/drivers/nouveau/nv30/nv30_miptree.c
@@ -258,7 +258,7 @@ nv30_blit(struct pipe_context *pipe,
util_blitter_save_depth_stencil_alpha(nv30->blitter,
nv30->zsa);
util_blitter_save_stencil_ref(nv30->blitter, &nv30->stencil_ref);
- util_blitter_save_sample_mask(nv30->blitter, nv30->sample_mask);
+ util_blitter_save_sample_mask(nv30->blitter, nv30->sample_mask, 0);
util_blitter_save_framebuffer(nv30->blitter, &nv30->framebuffer);
util_blitter_save_fragment_sampler_states(nv30->blitter,
nv30->fragprog.num_samplers,
diff --git a/src/gallium/drivers/panfrost/pan_blit.c b/src/gallium/drivers/panfrost/pan_blit.c
index f2523e2e594..51ebbec3a62 100644
--- a/src/gallium/drivers/panfrost/pan_blit.c
+++ b/src/gallium/drivers/panfrost/pan_blit.c
@@ -49,7 +49,7 @@ panfrost_blitter_save(
util_blitter_save_depth_stencil_alpha(blitter, ctx->depth_stencil);
util_blitter_save_stencil_ref(blitter, &ctx->stencil_ref);
util_blitter_save_so_targets(blitter, 0, NULL);
- util_blitter_save_sample_mask(blitter, ctx->sample_mask);
+ util_blitter_save_sample_mask(blitter, ctx->sample_mask, ctx->min_samples);
util_blitter_save_framebuffer(blitter, &ctx->pipe_framebuffer);
util_blitter_save_fragment_sampler_states(blitter,
diff --git a/src/gallium/drivers/r300/r300_blit.c b/src/gallium/drivers/r300/r300_blit.c
index 2609ee30535..e2648e3a71f 100644
--- a/src/gallium/drivers/r300/r300_blit.c
+++ b/src/gallium/drivers/r300/r300_blit.c
@@ -68,7 +68,7 @@ static void r300_blitter_begin(struct r300_context* r300, enum r300_blitter_op o
util_blitter_save_vertex_shader(r300->blitter, r300->vs_state.state);
util_blitter_save_viewport(r300->blitter, &r300->viewport);
util_blitter_save_scissor(r300->blitter, r300->scissor_state.state);
- util_blitter_save_sample_mask(r300->blitter, *(unsigned*)r300->sample_mask.state);
+ util_blitter_save_sample_mask(r300->blitter, *(unsigned*)r300->sample_mask.state, 0);
util_blitter_save_vertex_buffer_slot(r300->blitter, r300->vertex_buffer);
util_blitter_save_vertex_elements(r300->blitter, r300->velems);
diff --git a/src/gallium/drivers/r600/r600_blit.c b/src/gallium/drivers/r600/r600_blit.c
index 2ee4744bf0a..ddceebfeffe 100644
--- a/src/gallium/drivers/r600/r600_blit.c
+++ b/src/gallium/drivers/r600/r600_blit.c
@@ -76,7 +76,7 @@ static void r600_blitter_begin(struct pipe_context *ctx, enum r600_blitter_op op
util_blitter_save_blend(rctx->blitter, rctx->blend_state.cso);
util_blitter_save_depth_stencil_alpha(rctx->blitter, rctx->dsa_state.cso);
util_blitter_save_stencil_ref(rctx->blitter, &rctx->stencil_ref.pipe_state);
- util_blitter_save_sample_mask(rctx->blitter, rctx->sample_mask.sample_mask);
+ util_blitter_save_sample_mask(rctx->blitter, rctx->sample_mask.sample_mask, rctx->ps_iter_samples);
}
if (op & R600_SAVE_FRAMEBUFFER)
diff --git a/src/gallium/drivers/radeonsi/si_blit.c b/src/gallium/drivers/radeonsi/si_blit.c
index 8c7860f0de6..c2c96d0dfbe 100644
--- a/src/gallium/drivers/radeonsi/si_blit.c
+++ b/src/gallium/drivers/radeonsi/si_blit.c
@@ -56,7 +56,7 @@ void si_blitter_begin(struct si_context *sctx, enum si_blitter_op op)
util_blitter_save_depth_stencil_alpha(sctx->blitter, sctx->queued.named.dsa);
util_blitter_save_stencil_ref(sctx->blitter, &sctx->stencil_ref.state);
util_blitter_save_fragment_shader(sctx->blitter, sctx->shader.ps.cso);
- util_blitter_save_sample_mask(sctx->blitter, sctx->sample_mask);
+ util_blitter_save_sample_mask(sctx->blitter, sctx->sample_mask, sctx->ps_iter_samples);
util_blitter_save_scissor(sctx->blitter, &sctx->scissors[0]);
util_blitter_save_window_rectangles(sctx->blitter, sctx->window_rectangles_include,
sctx->num_window_rectangles, sctx->window_rectangles);
diff --git a/src/gallium/drivers/svga/svga_pipe_blit.c b/src/gallium/drivers/svga/svga_pipe_blit.c
index 1d3ec2a185a..8cff079eea6 100644
--- a/src/gallium/drivers/svga/svga_pipe_blit.c
+++ b/src/gallium/drivers/svga/svga_pipe_blit.c
@@ -634,7 +634,7 @@ try_blit(struct svga_context *svga, const struct pipe_blit_info *blit_info)
util_blitter_save_depth_stencil_alpha(svga->blitter,
(void*)svga->curr.depth);
util_blitter_save_stencil_ref(svga->blitter, &svga->curr.stencil_ref);
- util_blitter_save_sample_mask(svga->blitter, svga->curr.sample_mask);
+ util_blitter_save_sample_mask(svga->blitter, svga->curr.sample_mask, 0);
util_blitter_save_framebuffer(svga->blitter, &svga->curr.framebuffer);
util_blitter_save_fragment_sampler_states(svga->blitter,
svga->curr.num_samplers[PIPE_SHADER_FRAGMENT],
diff --git a/src/gallium/drivers/svga/svga_pipe_clear.c b/src/gallium/drivers/svga/svga_pipe_clear.c
index 82b102081e5..01f513289dd 100644
--- a/src/gallium/drivers/svga/svga_pipe_clear.c
+++ b/src/gallium/drivers/svga/svga_pipe_clear.c
@@ -57,7 +57,7 @@ begin_blit(struct svga_context *svga)
util_blitter_save_depth_stencil_alpha(svga->blitter,
(void*)svga->curr.depth);
util_blitter_save_stencil_ref(svga->blitter, &svga->curr.stencil_ref);
- util_blitter_save_sample_mask(svga->blitter, svga->curr.sample_mask);
+ util_blitter_save_sample_mask(svga->blitter, svga->curr.sample_mask, 0);
}
diff --git a/src/gallium/drivers/swr/swr_context.cpp b/src/gallium/drivers/swr/swr_context.cpp
index 2a07a3767b9..08637dba1d5 100644
--- a/src/gallium/drivers/swr/swr_context.cpp
+++ b/src/gallium/drivers/swr/swr_context.cpp
@@ -334,7 +334,7 @@ swr_blit(struct pipe_context *pipe, const struct pipe_blit_info *blit_info)
util_blitter_save_depth_stencil_alpha(ctx->blitter,
(void *)ctx->depth_stencil);
util_blitter_save_stencil_ref(ctx->blitter, &ctx->stencil_ref);
- util_blitter_save_sample_mask(ctx->blitter, ctx->sample_mask);
+ util_blitter_save_sample_mask(ctx->blitter, ctx->sample_mask, 0);
util_blitter_save_framebuffer(ctx->blitter, &ctx->framebuffer);
util_blitter_save_fragment_sampler_states(
ctx->blitter,
diff --git a/src/gallium/drivers/v3d/v3d_blit.c b/src/gallium/drivers/v3d/v3d_blit.c
index 793f2d2e535..967d0d6d1d4 100644
--- a/src/gallium/drivers/v3d/v3d_blit.c
+++ b/src/gallium/drivers/v3d/v3d_blit.c
@@ -46,7 +46,7 @@ v3d_blitter_save(struct v3d_context *v3d)
util_blitter_save_blend(v3d->blitter, v3d->blend);
util_blitter_save_depth_stencil_alpha(v3d->blitter, v3d->zsa);
util_blitter_save_stencil_ref(v3d->blitter, &v3d->stencil_ref);
- util_blitter_save_sample_mask(v3d->blitter, v3d->sample_mask);
+ util_blitter_save_sample_mask(v3d->blitter, v3d->sample_mask, 0);
util_blitter_save_framebuffer(v3d->blitter, &v3d->framebuffer);
util_blitter_save_fragment_sampler_states(v3d->blitter,
v3d->tex[PIPE_SHADER_FRAGMENT].num_samplers,
diff --git a/src/gallium/drivers/vc4/vc4_blit.c b/src/gallium/drivers/vc4/vc4_blit.c
index bdfbbf62a9b..9f4ab89e57f 100644
--- a/src/gallium/drivers/vc4/vc4_blit.c
+++ b/src/gallium/drivers/vc4/vc4_blit.c
@@ -177,7 +177,7 @@ vc4_blitter_save(struct vc4_context *vc4)
util_blitter_save_blend(vc4->blitter, vc4->blend);
util_blitter_save_depth_stencil_alpha(vc4->blitter, vc4->zsa);
util_blitter_save_stencil_ref(vc4->blitter, &vc4->stencil_ref);
- util_blitter_save_sample_mask(vc4->blitter, vc4->sample_mask);
+ util_blitter_save_sample_mask(vc4->blitter, vc4->sample_mask, 0);
util_blitter_save_framebuffer(vc4->blitter, &vc4->framebuffer);
util_blitter_save_fragment_sampler_states(vc4->blitter,
vc4->fragtex.num_samplers,
diff --git a/src/gallium/drivers/zink/zink_blit.c b/src/gallium/drivers/zink/zink_blit.c
index 1dda73d9f9b..8055111afe0 100644
--- a/src/gallium/drivers/zink/zink_blit.c
+++ b/src/gallium/drivers/zink/zink_blit.c
@@ -329,7 +329,7 @@ zink_blit_begin(struct zink_context *ctx, enum zink_blit_flags flags)
util_blitter_save_blend(ctx->blitter, ctx->gfx_pipeline_state.blend_state);
util_blitter_save_depth_stencil_alpha(ctx->blitter, ctx->dsa_state);
util_blitter_save_stencil_ref(ctx->blitter, &ctx->stencil_ref);
- util_blitter_save_sample_mask(ctx->blitter, ctx->gfx_pipeline_state.sample_mask);
+ util_blitter_save_sample_mask(ctx->blitter, ctx->gfx_pipeline_state.sample_mask, 0);
util_blitter_save_scissor(ctx->blitter, ctx->vp_state.scissor_states);
/* also util_blitter_save_window_rectangles when we have that? */
More information about the mesa-commit
mailing list