[Mesa-dev] [PATCH] i965: "Fix" aux offsets

Jason Ekstrand jason at jlekstrand.net
Wed Nov 16 19:25:32 UTC 2016


On Tue, Nov 15, 2016 at 5:35 PM, Ben Widawsky <benjamin.widawsky at intel.com>
wrote:

> From: Ben Widawsky <ben at bwidawsk.net>
>
> When 1 BO is used for aux data, it needs to point to the correct offset,
> which will not be the BOs offset but instead an offset from the BOs
> offset. Since today there are always multiple BOs for aux, this doesn't
> actually change anything.
>
> Cc: Jason Ekstrand <jason at jlekstrand.net>
> Signed-off-by: Ben Widawsky <ben at bwidawsk.net>
> ---
>  src/mesa/drivers/dri/i965/brw_wm_surface_state.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
> b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
> index 4c2d11d..0cf9181 100644
> --- a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
> +++ b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
> @@ -152,10 +152,11 @@ brw_emit_surface_state(struct brw_context *brw,
>        if (mt->mcs_buf) {
>           assert(mt->mcs_buf->offset == 0);
>           aux_bo = mt->mcs_buf->bo;
> -         aux_offset = mt->mcs_buf->bo->offset64;
> +         aux_offset = mt->mcs_buf->bo->offset64 + mt->mcs_buf->offset;
>        } else {
>           aux_bo = mt->hiz_buf->aux_base.bo;
> -         aux_offset = mt->hiz_buf->aux_base.bo->offset64;
> +         aux_offset = mt->hiz_buf->aux_base.bo->offset64 +
> +                      mt->hiz_buf->mt->offset;
>

Ugh... hiz is messed up... Sadly, hiz_buf->mt may not always exist so we
can't add it unconditionally here.  Yes, that's stupid.


>        }
>
>        /* We only really need a clear color if we also have an auxiliary
> --
> 2.10.2
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20161116/05fba516/attachment.html>


More information about the mesa-dev mailing list