mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 06:48:06 +02:00
nouveau: Support X8R8G8B8 textures on nv30, nv40 and RTs on nv10-nv40.
This commit is contained in:
parent
9831e1f76c
commit
91232b7004
7 changed files with 15 additions and 0 deletions
|
|
@ -42,6 +42,7 @@ nv04_rect_format(enum pipe_format format)
|
||||||
case PIPE_FORMAT_A8L8_UNORM:
|
case PIPE_FORMAT_A8L8_UNORM:
|
||||||
case PIPE_FORMAT_Z16_UNORM:
|
case PIPE_FORMAT_Z16_UNORM:
|
||||||
return NV04_GDI_RECTANGLE_TEXT_COLOR_FORMAT_A16R5G6B5;
|
return NV04_GDI_RECTANGLE_TEXT_COLOR_FORMAT_A16R5G6B5;
|
||||||
|
case PIPE_FORMAT_X8R8G8B8_UNORM:
|
||||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||||
case PIPE_FORMAT_Z24S8_UNORM:
|
case PIPE_FORMAT_Z24S8_UNORM:
|
||||||
case PIPE_FORMAT_Z24X8_UNORM:
|
case PIPE_FORMAT_Z24X8_UNORM:
|
||||||
|
|
|
||||||
|
|
@ -129,6 +129,9 @@ static void nv10_state_emit_framebuffer(struct nv10_context* nv10)
|
||||||
rt_format = NV10TCL_RT_FORMAT_TYPE_LINEAR;
|
rt_format = NV10TCL_RT_FORMAT_TYPE_LINEAR;
|
||||||
|
|
||||||
switch (colour_format) {
|
switch (colour_format) {
|
||||||
|
case PIPE_FORMAT_X8R8G8B8_UNORM:
|
||||||
|
rt_format |= NV10TCL_RT_FORMAT_COLOR_X8R8G8B8;
|
||||||
|
break;
|
||||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||||
case 0:
|
case 0:
|
||||||
rt_format |= NV10TCL_RT_FORMAT_COLOR_A8R8G8B8;
|
rt_format |= NV10TCL_RT_FORMAT_COLOR_A8R8G8B8;
|
||||||
|
|
|
||||||
|
|
@ -135,6 +135,9 @@ static void nv20_state_emit_framebuffer(struct nv20_context* nv20)
|
||||||
rt_format = NV20TCL_RT_FORMAT_TYPE_LINEAR | 0x20;
|
rt_format = NV20TCL_RT_FORMAT_TYPE_LINEAR | 0x20;
|
||||||
|
|
||||||
switch (colour_format) {
|
switch (colour_format) {
|
||||||
|
case PIPE_FORMAT_X8R8G8B8_UNORM:
|
||||||
|
rt_format |= NV20TCL_RT_FORMAT_COLOR_X8R8G8B8;
|
||||||
|
break;
|
||||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||||
case 0:
|
case 0:
|
||||||
rt_format |= NV20TCL_RT_FORMAT_COLOR_A8R8G8B8;
|
rt_format |= NV20TCL_RT_FORMAT_COLOR_A8R8G8B8;
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ struct nv30_texture_format {
|
||||||
|
|
||||||
static struct nv30_texture_format
|
static struct nv30_texture_format
|
||||||
nv30_texture_formats[] = {
|
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),
|
_(A8R8G8B8_UNORM, A8R8G8B8, S1, S1, S1, S1, X, Y, Z, W),
|
||||||
_(A1R5G5B5_UNORM, A1R5G5B5, 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),
|
_(A4R4G4B4_UNORM, A4R4G4B4, S1, S1, S1, S1, X, Y, Z, W),
|
||||||
|
|
|
||||||
|
|
@ -66,6 +66,9 @@ nv30_state_framebuffer_validate(struct nv30_context *nv30)
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (colour_format) {
|
switch (colour_format) {
|
||||||
|
case PIPE_FORMAT_X8R8G8B8_UNORM:
|
||||||
|
rt_format |= NV34TCL_RT_FORMAT_COLOR_X8R8G8B8;
|
||||||
|
break;
|
||||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||||
case 0:
|
case 0:
|
||||||
rt_format |= NV34TCL_RT_FORMAT_COLOR_A8R8G8B8;
|
rt_format |= NV34TCL_RT_FORMAT_COLOR_A8R8G8B8;
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,7 @@ struct nv40_texture_format {
|
||||||
|
|
||||||
static struct nv40_texture_format
|
static struct nv40_texture_format
|
||||||
nv40_texture_formats[] = {
|
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),
|
_(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),
|
_(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),
|
_(A4R4G4B4_UNORM, A4R4G4B4, S1, S1, S1, S1, X, Y, Z, W, 0, 0, 0, 0),
|
||||||
|
|
|
||||||
|
|
@ -57,6 +57,9 @@ nv40_state_framebuffer_validate(struct nv40_context *nv40)
|
||||||
rt_format = NV40TCL_RT_FORMAT_TYPE_LINEAR;
|
rt_format = NV40TCL_RT_FORMAT_TYPE_LINEAR;
|
||||||
|
|
||||||
switch (colour_format) {
|
switch (colour_format) {
|
||||||
|
case PIPE_FORMAT_X8R8G8B8_UNORM:
|
||||||
|
rt_format |= NV40TCL_RT_FORMAT_COLOR_X8R8G8B8;
|
||||||
|
break;
|
||||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||||
case 0:
|
case 0:
|
||||||
rt_format |= NV40TCL_RT_FORMAT_COLOR_A8R8G8B8;
|
rt_format |= NV40TCL_RT_FORMAT_COLOR_A8R8G8B8;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue