On 07/18/2011 09:29 AM, Vadim Girlin wrote:
On Mon, 2011-07-18 at 08:34 -0600, Brian Paul wrote:
On Mon, Jul 18, 2011 at 8:11 AM, Vadim Girlin<vadimgir...@gmail.com>  wrote:
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=39286
---
  src/mesa/state_tracker/st_cb_texture.c |    8 ++++++++
  1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/src/mesa/state_tracker/st_cb_texture.c 
b/src/mesa/state_tracker/st_cb_texture.c
index 6907cfc..63cd142 100644
--- a/src/mesa/state_tracker/st_cb_texture.c
+++ b/src/mesa/state_tracker/st_cb_texture.c
@@ -1490,6 +1490,14 @@ st_copy_texsubimage(struct gl_context *ctx,
       destY = 0;
    }

+   if (srcX + width>  strb->Base.Width) {
+      width = strb->Base.Width - srcX;
+   }
+
+   if (srcY + height>  strb->Base.Height) {
+      height = strb->Base.Height - srcY;
+   }
+
    if (width<  0 || height<  0)
       return;

Clipping for glCopyTexSubImage() should be done by
_mesa_clip_copytexsubimage() (in image.c, called from teximage.c).
Maybe you could do a bit of debugging to see why that's not doing the
job.


Yes, I have some doubts too, especially now when I've seen the comment
before the st_copy_texsubimage definition, which explicitly states the
region should be clipped already. AFAICS _mesa_clip_copytexsubimage is
called only from copytexsubimage, but st_copy_texsubimage is called from
copyteximage (without sub) too, that's why no clipping occurs. I'm not
sure now where and how is better to fix it then, because my knowledge of
this code is still not very good. On the other hand, st_copy_texsubimage
already contains some clipping code, that's why I've added the checks in
this function. How should I fix this correctly?

Here's a patch to try.

Basically, it reimplements glCopyTexImage() like a sequence of glTexImage() and glCopyTexSubImage() calls (and does the clipping that was missing). I was planning on doing this as a follow-on to the map-texture-image-v4 work.

With this change, we can remove the ctx->Driver.CopyTexImage1D/2D() hooks and the corresponding code in all the drivers.

-Brian

Attachment: clip-copyteximage.patch
Description: application/pgp-keys

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to