r300g: force swizzles for RGTC

still can't get signed to work
This commit is contained in:
Dave Airlie 2011-02-27 17:00:50 +10:00
parent 96bbc627f3
commit 0495425dc3

View file

@ -217,10 +217,15 @@ uint32_t r300_translate_texformat(enum pipe_format format,
case PIPE_FORMAT_RGTC1_SNORM:
result |= sign_bit[0];
case PIPE_FORMAT_RGTC1_UNORM:
result &= ~(0xfff << 9); /* mask off swizzle */
result |= R300_TX_FORMAT_Y << R300_TX_FORMAT_R_SHIFT;
return R500_TX_FORMAT_ATI1N | result;
case PIPE_FORMAT_RGTC2_SNORM:
result |= sign_bit[0] | sign_bit[1];
case PIPE_FORMAT_RGTC2_UNORM:
result &= ~(0xfff << 9); /* mask off swizzle */
result |= R300_TX_FORMAT_Y << R300_TX_FORMAT_R_SHIFT |
R300_TX_FORMAT_X << R300_TX_FORMAT_G_SHIFT;
return R400_TX_FORMAT_ATI2N | result;
default:
return ~0; /* Unsupported/unknown. */