nv50: add DXTn formats
This commit is contained in:
@@ -57,6 +57,10 @@ nv50_screen_is_format_supported(struct pipe_screen *pscreen,
|
||||
case PIPE_FORMAT_A8_UNORM:
|
||||
case PIPE_FORMAT_I8_UNORM:
|
||||
case PIPE_FORMAT_A8L8_UNORM:
|
||||
case PIPE_FORMAT_DXT1_RGB:
|
||||
case PIPE_FORMAT_DXT1_RGBA:
|
||||
case PIPE_FORMAT_DXT3_RGBA:
|
||||
case PIPE_FORMAT_DXT5_RGBA:
|
||||
return TRUE;
|
||||
default:
|
||||
break;
|
||||
@@ -96,7 +100,7 @@ nv50_screen_get_param(struct pipe_screen *pscreen, int param)
|
||||
case PIPE_CAP_GLSL:
|
||||
return 0;
|
||||
case PIPE_CAP_S3TC:
|
||||
return 0;
|
||||
return 1;
|
||||
case PIPE_CAP_ANISOTROPIC_FILTER:
|
||||
return 1;
|
||||
case PIPE_CAP_POINT_SPRITE:
|
||||
|
||||
@@ -85,6 +85,34 @@ nv50_tex_construct(struct nouveau_stateobj *so, struct nv50_miptree *mt)
|
||||
NV50TIC_0_0_MAPB_C0 | NV50TIC_0_0_TYPEB_UNORM |
|
||||
NV50TIC_0_0_FMT_8_8);
|
||||
break;
|
||||
case PIPE_FORMAT_DXT1_RGB:
|
||||
so_data(so, NV50TIC_0_0_MAPA_ONE | NV50TIC_0_0_TYPEA_UNORM |
|
||||
NV50TIC_0_0_MAPR_C0 | NV50TIC_0_0_TYPER_UNORM |
|
||||
NV50TIC_0_0_MAPG_C1 | NV50TIC_0_0_TYPEG_UNORM |
|
||||
NV50TIC_0_0_MAPB_C2 | NV50TIC_0_0_TYPEB_UNORM |
|
||||
NV50TIC_0_0_FMT_DXT1);
|
||||
break;
|
||||
case PIPE_FORMAT_DXT1_RGBA:
|
||||
so_data(so, NV50TIC_0_0_MAPA_C3 | NV50TIC_0_0_TYPEA_UNORM |
|
||||
NV50TIC_0_0_MAPR_C0 | NV50TIC_0_0_TYPER_UNORM |
|
||||
NV50TIC_0_0_MAPG_C1 | NV50TIC_0_0_TYPEG_UNORM |
|
||||
NV50TIC_0_0_MAPB_C2 | NV50TIC_0_0_TYPEB_UNORM |
|
||||
NV50TIC_0_0_FMT_DXT1);
|
||||
break;
|
||||
case PIPE_FORMAT_DXT3_RGBA:
|
||||
so_data(so, NV50TIC_0_0_MAPA_C3 | NV50TIC_0_0_TYPEA_UNORM |
|
||||
NV50TIC_0_0_MAPR_C0 | NV50TIC_0_0_TYPER_UNORM |
|
||||
NV50TIC_0_0_MAPG_C1 | NV50TIC_0_0_TYPEG_UNORM |
|
||||
NV50TIC_0_0_MAPB_C2 | NV50TIC_0_0_TYPEB_UNORM |
|
||||
NV50TIC_0_0_FMT_DXT3);
|
||||
break;
|
||||
case PIPE_FORMAT_DXT5_RGBA:
|
||||
so_data(so, NV50TIC_0_0_MAPA_C3 | NV50TIC_0_0_TYPEA_UNORM |
|
||||
NV50TIC_0_0_MAPR_C0 | NV50TIC_0_0_TYPER_UNORM |
|
||||
NV50TIC_0_0_MAPG_C1 | NV50TIC_0_0_TYPEG_UNORM |
|
||||
NV50TIC_0_0_MAPB_C2 | NV50TIC_0_0_TYPEB_UNORM |
|
||||
NV50TIC_0_0_FMT_DXT5);
|
||||
break;
|
||||
default:
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -50,6 +50,9 @@
|
||||
#define NV50TIC_0_0_FMT_5_6_5 0x00000015
|
||||
#define NV50TIC_0_0_FMT_8_8 0x00000018
|
||||
#define NV50TIC_0_0_FMT_8 0x0000001d
|
||||
#define NV50TIC_0_0_FMT_DXT1 0x00000024
|
||||
#define NV50TIC_0_0_FMT_DXT3 0x00000025
|
||||
#define NV50TIC_0_0_FMT_DXT5 0x00000026
|
||||
|
||||
#define NV50TIC_0_1_OFFSET_LOW_MASK 0xffffffff
|
||||
#define NV50TIC_0_1_OFFSET_LOW_SHIFT 0
|
||||
|
||||
Reference in New Issue
Block a user