Mesa (texture_rg): r300: add support for ARB_texture_rg and ARB_half_float_pixel extension

Maciej Cencora osiris at kemper.freedesktop.org
Sun Aug 16 22:22:54 UTC 2009


Module: Mesa
Branch: texture_rg
Commit: de2af92edce11af5626cbb222721932b0e6784f8
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=de2af92edce11af5626cbb222721932b0e6784f8

Author: Maciej Cencora <m.cencora at gmail.com>
Date:   Sat May 16 18:28:17 2009 +0200

r300: add support for ARB_texture_rg and ARB_half_float_pixel extension

---

 src/mesa/drivers/dri/r300/r300_context.c     |    2 ++
 src/mesa/drivers/dri/r300/r300_texstate.c    |    6 ++++++
 src/mesa/drivers/dri/radeon/radeon_texture.c |   14 ++++++++++++++
 3 files changed, 22 insertions(+), 0 deletions(-)

diff --git a/src/mesa/drivers/dri/r300/r300_context.c b/src/mesa/drivers/dri/r300/r300_context.c
index 91fa77a..81890a6 100644
--- a/src/mesa/drivers/dri/r300/r300_context.c
+++ b/src/mesa/drivers/dri/r300/r300_context.c
@@ -97,6 +97,7 @@ const struct dri_extension card_extensions[] = {
   {"GL_ARB_depth_texture",		NULL},
   {"GL_ARB_fragment_program",		NULL},
   {"GL_ARB_occlusion_query",		GL_ARB_occlusion_query_functions},
+  {"GL_ARB_half_float_pixel",		NULL},
   {"GL_ARB_multitexture",		NULL},
   {"GL_ARB_point_parameters",		GL_ARB_point_parameters_functions},
   {"GL_ARB_shadow",			NULL},
@@ -108,6 +109,7 @@ const struct dri_extension card_extensions[] = {
   {"GL_ARB_texture_env_crossbar",	NULL},
   {"GL_ARB_texture_env_dot3",		NULL},
   {"GL_ARB_texture_mirrored_repeat",	NULL},
+  {"GL_ARB_texture_rg",		NULL},
   {"GL_ARB_vertex_program",		GL_ARB_vertex_program_functions},
   {"GL_EXT_blend_equation_separate",	GL_EXT_blend_equation_separate_functions},
   {"GL_EXT_blend_func_separate",	GL_EXT_blend_func_separate_functions},
diff --git a/src/mesa/drivers/dri/r300/r300_texstate.c b/src/mesa/drivers/dri/r300/r300_texstate.c
index 6f489ac..46625ca 100644
--- a/src/mesa/drivers/dri/r300/r300_texstate.c
+++ b/src/mesa/drivers/dri/r300/r300_texstate.c
@@ -107,6 +107,12 @@ static const struct tx_table {
 	_ASSIGN(RGBA_FLOAT16, R300_EASY_TX_FORMAT(Z, Y, X, W, FL_R16G16B16A16)),
 	_ASSIGN(RGB_FLOAT32, 0xffffffff),
 	_ASSIGN(RGB_FLOAT16, 0xffffffff),
+	_ASSIGN(R8, R300_EASY_TX_FORMAT(ZERO, ZERO, X, ONE, X8)),
+	_ASSIGN(RG88, R300_EASY_TX_FORMAT(ZERO, Y, X, ONE, Y8X8)),
+	_ASSIGN(RED_FLOAT16, R300_EASY_TX_FORMAT(ZERO, ZERO, X, ONE, FL_I16)),
+	_ASSIGN(RG_FLOAT16, R300_EASY_TX_FORMAT(ZERO, X, Y, ONE, FL_I16A16)),
+	_ASSIGN(RED_FLOAT32, R300_EASY_TX_FORMAT(ZERO, ZERO, X, ONE, FL_I32)),
+	_ASSIGN(RG_FLOAT32, R300_EASY_TX_FORMAT(ZERO, X, Y, ONE, FL_I32A32)),
 	_ASSIGN(ALPHA_FLOAT32, R300_EASY_TX_FORMAT(ZERO, ZERO, ZERO, X, FL_I32)),
 	_ASSIGN(ALPHA_FLOAT16, R300_EASY_TX_FORMAT(ZERO, ZERO, ZERO, X, FL_I16)),
 	_ASSIGN(LUMINANCE_FLOAT32, R300_EASY_TX_FORMAT(X, X, X, ONE, FL_I32)),
diff --git a/src/mesa/drivers/dri/radeon/radeon_texture.c b/src/mesa/drivers/dri/radeon/radeon_texture.c
index fa16f44..5965be9 100644
--- a/src/mesa/drivers/dri/radeon/radeon_texture.c
+++ b/src/mesa/drivers/dri/radeon/radeon_texture.c
@@ -497,6 +497,20 @@ const struct gl_texture_format *radeonChooseTextureFormat(GLcontext * ctx,
 	case GL_COMPRESSED_SLUMINANCE_ALPHA:
 		return &_mesa_texformat_sla8;
 
+	/* ARB_texture_rg */
+	case GL_R8:
+		return &_mesa_texformat_r8;
+	case GL_RG8:
+		return &_mesa_texformat_rg88;
+	case GL_R16F:
+		return &_mesa_texformat_red_float16;
+	case GL_R32F:
+		return &_mesa_texformat_red_float32;
+	case GL_RG16F:
+		return &_mesa_texformat_rg_float16;
+	case GL_RG32F:
+		return &_mesa_texformat_rg_float32;
+
 	default:
 		_mesa_problem(ctx,
 			      "unexpected internalFormat 0x%x in %s",




More information about the mesa-commit mailing list