Module: Mesa
Branch: master
Commit: 91232b7004d7a9fbf4f99bb9ec4e5eea8e1c6eef
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=91232b7004d7a9fbf4f99bb9ec4e5eea8e1c6eef

Author: Younes Manton <[email protected]>
Date:   Sat Oct 24 17:36:48 2009 -0400

nouveau: Support X8R8G8B8 textures on nv30, nv40 and RTs on nv10-nv40.

---

 src/gallium/drivers/nv04/nv04_surface_2d.c |    1 +
 src/gallium/drivers/nv10/nv10_state_emit.c |    3 +++
 src/gallium/drivers/nv20/nv20_state_emit.c |    3 +++
 src/gallium/drivers/nv30/nv30_fragtex.c    |    1 +
 src/gallium/drivers/nv30/nv30_state_fb.c   |    3 +++
 src/gallium/drivers/nv40/nv40_fragtex.c    |    1 +
 src/gallium/drivers/nv40/nv40_state_fb.c   |    3 +++
 7 files changed, 15 insertions(+), 0 deletions(-)

diff --git a/src/gallium/drivers/nv04/nv04_surface_2d.c 
b/src/gallium/drivers/nv04/nv04_surface_2d.c
index 8c7eb36..8be134b 100644
--- a/src/gallium/drivers/nv04/nv04_surface_2d.c
+++ b/src/gallium/drivers/nv04/nv04_surface_2d.c
@@ -42,6 +42,7 @@ nv04_rect_format(enum pipe_format format)
        case PIPE_FORMAT_A8L8_UNORM:
        case PIPE_FORMAT_Z16_UNORM:
                return NV04_GDI_RECTANGLE_TEXT_COLOR_FORMAT_A16R5G6B5;
+       case PIPE_FORMAT_X8R8G8B8_UNORM:
        case PIPE_FORMAT_A8R8G8B8_UNORM:
        case PIPE_FORMAT_Z24S8_UNORM:
        case PIPE_FORMAT_Z24X8_UNORM:
