Mesa (master): mesa: Try to fix CopyTex[Sub]Image of stencil textures.

Kenneth Graunke kwg at kemper.freedesktop.org
Wed Apr 27 04:35:51 UTC 2016


Module: Mesa
Branch: master
Commit: 12c43a355c6a8812319dea661480488ed198ed06
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=12c43a355c6a8812319dea661480488ed198ed06

Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Tue Apr 26 02:31:20 2016 -0700

mesa: Try to fix CopyTex[Sub]Image of stencil textures.

ES prohibits this, but GL appears to allow it.  We at least need this
much, or else we'll crash as there's no source to read from.

This fixed crashes in the ES tests before I realized I needed to
prohibit stencil instead.

Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
Reviewed-by: Brian Paul <brianp at vmware.com>
Reviewed-by: Chris Forbes <chrisf at ijw.co.nz>

---

 src/mesa/main/teximage.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c
index 76b6584..6b0744b 100644
--- a/src/mesa/main/teximage.c
+++ b/src/mesa/main/teximage.c
@@ -3434,8 +3434,9 @@ get_copy_tex_image_source(struct gl_context *ctx, mesa_format texFormat)
    if (_mesa_get_format_bits(texFormat, GL_DEPTH_BITS) > 0) {
       /* reading from depth/stencil buffer */
       return ctx->ReadBuffer->Attachment[BUFFER_DEPTH].Renderbuffer;
-   }
-   else {
+   } else if (_mesa_get_format_bits(texFormat, GL_STENCIL_BITS) > 0) {
+      return ctx->ReadBuffer->Attachment[BUFFER_STENCIL].Renderbuffer;
+   } else {
       /* copying from color buffer */
       return ctx->ReadBuffer->_ColorReadBuffer;
    }




More information about the mesa-commit mailing list