gallium: handle the case of util_pack_z_stencil(format=PIPE_FORMAT_S8_UNORM)
authorBrian Paul <brianp@vmware.com>
Wed, 8 Apr 2009 14:23:01 +0000 (08:23 -0600)
committerBrian Paul <brianp@vmware.com>
Wed, 8 Apr 2009 14:23:45 +0000 (08:23 -0600)
Fixes failed assertion in glean fbo test.

src/gallium/auxiliary/util/u_pack_color.h

index 4ec7aee192b3cbd77c5c90e9f79c261a88d20972..eda883b3b92ebb9ecd25570f2a2a7f5b80795f1f 100644 (file)
@@ -434,6 +434,9 @@ util_pack_z(enum pipe_format format, double z)
       if (z == 1.0)
          return 0xffffff00;
       return ((uint) (z * 0xffffff)) << 8;
+   case PIPE_FORMAT_S8_UNORM:
+      /* this case can get it via util_pack_z_stencil() */
+      return 0;
    default:
       debug_print_format("gallium: unhandled format in util_pack_z()", format);
       assert(0);
@@ -443,6 +446,7 @@ util_pack_z(enum pipe_format format, double z)
  
 
 /**
+ * Pack Z and/or stencil values into a 32-bit value described by format.
  * Note: it's assumed that z is in [0,1] and s in [0,255]
  */
 static INLINE uint
@@ -456,6 +460,10 @@ util_pack_z_stencil(enum pipe_format format, double z, uint s)
       break;
    case PIPE_FORMAT_Z24S8_UNORM:
       packed |= s;
+      break;
+   case PIPE_FORMAT_S8_UNORM:
+      packed |= s;
+      break;
    default:
       break;
    }