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