r300g: fix 24-bit depth texturing
authorMarek Olšák <maraeo@gmail.com>
Mon, 7 Jun 2010 02:10:49 +0000 (04:10 +0200)
committerMarek Olšák <maraeo@gmail.com>
Mon, 7 Jun 2010 02:26:16 +0000 (04:26 +0200)
This is a secret texture format, do not tell anybody.
And it looks like we can read stencil in the shader too.

src/gallium/drivers/r300/r300_reg.h
src/gallium/drivers/r300/r300_texture.c

index 675a9317f9cbf258aa49f27c3b5c244a4fe1fe16..c4fa19ace534b5e451957855898efb2aff89d34e 100644 (file)
@@ -1575,6 +1575,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
 #       define R500_TX_FORMAT_Y10X10                0x3
 #       define R500_TX_FORMAT_W10Z10Y10X10          0x4
 #       define R500_TX_FORMAT_ATI1N                 0x5
+#       define R500_TX_FORMAT_Y8X24                 0x6
 
 
 #       define R300_TX_FORMAT_SIGNED_W             (1 << 5)
index 4823755fb7a5eb013a4944ecb69885c33ca71d36..5a013e2a25a28a1ce79ce6c9d0895a495071d425 100644 (file)
@@ -139,7 +139,7 @@ uint32_t r300_translate_texformat(enum pipe_format format,
                     return R300_TX_FORMAT_X16;
                 case PIPE_FORMAT_X8Z24_UNORM:
                 case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
-                    return R300_TX_FORMAT_W24_FP;
+                    return R500_TX_FORMAT_Y8X24;
                 default:
                     return ~0; /* Unsupported. */
             }
@@ -339,6 +339,8 @@ uint32_t r500_tx_format_msb_bit(enum pipe_format format)
     switch (format) {
         case PIPE_FORMAT_RGTC1_UNORM:
         case PIPE_FORMAT_RGTC1_SNORM:
+        case PIPE_FORMAT_X8Z24_UNORM:
+        case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
             return R500_TXFORMAT_MSB;
         default:
             return 0;