[Mesa-dev] [PATCH 05/27] i965: Replace open coded with intel_miptree_get_image_offset()

Topi Pohjolainen topi.pohjolainen at gmail.com
Mon Jan 16 09:13:40 UTC 2017


Signed-off-by: Topi Pohjolainen <topi.pohjolainen at intel.com>
---
 src/mesa/drivers/dri/i965/intel_pixel_read.c | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/intel_pixel_read.c b/src/mesa/drivers/dri/i965/intel_pixel_read.c
index 2563897..ace94a0 100644
--- a/src/mesa/drivers/dri/i965/intel_pixel_read.c
+++ b/src/mesa/drivers/dri/i965/intel_pixel_read.c
@@ -47,6 +47,19 @@
 
 #define FILE_DEBUG_FLAG DEBUG_PIXEL
 
+static void
+adjust_image_offset(const struct intel_renderbuffer *irb,
+                    int *xoffset, int *yoffset)
+{
+   unsigned x;
+   unsigned y;
+   intel_miptree_get_image_offset(irb->mt, irb->mt_level, irb->mt_layer,
+                                  &x, &y);
+
+   *xoffset += x;
+   *yoffset += y;
+}
+
 /**
  * \brief A fast path for glReadPixels
  *
@@ -153,8 +166,7 @@ intel_readpixels_tiled_memcpy(struct gl_context * ctx,
       return false;
    }
 
-   xoffset += irb->mt->level[irb->mt_level].slice[irb->mt_layer].x_offset;
-   yoffset += irb->mt->level[irb->mt_level].slice[irb->mt_layer].y_offset;
+   adjust_image_offset(irb, &xoffset, &yoffset);
 
    dst_pitch = _mesa_image_row_stride(pack, width, format, type);
 
-- 
2.5.5



More information about the mesa-dev mailing list