[Mesa-dev] [PATCH v2 03/27] i965/miptree: Add tile_x/y to total_width/height

Jason Ekstrand jason at jlekstrand.net
Fri Jun 30 03:13:12 UTC 2017


This is what we do in intel_image_target_renderbuffer_storage and it
makes more sense than stomping them.  Because the image gets created as
a 2D image with one miplevel, they should already be equal to the
provided width/height.  Adding the tile offset makes some sense
depending on how you interpret the fields.

The only place these fields are used for in state setup is to set up the
image parameters we pass into shaders.  There may be issues here if you
try to use image_load_store on something pulled in from EGL but that's
probably broken already.  This just makes it consistently broken.

Reviewed-by: Chad Versace <chadversary at chromium.org>
---
 src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
index bdd0cd5..077e2ab 100644
--- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
+++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
@@ -1077,10 +1077,10 @@ intel_miptree_create_for_dri_image(struct brw_context *brw,
       return NULL;
 
    mt->target = target;
-   mt->total_width = image->width;
-   mt->total_height = image->height;
    mt->level[0].slice[0].x_offset = image->tile_x;
    mt->level[0].slice[0].y_offset = image->tile_y;
+   mt->total_width += image->tile_x;
+   mt->total_height += image->tile_y;
 
    /* From "OES_EGL_image" error reporting. We report GL_INVALID_OPERATION
     * for EGL images from non-tile aligned sufaces in gen4 hw and earlier which has
-- 
2.5.0.400.gff86faf



More information about the mesa-dev mailing list