dri/nouveau: Use the XRGB8888 hardware texture format.
This commit is contained in:
parent
59ddf8ca63
commit
51e8a66fa1
|
@ -108,40 +108,28 @@ nouveau_choose_tex_format(GLcontext *ctx, GLint internalFormat,
|
|||
switch (internalFormat) {
|
||||
case 4:
|
||||
case GL_RGBA:
|
||||
case GL_RGB10_A2:
|
||||
case GL_RGBA2:
|
||||
case GL_RGBA4:
|
||||
case GL_RGBA8:
|
||||
case GL_RGBA12:
|
||||
case GL_RGBA16:
|
||||
case GL_RGBA8:
|
||||
case GL_RGB10_A2:
|
||||
return MESA_FORMAT_ARGB8888;
|
||||
case GL_RGB5_A1:
|
||||
return MESA_FORMAT_ARGB1555;
|
||||
|
||||
case GL_RGB:
|
||||
case GL_RGB8:
|
||||
case GL_RGB10:
|
||||
case GL_RGB12:
|
||||
case GL_RGB16:
|
||||
return MESA_FORMAT_ARGB8888;
|
||||
case GL_RGB5_A1:
|
||||
return MESA_FORMAT_ARGB1555;
|
||||
|
||||
return MESA_FORMAT_XRGB8888;
|
||||
case 3:
|
||||
case GL_R3_G3_B2:
|
||||
case GL_RGB4:
|
||||
case GL_RGB5:
|
||||
return MESA_FORMAT_RGB565;
|
||||
|
||||
case GL_ALPHA:
|
||||
case GL_ALPHA4:
|
||||
case GL_ALPHA12:
|
||||
case GL_ALPHA16:
|
||||
case GL_ALPHA8:
|
||||
return MESA_FORMAT_A8;
|
||||
|
||||
case 1:
|
||||
case GL_LUMINANCE:
|
||||
case GL_LUMINANCE4:
|
||||
case GL_LUMINANCE12:
|
||||
case GL_LUMINANCE16:
|
||||
case GL_LUMINANCE8:
|
||||
return MESA_FORMAT_L8;
|
||||
|
||||
case 2:
|
||||
case GL_LUMINANCE_ALPHA:
|
||||
case GL_LUMINANCE4_ALPHA4:
|
||||
|
@ -152,6 +140,21 @@ nouveau_choose_tex_format(GLcontext *ctx, GLint internalFormat,
|
|||
case GL_LUMINANCE8_ALPHA8:
|
||||
return MESA_FORMAT_ARGB8888;
|
||||
|
||||
case 1:
|
||||
case GL_LUMINANCE:
|
||||
case GL_LUMINANCE4:
|
||||
case GL_LUMINANCE12:
|
||||
case GL_LUMINANCE16:
|
||||
case GL_LUMINANCE8:
|
||||
return MESA_FORMAT_L8;
|
||||
|
||||
case GL_ALPHA:
|
||||
case GL_ALPHA4:
|
||||
case GL_ALPHA12:
|
||||
case GL_ALPHA16:
|
||||
case GL_ALPHA8:
|
||||
return MESA_FORMAT_A8;
|
||||
|
||||
case GL_INTENSITY:
|
||||
case GL_INTENSITY4:
|
||||
case GL_INTENSITY12:
|
||||
|
|
|
@ -48,6 +48,8 @@ get_tex_format(struct gl_texture_image *ti)
|
|||
return NV04_TEXTURED_TRIANGLE_FORMAT_COLOR_R5G6B5;
|
||||
case MESA_FORMAT_ARGB8888:
|
||||
return NV04_TEXTURED_TRIANGLE_FORMAT_COLOR_A8R8G8B8;
|
||||
case MESA_FORMAT_XRGB8888:
|
||||
return NV04_TEXTURED_TRIANGLE_FORMAT_COLOR_X8R8G8B8;
|
||||
default:
|
||||
assert(0);
|
||||
}
|
||||
|
|
|
@ -179,6 +179,13 @@ get_input_arg(struct combiner_state *rc, int arg, int flags)
|
|||
return RC_IN_SOURCE(ZERO) |
|
||||
get_input_mapping(rc, operand,
|
||||
flags ^ INVERT);
|
||||
|
||||
} else if (format == MESA_FORMAT_XRGB8888) {
|
||||
/* Sometimes emulated using ARGB8888. */
|
||||
if (!is_color_operand(operand))
|
||||
return RC_IN_SOURCE(ZERO) |
|
||||
get_input_mapping(rc, operand,
|
||||
flags ^ INVERT);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -44,6 +44,9 @@ get_tex_format_pot(struct gl_texture_image *ti)
|
|||
case MESA_FORMAT_ARGB8888:
|
||||
return NV10TCL_TX_FORMAT_FORMAT_A8R8G8B8;
|
||||
|
||||
case MESA_FORMAT_XRGB8888:
|
||||
return NV10TCL_TX_FORMAT_FORMAT_X8R8G8B8;
|
||||
|
||||
case MESA_FORMAT_ARGB1555:
|
||||
return NV10TCL_TX_FORMAT_FORMAT_A1R5G5B5;
|
||||
|
||||
|
@ -79,6 +82,7 @@ get_tex_format_rect(struct gl_texture_image *ti)
|
|||
return NV10TCL_TX_FORMAT_FORMAT_R5G6B5_RECT;
|
||||
|
||||
case MESA_FORMAT_ARGB8888:
|
||||
case MESA_FORMAT_XRGB8888:
|
||||
return NV10TCL_TX_FORMAT_FORMAT_A8R8G8B8_RECT;
|
||||
|
||||
case MESA_FORMAT_A8:
|
||||
|
|
|
@ -45,6 +45,9 @@ get_tex_format_pot(struct gl_texture_image *ti)
|
|||
case MESA_FORMAT_ARGB4444:
|
||||
return NV20TCL_TX_FORMAT_FORMAT_A4R4G4B4;
|
||||
|
||||
case MESA_FORMAT_XRGB8888:
|
||||
return NV20TCL_TX_FORMAT_FORMAT_X8R8G8B8;
|
||||
|
||||
case MESA_FORMAT_RGB565:
|
||||
return NV20TCL_TX_FORMAT_FORMAT_R5G6B5;
|
||||
|
||||
|
@ -67,15 +70,21 @@ static uint32_t
|
|||
get_tex_format_rect(struct gl_texture_image *ti)
|
||||
{
|
||||
switch (ti->TexFormat) {
|
||||
case MESA_FORMAT_ARGB8888:
|
||||
return NV20TCL_TX_FORMAT_FORMAT_A8R8G8B8_RECT;
|
||||
|
||||
case MESA_FORMAT_ARGB1555:
|
||||
return NV20TCL_TX_FORMAT_FORMAT_A1R5G5B5_RECT;
|
||||
|
||||
case MESA_FORMAT_ARGB4444:
|
||||
return NV20TCL_TX_FORMAT_FORMAT_A4R4G4B4_RECT;
|
||||
|
||||
case MESA_FORMAT_XRGB8888:
|
||||
return NV20TCL_TX_FORMAT_FORMAT_R8G8B8_RECT;
|
||||
|
||||
case MESA_FORMAT_RGB565:
|
||||
return NV20TCL_TX_FORMAT_FORMAT_R5G6B5_RECT;
|
||||
|
||||
case MESA_FORMAT_ARGB8888:
|
||||
return NV20TCL_TX_FORMAT_FORMAT_A8R8G8B8_RECT;
|
||||
|
||||
case MESA_FORMAT_L8:
|
||||
return NV20TCL_TX_FORMAT_FORMAT_L8_RECT;
|
||||
|
||||
|
@ -83,9 +92,6 @@ get_tex_format_rect(struct gl_texture_image *ti)
|
|||
case MESA_FORMAT_I8:
|
||||
return NV20TCL_TX_FORMAT_FORMAT_A8_RECT;
|
||||
|
||||
case MESA_FORMAT_ARGB4444:
|
||||
return NV20TCL_TX_FORMAT_FORMAT_A4R4G4B4_RECT;
|
||||
|
||||
default:
|
||||
assert(0);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue