i965: "Fix" aux offsets
authorBen Widawsky <ben@bwidawsk.net>
Wed, 16 Nov 2016 01:35:37 +0000 (17:35 -0800)
committerBen Widawsky <ben@bwidawsk.net>
Wed, 16 Nov 2016 19:24:33 +0000 (11:24 -0800)
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@jlekstrand.net>
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
src/mesa/drivers/dri/i965/brw_wm_surface_state.c

index 02ccc1a82eeaabf3a8b45633e56ad0f2488755c1..77198ae16445783f89c6616000e55f6ab78901f4 100644 (file)
@@ -145,10 +145,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;
       }
 
       /* We only really need a clear color if we also have an auxiliary