r600g: Set the correct value of COLOR*_DIM for RATs
authorTom Stellard <thomas.stellard@amd.com>
Thu, 13 Sep 2012 17:15:57 +0000 (17:15 +0000)
committerTom Stellard <thomas.stellard@amd.com>
Wed, 19 Sep 2012 18:58:53 +0000 (14:58 -0400)
For buffers (which is what is being used for RATs), the
COLOR*_DIM.WIDTH_MASK field needs to be set to the low 16-bits of the
buffer size, and the COLOR*_DIM.HEIEGHT_MAX needs to be set to the
high bits.

Reviewed-by: Marek Olšák <maraeo@gmail.com>
src/gallium/drivers/r600/evergreen_state.c

index f244e8a5cadc275ece78ab25b2053c7c9552b21c..47bd826f8e9ceb8d5a59d38d401cc81c2fee1808 100644 (file)
@@ -1312,8 +1312,8 @@ void evergreen_init_color_surface(struct r600_context *rctx,
 
        if (rtex->is_rat) {
                color_info |= S_028C70_RAT(1);
-               color_dim = S_028C78_WIDTH_MAX(pipe_tex->width0)
-                               | S_028C78_HEIGHT_MAX(pipe_tex->height0);
+               color_dim = S_028C78_WIDTH_MAX(pipe_tex->width0 & 0xffff)
+                       | S_028C78_HEIGHT_MAX((pipe_tex->width0 >> 16) & 0xffff);
        }
 
        /* EXPORT_NORM is an optimzation that can be enabled for better