r200: add additional blit formats
authorAlex Deucher <alexdeucher@gmail.com>
Wed, 10 Mar 2010 09:31:56 +0000 (04:31 -0500)
committerAlex Deucher <alexdeucher@gmail.com>
Wed, 10 Mar 2010 16:58:07 +0000 (11:58 -0500)
src/mesa/drivers/dri/r200/r200_blit.c

index 307576009342a1c33454244c6812b0c506c460cf..55e8d32512c536524540f4dd80c6c1ec75ba3154 100644 (file)
@@ -48,6 +48,8 @@ unsigned r200_check_blit(gl_format mesa_format)
     case MESA_FORMAT_ARGB4444:
     case MESA_FORMAT_ARGB1555:
     case MESA_FORMAT_A8:
+    case MESA_FORMAT_L8:
+    case MESA_FORMAT_I8:
            break;
     default:
            return 0;
@@ -105,6 +107,12 @@ static void inline emit_tx_setup(struct r200_context *r200,
     case MESA_FORMAT_ARGB8888:
            txformat |= R200_TXFORMAT_ARGB8888 | R200_TXFORMAT_ALPHA_IN_MAP;
            break;
+    case MESA_FORMAT_RGBA8888:
+           txformat |= R200_TXFORMAT_RGBA8888 | R200_TXFORMAT_ALPHA_IN_MAP;
+           break;
+    case MESA_FORMAT_RGBA8888_REV:
+           txformat |= R200_TXFORMAT_ABGR8888 | R200_TXFORMAT_ALPHA_IN_MAP;
+           break;
     case MESA_FORMAT_XRGB8888:
            txformat |= R200_TXFORMAT_ARGB8888;
            break;
@@ -118,8 +126,15 @@ static void inline emit_tx_setup(struct r200_context *r200,
            txformat |= R200_TXFORMAT_ARGB1555 | R200_TXFORMAT_ALPHA_IN_MAP;
            break;
     case MESA_FORMAT_A8:
+    case MESA_FORMAT_I8:
            txformat |= R200_TXFORMAT_I8 | R200_TXFORMAT_ALPHA_IN_MAP;
            break;
+    case MESA_FORMAT_L8:
+           txformat |= R200_TXFORMAT_I8;
+           break;
+    case MESA_FORMAT_AL88:
+           txformat |= R200_TXFORMAT_AI88 | R200_TXFORMAT_ALPHA_IN_MAP;
+           break;
     default:
            break;
     }
@@ -182,6 +197,8 @@ static inline void emit_cb_setup(struct r200_context *r200,
            dst_format = RADEON_COLOR_FORMAT_ARGB1555;
            break;
     case MESA_FORMAT_A8:
+    case MESA_FORMAT_L8:
+    case MESA_FORMAT_I8:
            dst_format = RADEON_COLOR_FORMAT_RGB8;
            break;
     default: