On 06/23/2011 08:39 PM, Marek Olšák wrote:
NOTE: This is a candidate for the 7.10 branch.
---
  src/mesa/main/texstore.c |    9 ++++++---
  1 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/mesa/main/texstore.c b/src/mesa/main/texstore.c
index 6da3e4e..5c925a3 100644
--- a/src/mesa/main/texstore.c
+++ b/src/mesa/main/texstore.c
@@ -3308,10 +3308,12 @@ _mesa_texstore_z24_s8(TEXSTORE_PARAMS)
     GLint img, row;

     ASSERT(dstFormat == MESA_FORMAT_Z24_S8);
-   ASSERT(srcFormat == GL_DEPTH_STENCIL_EXT || srcFormat == 
GL_DEPTH_COMPONENT);
+   ASSERT(srcFormat == GL_DEPTH_STENCIL_EXT ||
+          srcFormat == GL_DEPTH_COMPONENT ||
+          srcFormat == GL_STENCIL_INDEX);
     ASSERT(srcFormat != GL_DEPTH_STENCIL_EXT || srcType == 
GL_UNSIGNED_INT_24_8_EXT);

-   if (srcFormat != GL_DEPTH_COMPONENT&&  ctx->Pixel.DepthScale == 1.0f&&
+   if (srcFormat == GL_DEPTH_STENCIL&&  ctx->Pixel.DepthScale == 1.0f&&
         ctx->Pixel.DepthBias == 0.0f&&
         !srcPacking->SwapBytes) {
        /* simple path */
@@ -3322,7 +3324,8 @@ _mesa_texstore_z24_s8(TEXSTORE_PARAMS)
                       srcWidth, srcHeight, srcDepth, srcFormat, srcType,
                       srcAddr, srcPacking);
     }
-   else if (srcFormat == GL_DEPTH_COMPONENT) {
+   else if (srcFormat == GL_DEPTH_COMPONENT ||
+            srcFormat == GL_STENCIL_INDEX) {
        /* In case we only upload depth we need to preserve the stencil */
        for (img = 0; img<  srcDepth; img++) {
         GLuint *dstRow = (GLuint *) dstAddr

Hmmm, is a call like glTexImage(internalFormat=GL_DEPTH_STENCIL, format=GL_STENCIL_INDEX, type=GL_UNSIGNED_BYTE) even legal? I haven't checked the spec or Mesa.

When does this combo happen?

-Brian


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

Reply via email to