summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/vc5
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2018-03-30 16:14:29 -0700
committerEric Anholt <[email protected]>2018-04-12 11:20:50 -0700
commit7553cbfc9d78f0a4f8816122ce6327bc3899c2b5 (patch)
tree1e4ef4154060976af5b2be6be5d145975576e990 /src/gallium/drivers/vc5
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.
Diffstat (limited to 'src/gallium/drivers/vc5')
-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 =