summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2018-03-30 16:14:29 -0700
committerEric Anholt <eric@anholt.net>2018-04-12 11:20:50 -0700
commit7553cbfc9d78f0a4f8816122ce6327bc3899c2b5 (patch)
tree1e4ef4154060976af5b2be6be5d145975576e990
parentfa328456e8f29bd4522deee5d6a8fa4a5ba74f05 (diff)
broadcom/vc5: Fix MSAA depth/stencil size setup.
The v3dX(get_internal_type_bpp_for_output_format)() call only handles color output formats (which overlap in enum numbers with depth output formats), so for depth we just need to take the normal cpp times the number of samples.
-rw-r--r--src/gallium/drivers/vc5/vc5_resource.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/gallium/drivers/vc5/vc5_resource.c b/src/gallium/drivers/vc5/vc5_resource.c
index 321a14b9046..c8c99cf4870 100644
--- a/src/gallium/drivers/vc5/vc5_resource.c
+++ b/src/gallium/drivers/vc5/vc5_resource.c
@@ -565,8 +565,10 @@ vc5_resource_setup(struct pipe_screen *pscreen,
pipe_reference_init(&prsc->reference, 1);
prsc->screen = pscreen;
- if (prsc->nr_samples <= 1) {
- rsc->cpp = util_format_get_blocksize(prsc->format);
+ if (prsc->nr_samples <= 1 ||
+ util_format_is_depth_or_stencil(prsc->format)) {
+ rsc->cpp = util_format_get_blocksize(prsc->format) *
+ MAX2(prsc->nr_samples, 1);
} else {
assert(vc5_rt_format_supported(&screen->devinfo, prsc->format));
uint32_t output_image_format =