diff --git a/src/gallium/drivers/nv10/nv10_state_emit.c 
b/src/gallium/drivers/nv10/nv10_state_emit.c
index d8691ef..2577ab7 100644
--- a/src/gallium/drivers/nv10/nv10_state_emit.c
+++ b/src/gallium/drivers/nv10/nv10_state_emit.c
@@ -129,6 +129,9 @@ static void nv10_state_emit_framebuffer(struct 
nv10_context* nv10)
        rt_format = NV10TCL_RT_FORMAT_TYPE_LINEAR;
 
        switch (colour_format) {
+       case PIPE_FORMAT_X8R8G8B8_UNORM:
+               rt_format |= NV10TCL_RT_FORMAT_COLOR_X8R8G8B8;
+               break;
        case PIPE_FORMAT_A8R8G8B8_UNORM:
        case 0:
                rt_format |= NV10TCL_RT_FORMAT_COLOR_A8R8G8B8;
diff --git a/src/gallium/drivers/nv20/nv20_state_emit.c 
b/src/gallium/drivers/nv20/nv20_state_emit.c
index 4042f46..0122b1c 100644
--- a/src/gallium/drivers/nv20/nv20_state_emit.c
+++ b/src/gallium/drivers/nv20/nv20_state_emit.c
@@ -135,6 +135,9 @@ static void nv20_state_emit_framebuffer(struct 
nv20_context* nv20)
        rt_format = NV20TCL_RT_FORMAT_TYPE_LINEAR | 0x20;
 
        switch (colour_format) {
+       case PIPE_FORMAT_X8R8G8B8_UNORM:
+               rt_format |= NV20TCL_RT_FORMAT_COLOR_X8R8G8B8;
+               break;
        case PIPE_FORMAT_A8R8G8B8_UNORM:
        case 0:
                rt_format |= NV20TCL_RT_FORMAT_COLOR_A8R8G8B8;
diff --git a/src/gallium/drivers/nv30/nv30_fragtex.c 
b/src/gallium/drivers/nv30/nv30_fragtex.c
index 3dd636f..dca760c 100644
--- a/src/gallium/drivers/nv30/nv30_fragtex.c
+++ b/src/gallium/drivers/nv30/nv30_fragtex.c
@@ -21,6 +21,7 @@ struct nv30_texture_format {
 
 static struct nv30_texture_format
 nv30_texture_formats[] = {
+       _(X8R8G8B8_UNORM, A8R8G8B8,   S1,   S1,   S1,  ONE, X, Y, Z, W),
        _(A8R8G8B8_UNORM, A8R8G8B8,   S1,   S1,   S1,   S1, X, Y, Z, W),
        _(A1R5G5B5_UNORM, A1R5G5B5,   S1,   S1,   S1,   S1, X, Y, Z, W),
        _(A4R4G4B4_UNORM, A4R4G4B4,   S1,   S1,   S1,   S1, X, Y, Z, W),
diff --git a/src/gallium/drivers/nv30/nv30_state_fb.c 
b/src/gallium/drivers/nv30/nv30_state_fb.c
index 4d6a67e..6f6d174 100644
--- a/src/gallium/drivers/nv30/nv30_state_fb.c
+++ b/src/gallium/drivers/nv30/nv30_state_fb.c
@@ -66,6 +66,9 @@ nv30_state_framebuffer_validate(struct nv30_context *nv30)
        }
 
        switch (colour_format) {
+       case PIPE_FORMAT_X8R8G8B8_UNORM:
+               rt_format |= NV34TCL_RT_FORMAT_COLOR_X8R8G8B8;
+               break;
        case PIPE_FORMAT_A8R8G8B8_UNORM:
        case 0:
                rt_format |= NV34TCL_RT_FORMAT_COLOR_A8R8G8B8;
diff --git a/src/gallium/drivers/nv40/nv40_fragtex.c 
b/src/gallium/drivers/nv40/nv40_fragtex.c
index f6cdf31..e2ec575 100644
--- a/src/gallium/drivers/nv40/nv40_fragtex.c
+++ b/src/gallium/drivers/nv40/nv40_fragtex.c
@@ -23,6 +23,7 @@ struct nv40_texture_format {
 
 static struct nv40_texture_format
 nv40_texture_formats[] = {
+       _(X8R8G8B8_UNORM, A8R8G8B8,   S1,   S1,   S1,  ONE, X, Y, Z, W, 0, 0, 
0, 0),
        _(A8R8G8B8_UNORM, A8R8G8B8,   S1,   S1,   S1,   S1, X, Y, Z, W, 0, 0, 
0, 0),
        _(A1R5G5B5_UNORM, A1R5G5B5,   S1,   S1,   S1,   S1, X, Y, Z, W, 0, 0, 
0, 0),
        _(A4R4G4B4_UNORM, A4R4G4B4,   S1,   S1,   S1,   S1, X, Y, Z, W, 0, 0, 
0, 0),
diff --git a/src/gallium/drivers/nv40/nv40_state_fb.c 
b/src/gallium/drivers/nv40/nv40_state_fb.c
index c2f7391..1c7a7cd 100644
--- a/src/gallium/drivers/nv40/nv40_state_fb.c
+++ b/src/gallium/drivers/nv40/nv40_state_fb.c
@@ -57,6 +57,9 @@ nv40_state_framebuffer_validate(struct nv40_context *nv40)
                rt_format = NV40TCL_RT_FORMAT_TYPE_LINEAR;
 
        switch (colour_format) {
+       case PIPE_FORMAT_X8R8G8B8_UNORM:
+               rt_format |= NV40TCL_RT_FORMAT_COLOR_X8R8G8B8;
+               break;
        case PIPE_FORMAT_A8R8G8B8_UNORM:
        case 0:
                rt_format |= NV40TCL_RT_FORMAT_COLOR_A8R8G8B8;

_______________________________________________
mesa-commit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to