r300: half float support

Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
Dave Airlie 2010-01-23 07:38:06 +10:00
parent 96f2f0daea
commit d82b8038fd
3 changed files with 18 additions and 0 deletions

View file

@ -97,6 +97,7 @@ static const struct dri_extension card_extensions[] = {
/* *INDENT-OFF* */
{"GL_ARB_depth_texture", NULL},
{"GL_ARB_fragment_program", NULL},
{"GL_ARB_half_float_vertex", NULL},
{"GL_ARB_occlusion_query", GL_ARB_occlusion_query_functions},
{"GL_ARB_multitexture", NULL},
{"GL_ARB_point_parameters", GL_ARB_point_parameters_functions},

View file

@ -56,6 +56,8 @@ static int getTypeSize(GLenum type)
switch (type) {
case GL_DOUBLE:
return sizeof(GLdouble);
case GL_HALF_FLOAT:
return sizeof(GLhalfARB);
case GL_FLOAT:
return sizeof(GLfloat);
case GL_INT:
@ -385,6 +387,18 @@ static void r300TranslateAttrib(GLcontext *ctx, GLuint attr, int count, const st
r300_attr._signed = 0;
r300_attr.normalize = 0;
break;
case GL_HALF_FLOAT:
switch (input->Size) {
case 1:
case 2:
r300_attr.data_type = R300_DATA_TYPE_FLT16_2;
break;
case 3:
case 4:
r300_attr.data_type = R300_DATA_TYPE_FLT16_4;
break;
}
break;
case GL_SHORT:
r300_attr._signed = 1;
r300_attr.normalize = input->Normalized;

View file

@ -230,6 +230,9 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
# define R300_DATA_TYPE_SHORT_4 7
# define R300_DATA_TYPE_VECTOR_3_TTT 8
# define R300_DATA_TYPE_VECTOR_3_EET 9
# define R300_DATA_TYPE_FLT16_2 11
# define R300_DATA_TYPE_FLT16_4 12
# define R300_SKIP_DWORDS_SHIFT 4
# define R300_DST_VEC_LOC_SHIFT 8
# define R300_LAST_VEC (1 << 13)