diff options
| author | Maciej Cencora <m.cencora@gmail.com> | 2009-06-12 19:08:44 +0200 | 
|---|---|---|
| committer | Maciej Cencora <m.cencora@gmail.com> | 2009-06-12 19:08:44 +0200 | 
| commit | 41091087396f935d4acf70b018ba54889fcf55a1 (patch) | |
| tree | 139b2c1892f1e8fff6d35bb35625df1f610c7647 /src/mesa | |
| parent | d0b0df380ac6a9b421dc63531a180b3fd3017621 (diff) | |
r300: add support for EXT_texture_sRGB
Tested with glean/texture_srgb and wine/d3d9 tests on RV535
Diffstat (limited to 'src/mesa')
| -rw-r--r-- | src/mesa/drivers/dri/r300/r300_context.c | 1 | ||||
| -rw-r--r-- | src/mesa/drivers/dri/r300/r300_reg.h | 2 | ||||
| -rw-r--r-- | src/mesa/drivers/dri/r300/r300_texstate.c | 4 | ||||
| -rw-r--r-- | src/mesa/drivers/dri/radeon/radeon_texture.c | 20 | 
4 files changed, 27 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/r300/r300_context.c b/src/mesa/drivers/dri/r300/r300_context.c index 394521a051..76881e4928 100644 --- a/src/mesa/drivers/dri/r300/r300_context.c +++ b/src/mesa/drivers/dri/r300/r300_context.c @@ -124,6 +124,7 @@ const struct dri_extension card_extensions[] = {    {"GL_EXT_texture_lod_bias",		NULL},    {"GL_EXT_texture_mirror_clamp",	NULL},    {"GL_EXT_texture_rectangle",		NULL}, +  {"GL_EXT_texture_sRGB",		NULL},    {"GL_EXT_vertex_array_bgra",		NULL},    {"GL_ATI_separate_stencil",		GL_ATI_separate_stencil_functions},    {"GL_ATI_texture_env_combine3",	NULL}, diff --git a/src/mesa/drivers/dri/r300/r300_reg.h b/src/mesa/drivers/dri/r300/r300_reg.h index c22616b95f..357c600af9 100644 --- a/src/mesa/drivers/dri/r300/r300_reg.h +++ b/src/mesa/drivers/dri/r300/r300_reg.h @@ -1467,6 +1467,8 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.  #	define R300_TX_FORMAT_3D		   (1 << 25)  #	define R300_TX_FORMAT_CUBIC_MAP		   (2 << 25) +#	define R300_TX_FORMAT_GAMMA			(1 << 21) +  	/* gap */  	/* Floating point formats */  	/* Note - hardware supports both 16 and 32 bit floating point */ diff --git a/src/mesa/drivers/dri/r300/r300_texstate.c b/src/mesa/drivers/dri/r300/r300_texstate.c index 6d6a90aa88..6e47321246 100644 --- a/src/mesa/drivers/dri/r300/r300_texstate.c +++ b/src/mesa/drivers/dri/r300/r300_texstate.c @@ -119,6 +119,10 @@ static const struct tx_table {  	_ASSIGN(Z24_S8, R300_EASY_TX_FORMAT(X, X, X, X, X24_Y8)),  	_ASSIGN(S8_Z24, R300_EASY_TX_FORMAT(Y, Y, Y, Y, X24_Y8)),  	_ASSIGN(Z32, R300_EASY_TX_FORMAT(X, X, X, X, X32)), +	/* EXT_texture_sRGB */ +	_ASSIGN(SRGBA8, R300_EASY_TX_FORMAT(Y, Z, W, X, W8Z8Y8X8) | R300_TX_FORMAT_GAMMA), +	_ASSIGN(SLA8, R300_EASY_TX_FORMAT(X, X, X, Y, Y8X8) | R300_TX_FORMAT_GAMMA), +	_ASSIGN(SL8, R300_EASY_TX_FORMAT(X, X, X, ONE, X8) | R300_TX_FORMAT_GAMMA),  	/* *INDENT-ON* */  }; diff --git a/src/mesa/drivers/dri/radeon/radeon_texture.c b/src/mesa/drivers/dri/radeon/radeon_texture.c index 0d87f152e9..3fc750c005 100644 --- a/src/mesa/drivers/dri/radeon/radeon_texture.c +++ b/src/mesa/drivers/dri/radeon/radeon_texture.c @@ -477,6 +477,26 @@ const struct gl_texture_format *radeonChooseTextureFormat(GLcontext * ctx,  	case GL_DEPTH_STENCIL_EXT:  	case GL_DEPTH24_STENCIL8_EXT:  		return &_mesa_texformat_s8_z24; + +	/* EXT_texture_sRGB */ +	case GL_SRGB: +	case GL_SRGB8: +	case GL_SRGB_ALPHA: +	case GL_SRGB8_ALPHA8: +	case GL_COMPRESSED_SRGB: +	case GL_COMPRESSED_SRGB_ALPHA: +		return &_mesa_texformat_srgba8; + +	case GL_SLUMINANCE: +	case GL_SLUMINANCE8: +	case GL_COMPRESSED_SLUMINANCE: +		return &_mesa_texformat_sl8; + +	case GL_SLUMINANCE_ALPHA: +	case GL_SLUMINANCE8_ALPHA8: +	case GL_COMPRESSED_SLUMINANCE_ALPHA: +		return &_mesa_texformat_sla8; +  	default:  		_mesa_problem(ctx,  			      "unexpected internalFormat 0x%x in %s",  | 
