On Thu, 2016-02-04 at 15:56 -0500, Jan Vesely wrote:
> r600_compute_buffer_alloc_vram uses pipe_buffer_create, which sets
> format to
> PIPE_FORMAT_R8_UNORM
RFC:
Looks like more is needed to fix this. the code expects R32 format.
Do we change the one used in pipe_buffer_create?
or just remove the assertion?
or is there a way to convert the format (other than plain format =)

Jan

> 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);
>  }
>  
-- 
Jan Vesely <jan.ves...@rutgers.edu>

Attachment: signature.asc
Description: This is a digitally signed message part

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

Reply via email to