mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-12 12:10:25 +01:00
mesa: Fall back to float16 if float32 isn't supported in ChooseTexFormat.
Until GL 3.0, there isn't any requirement on the actual sizes of channels chosen. By falling back to 16 here, we can correctly support ARB_texture_float on original i965 hardware, which can't correctly filter 32-bit floats.
This commit is contained in:
parent
babe26b3ef
commit
6216a5b495
1 changed files with 11 additions and 0 deletions
|
|
@ -326,6 +326,8 @@ _mesa_choose_tex_format( struct gl_context *ctx, GLint internalFormat,
|
|||
case GL_ALPHA32F_ARB:
|
||||
RETURN_IF_SUPPORTED(MESA_FORMAT_ALPHA_FLOAT32);
|
||||
RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_FLOAT32);
|
||||
RETURN_IF_SUPPORTED(MESA_FORMAT_ALPHA_FLOAT16);
|
||||
RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_FLOAT16);
|
||||
break;
|
||||
case GL_LUMINANCE16F_ARB:
|
||||
RETURN_IF_SUPPORTED(MESA_FORMAT_LUMINANCE_FLOAT16);
|
||||
|
|
@ -335,6 +337,8 @@ _mesa_choose_tex_format( struct gl_context *ctx, GLint internalFormat,
|
|||
case GL_LUMINANCE32F_ARB:
|
||||
RETURN_IF_SUPPORTED(MESA_FORMAT_LUMINANCE_FLOAT32);
|
||||
RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_FLOAT32);
|
||||
RETURN_IF_SUPPORTED(MESA_FORMAT_LUMINANCE_FLOAT16);
|
||||
RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_FLOAT16);
|
||||
break;
|
||||
case GL_LUMINANCE_ALPHA16F_ARB:
|
||||
RETURN_IF_SUPPORTED(MESA_FORMAT_LUMINANCE_ALPHA_FLOAT16);
|
||||
|
|
@ -344,6 +348,8 @@ _mesa_choose_tex_format( struct gl_context *ctx, GLint internalFormat,
|
|||
case GL_LUMINANCE_ALPHA32F_ARB:
|
||||
RETURN_IF_SUPPORTED(MESA_FORMAT_LUMINANCE_ALPHA_FLOAT32);
|
||||
RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_FLOAT32);
|
||||
RETURN_IF_SUPPORTED(MESA_FORMAT_LUMINANCE_ALPHA_FLOAT16);
|
||||
RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_FLOAT16);
|
||||
break;
|
||||
case GL_INTENSITY16F_ARB:
|
||||
RETURN_IF_SUPPORTED(MESA_FORMAT_INTENSITY_FLOAT16);
|
||||
|
|
@ -353,6 +359,8 @@ _mesa_choose_tex_format( struct gl_context *ctx, GLint internalFormat,
|
|||
case GL_INTENSITY32F_ARB:
|
||||
RETURN_IF_SUPPORTED(MESA_FORMAT_INTENSITY_FLOAT32);
|
||||
RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_FLOAT32);
|
||||
RETURN_IF_SUPPORTED(MESA_FORMAT_INTENSITY_FLOAT16);
|
||||
RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_FLOAT16);
|
||||
break;
|
||||
case GL_RGB16F_ARB:
|
||||
RETURN_IF_SUPPORTED(MESA_FORMAT_RGB_FLOAT16);
|
||||
|
|
@ -363,6 +371,8 @@ _mesa_choose_tex_format( struct gl_context *ctx, GLint internalFormat,
|
|||
case GL_RGB32F_ARB:
|
||||
RETURN_IF_SUPPORTED(MESA_FORMAT_RGB_FLOAT32);
|
||||
RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_FLOAT32);
|
||||
RETURN_IF_SUPPORTED(MESA_FORMAT_RGB_FLOAT16);
|
||||
RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_FLOAT16);
|
||||
break;
|
||||
case GL_RGBA16F_ARB:
|
||||
RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_FLOAT16);
|
||||
|
|
@ -370,6 +380,7 @@ _mesa_choose_tex_format( struct gl_context *ctx, GLint internalFormat,
|
|||
break;
|
||||
case GL_RGBA32F_ARB:
|
||||
RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_FLOAT32);
|
||||
RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_FLOAT16);
|
||||
break;
|
||||
default:
|
||||
; /* fallthrough */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue