---
 src/gallium/drivers/r600/r600_texture.c |   16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/src/gallium/drivers/r600/r600_texture.c 
b/src/gallium/drivers/r600/r600_texture.c
index ea017d3..b1dbf07 100644
--- a/src/gallium/drivers/r600/r600_texture.c
+++ b/src/gallium/drivers/r600/r600_texture.c
@@ -494,10 +494,18 @@ struct pipe_resource *r600_texture_create(struct 
pipe_screen *screen,
 {
        struct r600_screen *rscreen = (struct r600_screen*)screen;
        struct radeon_surface surface;
-       unsigned array_mode = 0;
+       const struct util_format_description *desc = 
util_format_description(templ->format);
+       unsigned array_mode;
        int r;
 
-       if (!(templ->flags & R600_RESOURCE_FLAG_TRANSFER)) {
+       /* Default tiling mode for staging textures. */
+       array_mode = V_038000_ARRAY_LINEAR_ALIGNED;
+
+       /* Tiling doesn't work with the 422 (SUBSAMPLED) formats. That's not an 
issue,
+        * because 422 formats are used for videos, which prefer linear buffers
+        * for fast uploads anyway. */
+       if (!(templ->flags & R600_RESOURCE_FLAG_TRANSFER) &&
+           desc->layout != UTIL_FORMAT_LAYOUT_SUBSAMPLED) {
                if (!(templ->bind & PIPE_BIND_SCANOUT) &&
                    templ->usage != PIPE_USAGE_STAGING &&
                    templ->usage != PIPE_USAGE_STREAM) {
@@ -507,10 +515,6 @@ struct pipe_resource *r600_texture_create(struct 
pipe_screen *screen,
                }
        }
 
-       /* XXX tiling is broken for the 422 formats */
-       if (util_format_description(templ->format)->layout == 
UTIL_FORMAT_LAYOUT_SUBSAMPLED)
-               array_mode = V_038000_ARRAY_LINEAR_ALIGNED;
-
        r = r600_init_surface(rscreen, &surface, templ, array_mode,
                              templ->flags & R600_RESOURCE_FLAG_FLUSHED_DEPTH);
        if (r) {
-- 
1.7.9.5

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

Reply via email to