diff options
Diffstat (limited to 'src/mesa')
-rw-r--r-- | src/mesa/drivers/dri/i965/intel_screen.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/mesa/drivers/dri/i965/intel_screen.c b/src/mesa/drivers/dri/i965/intel_screen.c index 47354b82c42..44ea6a4562c 100644 --- a/src/mesa/drivers/dri/i965/intel_screen.c +++ b/src/mesa/drivers/dri/i965/intel_screen.c @@ -410,8 +410,15 @@ intel_setup_image_from_mipmap_tree(struct brw_context *brw, __DRIimage *image, intel_miptree_check_level_layer(mt, level, zoffset); - image->width = minify(mt->physical_width0, level - mt->first_level); - image->height = minify(mt->physical_height0, level - mt->first_level); + if (mt->surf.size > 0) { + image->width = minify(mt->surf.phys_level0_sa.width, + level - mt->first_level); + image->height = minify(mt->surf.phys_level0_sa.height, + level - mt->first_level); + } else { + image->width = minify(mt->physical_width0, level - mt->first_level); + image->height = minify(mt->physical_height0, level - mt->first_level); + } image->pitch = mt->surf.row_pitch; image->offset = intel_miptree_get_tile_offsets(mt, level, zoffset, |