From: Marek Olšák <marek.ol...@amd.com>

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105738
---
 src/amd/common/ac_surface.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/src/amd/common/ac_surface.c b/src/amd/common/ac_surface.c
index 12dfc0cb1f2..81882576baf 100644
--- a/src/amd/common/ac_surface.c
+++ b/src/amd/common/ac_surface.c
@@ -1150,32 +1150,39 @@ static int gfx9_compute_surface(ADDR_HANDLE addrlib,
                        break;
                case 16:
                        AddrSurfInfoIn.format = ADDR_FMT_BC3;
                        break;
                default:
                        assert(0);
                }
        } else {
                switch (surf->bpe) {
                case 1:
+                       assert(!(surf->flags & RADEON_SURF_ZBUFFER));
                        AddrSurfInfoIn.format = ADDR_FMT_8;
                        break;
                case 2:
+                       assert(surf->flags & RADEON_SURF_ZBUFFER ||
+                              !(surf->flags & RADEON_SURF_SBUFFER));
                        AddrSurfInfoIn.format = ADDR_FMT_16;
                        break;
                case 4:
+                       assert(surf->flags & RADEON_SURF_ZBUFFER ||
+                              !(surf->flags & RADEON_SURF_SBUFFER));
                        AddrSurfInfoIn.format = ADDR_FMT_32;
                        break;
                case 8:
+                       assert(!(surf->flags & RADEON_SURF_Z_OR_SBUFFER));
                        AddrSurfInfoIn.format = ADDR_FMT_32_32;
                        break;
                case 16:
+                       assert(!(surf->flags & RADEON_SURF_Z_OR_SBUFFER));
                        AddrSurfInfoIn.format = ADDR_FMT_32_32_32_32;
                        break;
                default:
                        assert(0);
                }
                AddrSurfInfoIn.bpp = surf->bpe * 8;
        }
 
        AddrSurfInfoIn.flags.color = !(surf->flags & RADEON_SURF_Z_OR_SBUFFER);
        AddrSurfInfoIn.flags.depth = (surf->flags & RADEON_SURF_ZBUFFER) != 0;
@@ -1251,20 +1258,21 @@ static int gfx9_compute_surface(ADDR_HANDLE addrlib,
        /* Calculate texture layout information. */
        r = gfx9_compute_miptree(addrlib, config, surf, compressed,
                                 &AddrSurfInfoIn);
        if (r)
                return r;
 
        /* Calculate texture layout information for stencil. */
        if (surf->flags & RADEON_SURF_SBUFFER) {
                AddrSurfInfoIn.flags.stencil = 1;
                AddrSurfInfoIn.bpp = 8;
+               AddrSurfInfoIn.format = ADDR_FMT_8;
 
                if (!AddrSurfInfoIn.flags.depth) {
                        r = gfx9_get_preferred_swizzle_mode(addrlib, 
&AddrSurfInfoIn, false,
                                                            
&AddrSurfInfoIn.swizzleMode);
                        if (r)
                                return r;
                } else
                        AddrSurfInfoIn.flags.depth = 0;
 
                r = gfx9_compute_miptree(addrlib, config, surf, compressed,
-- 
2.15.1

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to