[Mesa-dev] [PATCH 11/15] mesa: Add fallback from RGB_FLOAT16 to RGBA_FLOAT16 before RGBA_FLOAT32.

Jose Fonseca jfonseca at vmware.com
Wed Nov 16 01:51:31 PST 2011


Neither DX9 or DX10 expose equivalent to GL_RGB16F_ARB:
- http://msdn.microsoft.com/en-us/library/bb172558.aspx (D3D9)
- http://msdn.microsoft.com/en-us/library/bb173059.aspx (D3D10)

So probably no hardware ever will support them.

Even for software rendering it is a very nasty format to support, because it is not 32bits aligned (48bits).

Unfortunately it doesn't look like we can simply not support GL_RGB16F_ARB though.

----- Original Message -----
> The i965 driver can't do RGB float16 at all.
> ---
>  src/mesa/main/texformat.c |    1 +
>  1 files changed, 1 insertions(+), 0 deletions(-)
> 
> diff --git a/src/mesa/main/texformat.c b/src/mesa/main/texformat.c
> index aebe38e..ea42ced 100644
> --- a/src/mesa/main/texformat.c
> +++ b/src/mesa/main/texformat.c
> @@ -357,6 +357,7 @@ _mesa_choose_tex_format( struct gl_context *ctx,
> GLint internalFormat,
>           case GL_RGB16F_ARB:
>  	    RETURN_IF_SUPPORTED(MESA_FORMAT_RGB_FLOAT16);
>  	    RETURN_IF_SUPPORTED(MESA_FORMAT_RGB_FLOAT32);
> +	    RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_FLOAT16);

RGB_FLOAT32 is 96bits where as RGBA_FLOAT16 is 64bits, so I think that RGBA_FLOAT16 should be tried before RGB_FLOAT32, as it is better from all POVs


>  	    RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_FLOAT32);
>  	    break;
>           case GL_RGB32F_ARB:

Jose


More information about the mesa-dev mailing list