r600_compute_buffer_alloc_vram uses pipe_buffer_create, which sets format to
PIPE_FORMAT_R8_UNORM
Fixes assertion failure since 7dd31b81fee7fe40bd09cf3fbc324fcc32782479
gallium/radeon: support PIPE_CAP_SURFACE_REINTERPRET_BLOCKS

while at it use rctx helper var where possible.

Signed-off-by: Jan Vesely <jan.ves...@rutgers.edu>
---
 src/gallium/drivers/r600/evergreen_compute.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/src/gallium/drivers/r600/evergreen_compute.c 
b/src/gallium/drivers/r600/evergreen_compute.c
index d6e4501..010a92e 100644
--- a/src/gallium/drivers/r600/evergreen_compute.c
+++ b/src/gallium/drivers/r600/evergreen_compute.c
@@ -117,23 +117,24 @@ static void evergreen_set_rat(
 
        rctx = pipe->ctx;
 
-       COMPUTE_DBG(rctx->screen, "bind rat: %i \n", id);
+       COMPUTE_DBG(rctx->screen, "bind rat: %i (format %u) \n", id,
+                   bo->b.b.format);
 
        /* Create the RAT surface */
        memset(&rat_templ, 0, sizeof(rat_templ));
-       rat_templ.format = PIPE_FORMAT_R32_UINT;
+       rat_templ.format = bo->b.b.format;
        rat_templ.u.tex.level = 0;
        rat_templ.u.tex.first_layer = 0;
        rat_templ.u.tex.last_layer = 0;
 
        /* Add the RAT the list of color buffers */
-       pipe->ctx->framebuffer.state.cbufs[id] = pipe->ctx->b.b.create_surface(
-               (struct pipe_context *)pipe->ctx,
+       pipe->ctx->framebuffer.state.cbufs[id] = rctx->b.b.create_surface(
+               (struct pipe_context *)rctx,
                (struct pipe_resource *)bo, &rat_templ);
 
        /* Update the number of color buffers */
        pipe->ctx->framebuffer.state.nr_cbufs =
-               MAX2(id + 1, pipe->ctx->framebuffer.state.nr_cbufs);
+               MAX2(id + 1, rctx->framebuffer.state.nr_cbufs);
 
        /* Update the cb_target_mask
         * XXX: I think this is a potential spot for bugs once we start doing
@@ -141,7 +142,7 @@ static void evergreen_set_rat(
         * of this driver. */
        pipe->ctx->compute_cb_target_mask |= (0xf << (id * 4));
 
-       surf = (struct r600_surface*)pipe->ctx->framebuffer.state.cbufs[id];
+       surf = (struct r600_surface*)rctx->framebuffer.state.cbufs[id];
        evergreen_init_color_surface_rat(rctx, surf);
 }
 
-- 
2.5.0

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

Reply via email to