use the requested internal texture format where possible
This commit is contained in:
@@ -59,27 +59,37 @@ brwChooseTextureFormat( GLcontext *ctx, GLint internalFormat,
|
||||
case GL_RGB10_A2:
|
||||
case GL_RGBA12:
|
||||
case GL_RGBA16:
|
||||
case GL_RGBA4:
|
||||
case GL_RGBA2:
|
||||
case GL_RGB5_A1:
|
||||
return &_mesa_texformat_argb8888;
|
||||
/* return &_mesa_texformat_rgba8888_rev; */
|
||||
|
||||
case 3:
|
||||
case GL_RGB:
|
||||
case GL_COMPRESSED_RGB:
|
||||
case GL_RGB8:
|
||||
case GL_RGB10:
|
||||
case GL_RGB12:
|
||||
case GL_RGB16:
|
||||
case GL_RGB5:
|
||||
case GL_RGB4:
|
||||
case GL_R3_G3_B2:
|
||||
/* Broadwater doesn't support RGB textures, so these must be
|
||||
/* Broadwater doesn't support RGB888 textures, so these must be
|
||||
* stored as ARGB.
|
||||
*/
|
||||
return &_mesa_texformat_argb8888;
|
||||
|
||||
case 3:
|
||||
case GL_COMPRESSED_RGB:
|
||||
case GL_RGB:
|
||||
if (format == GL_RGB &&
|
||||
type == GL_UNSIGNED_SHORT_5_6_5)
|
||||
return &_mesa_texformat_rgb565;
|
||||
else
|
||||
return &_mesa_texformat_argb8888;
|
||||
|
||||
|
||||
case GL_RGB5:
|
||||
case GL_RGB5_A1:
|
||||
return &_mesa_texformat_argb1555;
|
||||
|
||||
case GL_R3_G3_B2:
|
||||
case GL_RGBA2:
|
||||
case GL_RGBA4:
|
||||
case GL_RGB4:
|
||||
return &_mesa_texformat_argb4444;
|
||||
|
||||
case GL_ALPHA:
|
||||
case GL_ALPHA4:
|
||||
case GL_ALPHA8:
|
||||
|
||||
@@ -85,7 +85,8 @@ static GLuint translate_tex_format( GLuint mesa_format )
|
||||
return BRW_SURFACEFORMAT_L8A8_UNORM;
|
||||
|
||||
case MESA_FORMAT_RGB888:
|
||||
return BRW_SURFACEFORMAT_R8G8B8_UNORM;
|
||||
assert(0); /* not supported for sampling */
|
||||
return BRW_SURFACEFORMAT_R8G8B8_UNORM;
|
||||
|
||||
case MESA_FORMAT_ARGB8888:
|
||||
return BRW_SURFACEFORMAT_B8G8R8A8_UNORM;
|
||||
@@ -93,6 +94,15 @@ static GLuint translate_tex_format( GLuint mesa_format )
|
||||
case MESA_FORMAT_RGBA8888_REV:
|
||||
return BRW_SURFACEFORMAT_R8G8B8A8_UNORM;
|
||||
|
||||
case MESA_FORMAT_RGB565:
|
||||
return BRW_SURFACEFORMAT_B5G6R5_UNORM;
|
||||
|
||||
case MESA_FORMAT_ARGB1555:
|
||||
return BRW_SURFACEFORMAT_B5G5R5A1_UNORM;
|
||||
|
||||
case MESA_FORMAT_ARGB4444:
|
||||
return BRW_SURFACEFORMAT_B4G4R4A4_UNORM;
|
||||
|
||||
case MESA_FORMAT_YCBCR_REV:
|
||||
return BRW_SURFACEFORMAT_YCRCB_NORMAL;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user