nv50: support PIPE_FORMAT_X8R8G8B8_UNORM
authorBen Skeggs <bskeggs@redhat.com>
Mon, 5 Oct 2009 03:41:33 +0000 (13:41 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Mon, 5 Oct 2009 05:36:06 +0000 (15:36 +1000)
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
src/gallium/drivers/nv50/nv50_screen.c
src/gallium/drivers/nv50/nv50_state_validate.c
src/gallium/drivers/nv50/nv50_tex.c

index 3b08e1b89fbb1ed0f43f3b0b97296fb5f1787aa7..dd7baecba7c3f42bfa0e4592e3f3ce5c4ea8781c 100644 (file)
@@ -35,6 +35,7 @@ nv50_screen_is_format_supported(struct pipe_screen *pscreen,
 {
        if (tex_usage & PIPE_TEXTURE_USAGE_RENDER_TARGET) {
                switch (format) {
+               case PIPE_FORMAT_X8R8G8B8_UNORM:
                case PIPE_FORMAT_A8R8G8B8_UNORM:
                case PIPE_FORMAT_R5G6B5_UNORM:
                        return TRUE;
@@ -55,6 +56,7 @@ nv50_screen_is_format_supported(struct pipe_screen *pscreen,
        } else {
                switch (format) {
                case PIPE_FORMAT_A8R8G8B8_UNORM:
+               case PIPE_FORMAT_X8R8G8B8_UNORM:
                case PIPE_FORMAT_A1R5G5B5_UNORM:
                case PIPE_FORMAT_A4R4G4B4_UNORM:
                case PIPE_FORMAT_R5G6B5_UNORM:
index 4ed76973c4b14a04b7300e016c8a9eece0346e2a..867b1ea872913f8ebd5bf00c9fefea72dc38d5bd 100644 (file)
@@ -57,6 +57,9 @@ nv50_state_validate_fb(struct nv50_context *nv50)
                case PIPE_FORMAT_A8R8G8B8_UNORM:
                        so_data(so, NV50TCL_RT_FORMAT_A8R8G8B8_UNORM);
                        break;
+               case PIPE_FORMAT_X8R8G8B8_UNORM:
+                       so_data(so, NV50TCL_RT_FORMAT_X8R8G8B8_UNORM);
+                       break;
                case PIPE_FORMAT_R5G6B5_UNORM:
                        so_data(so, NV50TCL_RT_FORMAT_R5G6B5_UNORM);
                        break;
index 033cb50c1152b41df1118e376a9e7e7b39c5fdea..21825a0411c6c7312150b9b07020e46e7fbb32ff 100644 (file)
@@ -37,6 +37,13 @@ nv50_tex_construct(struct nv50_context *nv50, struct nouveau_stateobj *so,
                            NV50TIC_0_0_MAPB_C0 | NV50TIC_0_0_TYPEB_UNORM |
                            NV50TIC_0_0_FMT_8_8_8_8);
                break;
+       case PIPE_FORMAT_X8R8G8B8_UNORM:
+               so_data(so, NV50TIC_0_0_MAPA_ONE | NV50TIC_0_0_TYPEA_UNORM |
+                           NV50TIC_0_0_MAPR_C2 | NV50TIC_0_0_TYPER_UNORM |
+                           NV50TIC_0_0_MAPG_C1 | NV50TIC_0_0_TYPEG_UNORM |
+                           NV50TIC_0_0_MAPB_C0 | NV50TIC_0_0_TYPEB_UNORM |
+                           NV50TIC_0_0_FMT_8_8_8_8);
+               break;
        case PIPE_FORMAT_A1R5G5B5_UNORM:
                so_data(so, NV50TIC_0_0_MAPA_C3 | NV50TIC_0_0_TYPEA_UNORM |
                            NV50TIC_0_0_MAPR_C2 | NV50TIC_0_0_TYPER_UNORM |