[Mesa-dev] [PATCH] meta/GetTexSubImage: Account for GL_PACK_SKIP_IMAGES on compressed textures

Eduardo Lima Mitev elima at igalia.com
Sun Nov 13 09:21:11 UTC 2016


This option is currently ignored when packing compressed textures.

Fixes CTS test (on gen8+):
* GL45-CTS.gtf32.GL3Tests.packed_pixels.packed_pixels_pixelstore
---
 src/mesa/drivers/common/meta.c | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c
index 5ab1e6c..7f162c6 100644
--- a/src/mesa/drivers/common/meta.c
+++ b/src/mesa/drivers/common/meta.c
@@ -3255,9 +3255,16 @@ _mesa_meta_GetTexSubImage(struct gl_context *ctx,
             packing.SkipRows = 0;
             dst = _mesa_image_address3d(&packing, pixels, width, height,
                                         format, type, slice, 0, 0);
-         }
-         else {
-            dst = pixels;
+         } else {
+            /* Account for PACK_SKIP_IMAGES option, if supported */
+            if (_mesa_is_desktop_gl(ctx) || _mesa_is_gles3(ctx)) {
+               GLint imageStride =
+                  _mesa_image_image_stride(&ctx->Pack,width,height,
+                                           format, type);
+               dst = (GLubyte *) pixels + imageStride * ctx->Pack.SkipImages;
+            } else {
+               dst = pixels;
+            }
          }
          result = decompress_texture_image(ctx, texImage, slice,
                                            xoffset, yoffset, width, height,
-- 
2.10.2



More information about the mesa-dev mailing list