From: Eric Anholt Date: Tue, 24 Apr 2018 21:56:23 +0000 (-0700) Subject: broadcom/vc5: Fix cpp of MSAA surfaces on 4.x. X-Git-Tag: upstream/19.0.0~5470 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9f3f4284c0397615bfe50ba4e50aaffe5dc64e84;p=platform%2Fupstream%2Fmesa.git broadcom/vc5: Fix cpp of MSAA surfaces on 4.x. The internal-type-bpp path is for surfaces that get stored in the raw TLB format. For 4.x, we're storing MSAA as just 2x width/height at the original format. --- diff --git a/src/gallium/drivers/vc5/vc5_resource.c b/src/gallium/drivers/vc5/vc5_resource.c index eb5fa4e..3c2ed27 100644 --- a/src/gallium/drivers/vc5/vc5_resource.c +++ b/src/gallium/drivers/vc5/vc5_resource.c @@ -566,9 +566,11 @@ vc5_resource_setup(struct pipe_screen *pscreen, prsc->screen = pscreen; if (prsc->nr_samples <= 1 || + screen->devinfo.ver >= 40 || util_format_is_depth_or_stencil(prsc->format)) { - rsc->cpp = util_format_get_blocksize(prsc->format) * - MAX2(prsc->nr_samples, 1); + rsc->cpp = util_format_get_blocksize(prsc->format); + if (screen->devinfo.ver < 40 && prsc->nr_samples > 1) + rsc->cpp *= prsc->nr_samples; } else { assert(vc5_rt_format_supported(&screen->devinfo, prsc->format)); uint32_t output_image_format = diff --git a/src/gallium/drivers/vc5/vc5_state.c b/src/gallium/drivers/vc5/vc5_state.c index 350bd6a..42ae641 100644 --- a/src/gallium/drivers/vc5/vc5_state.c +++ b/src/gallium/drivers/vc5/vc5_state.c @@ -752,7 +752,7 @@ vc5_create_sampler_view(struct pipe_context *pctx, struct pipe_resource *prsc, #endif tex.array_stride_64_byte_aligned = rsc->cube_map_stride / 64; - if (prsc->nr_samples > 1) { + if (prsc->nr_samples > 1 && V3D_VERSION < 40) { /* Using texture views to reinterpret formats on our * MSAA textures won't work, because we don't lay out * the bits in memory as it's expected -- for example,