freedreno: disable tiling for cubemaps
authorKhaled Emara <ekhaled1836@gmail.com>
Sun, 4 Aug 2019 15:51:24 +0000 (17:51 +0200)
committerRob Clark <robdclark@gmail.com>
Mon, 12 Aug 2019 22:30:54 +0000 (22:30 +0000)
Tiling doesn't work quite well with cubemaps.
Revert to linear textures, until it's fixed.

src/gallium/drivers/freedreno/a3xx/fd3_resource.c

index f6b52bd30a100bc1154349afbb41b1b5f6d18b09..5bde52c62be8d76a649a7bd752f4a05a11ef0516 100644 (file)
@@ -96,13 +96,16 @@ fd3_setup_slices(struct fd_resource *rsc)
 }
 
 static bool
-ok_format(enum pipe_format pfmt)
+ok_format(enum pipe_format pfmt, const struct pipe_resource * tmpl)
 {
        enum a3xx_color_fmt fmt = fd3_pipe2color(pfmt);
 
        if (fmt == ~0)
                return false;
 
+       if (tmpl->target == PIPE_TEXTURE_CUBE)
+               return false;
+
        switch (pfmt) {
        case PIPE_FORMAT_R8_UINT:
        case PIPE_FORMAT_R8_SINT:
@@ -118,7 +121,7 @@ ok_format(enum pipe_format pfmt)
 unsigned
 fd3_tile_mode(const struct pipe_resource *tmpl)
 {
-       if (ok_format(tmpl->format))
+       if (ok_format(tmpl->format, tmpl))
                return TILE_4X4;
        return LINEAR;
 }