diff options
author | Pierre-Eric Pelloux-Prayer <[email protected]> | 2019-07-22 16:14:20 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2019-07-23 14:42:20 -0400 |
commit | e9cf8c1d3010e9eada5a7921239ad7895f249b5c (patch) | |
tree | f1fc5d01e6d21a64650af3cd9e2bae5ae5dc36de /src/gallium/auxiliary/util | |
parent | d811446e6cf0a3e9ad0cc4f5898db33031698c32 (diff) |
u_blitter: add a msaa parameter to util_blitter_clear
Fixes: ea5b7de138b ("radeonsi: make gl_SampleMaskIn = 0x1 when MSAA is disabled")
Tested-by: Michel Dänzer <[email protected]>
Reviewed-by: Marek Olšák <[email protected]>
Diffstat (limited to 'src/gallium/auxiliary/util')
-rw-r--r-- | src/gallium/auxiliary/util/u_blitter.c | 14 | ||||
-rw-r--r-- | src/gallium/auxiliary/util/u_blitter.h | 3 |
2 files changed, 10 insertions, 7 deletions
diff --git a/src/gallium/auxiliary/util/u_blitter.c b/src/gallium/auxiliary/util/u_blitter.c index 396e23294a6..8d6909ec426 100644 --- a/src/gallium/auxiliary/util/u_blitter.c +++ b/src/gallium/auxiliary/util/u_blitter.c @@ -1451,7 +1451,8 @@ static void util_blitter_clear_custom(struct blitter_context *blitter, unsigned clear_buffers, const union pipe_color_union *color, double depth, unsigned stencil, - void *custom_blend, void *custom_dsa) + void *custom_blend, void *custom_dsa, + bool msaa) { struct blitter_context_priv *ctx = (struct blitter_context_priv*)blitter; struct pipe_context *pipe = ctx->base.pipe; @@ -1477,7 +1478,7 @@ static void util_blitter_clear_custom(struct blitter_context *blitter, if (num_layers > 1 && ctx->has_layered) { blitter_get_vs_func get_vs = get_vs_layered; - blitter_set_common_draw_rect_state(ctx, false, false); + blitter_set_common_draw_rect_state(ctx, false, msaa); blitter->draw_rectangle(blitter, ctx->velem_state, get_vs, 0, 0, width, height, (float) depth, num_layers, type, &attrib); @@ -1489,7 +1490,7 @@ static void util_blitter_clear_custom(struct blitter_context *blitter, else get_vs = get_vs_passthrough_pos; - blitter_set_common_draw_rect_state(ctx, false, false); + blitter_set_common_draw_rect_state(ctx, false, msaa); blitter->draw_rectangle(blitter, ctx->velem_state, get_vs, 0, 0, width, height, (float) depth, 1, type, &attrib); @@ -1505,11 +1506,12 @@ void util_blitter_clear(struct blitter_context *blitter, unsigned width, unsigned height, unsigned num_layers, unsigned clear_buffers, const union pipe_color_union *color, - double depth, unsigned stencil) + double depth, unsigned stencil, + bool msaa) { util_blitter_clear_custom(blitter, width, height, num_layers, clear_buffers, color, depth, stencil, - NULL, NULL); + NULL, NULL, msaa); } void util_blitter_custom_clear_depth(struct blitter_context *blitter, @@ -1518,7 +1520,7 @@ void util_blitter_custom_clear_depth(struct blitter_context *blitter, { static const union pipe_color_union color; util_blitter_clear_custom(blitter, width, height, 0, 0, &color, depth, 0, - NULL, custom_dsa); + NULL, custom_dsa, false); } void util_blitter_default_dst_texture(struct pipe_surface *dst_templ, diff --git a/src/gallium/auxiliary/util/u_blitter.h b/src/gallium/auxiliary/util/u_blitter.h index a7c931c01ca..a57e09f5fd1 100644 --- a/src/gallium/auxiliary/util/u_blitter.h +++ b/src/gallium/auxiliary/util/u_blitter.h @@ -204,7 +204,8 @@ void util_blitter_clear(struct blitter_context *blitter, unsigned width, unsigned height, unsigned num_layers, unsigned clear_buffers, const union pipe_color_union *color, - double depth, unsigned stencil); + double depth, unsigned stencil, + bool msaa); /** * Check if the blitter (with the help of the driver) can blit between |