OSDN Git Service

r600g: fix ínitialization of non_disp_tiling flag
authorMarek Olšák <marek.olsak@amd.com>
Thu, 3 Oct 2013 16:16:08 +0000 (18:16 +0200)
committerMarek Olšák <marek.olsak@amd.com>
Thu, 3 Oct 2013 16:30:49 +0000 (18:30 +0200)
This fixes a regression caused by e64633e8c3a5498998a45ab721bf80edca101cf5

src/gallium/drivers/radeon/r600_texture.c

index e83ce83..ebb7090 100644 (file)
@@ -515,10 +515,6 @@ r600_texture_create_object(struct pipe_screen *screen,
        /* don't include stencil-only formats which we don't support for rendering */
        rtex->is_depth = util_format_has_depth(util_format_description(rtex->resource.b.b.format));
 
-       /* Tiled depth textures utilize the non-displayable tile order.
-        * Applies to R600-Cayman. */
-       rtex->non_disp_tiling = rtex->is_depth && rtex->surface.level[0].mode >= RADEON_SURF_MODE_1D;
-
        rtex->surface = *surface;
        r = r600_setup_surface(screen, rtex, pitch_in_bytes_override);
        if (r) {
@@ -526,6 +522,11 @@ r600_texture_create_object(struct pipe_screen *screen,
                return NULL;
        }
 
+       /* Tiled depth textures utilize the non-displayable tile order.
+        * This must be done after r600_setup_surface.
+        * Applies to R600-Cayman. */
+       rtex->non_disp_tiling = rtex->is_depth && rtex->surface.level[0].mode >= RADEON_SURF_MODE_1D;
+
        if (base->nr_samples > 1 && !rtex->is_depth && !buf) {
                r600_texture_allocate_fmask(rscreen, rtex);
                r600_texture_allocate_cmask(rscreen, rtex);