On 10/27/2015 08:26 PM, Dave Airlie wrote:
From: Dave Airlie <airl...@redhat.com>
since 1ad305b612f389fb04c6d51847427d5ec72fae03
Brian Paul <bri...@vmware.com>
Date: Tue Jul 21 18:35:38 2015 -0600
mesa: plumb offset/size parameters through GetTexSubImage code
I found this testing virgl which exercises a bunch of these
in it's fallbacks.
Signed-off-by: Dave Airlie <airl...@redhat.com>
---
src/mesa/main/texgetimage.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/mesa/main/texgetimage.c b/src/mesa/main/texgetimage.c
index 682b727..b4321fb 100644
--- a/src/mesa/main/texgetimage.c
+++ b/src/mesa/main/texgetimage.c
@@ -91,9 +91,10 @@ get_tex_depth(struct gl_context *ctx, GLuint dimensions,
if (texImage->TexObject->Target == GL_TEXTURE_1D_ARRAY) {
depth = height;
height = 1;
- }
+ assert(zoffset + depth <= texImage->Height);
+ } else
+ assert(zoffset + depth <= texImage->Depth);
- assert(zoffset + depth <= texImage->Depth);
for (img = 0; img < depth; img++) {
GLubyte *srcMap;
GLint srcRowStride;
What exactly are the parameters to glGetTextureSubImage() that hits this?
zoffset should always be zero for TEXTURE_1D_ARRAY, so I think we should
be assigning zoffset = yoffset for the 1D array case, as we do in
get_tex_rgba_uncompressed().
Also, there's several other functions, like get_tex_depth_stencil(),
get_tex_stencil(), etc. that would seem to need similar y/z height/depth
translation for 1D_ARRAY. In fact, maybe this should all be done in
_mesa_GetTexSubImage_sw() before any of these functions are called.
Do you have time to look into that?
-Brian
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev