[Mesa-dev] [PATCH 4/8] mesa: fill in signed cases and RGBA16 in _mesa_format_matches_format_and_type
Michel Dänzer
michel at daenzer.net
Tue Jan 29 07:31:57 PST 2013
On Die, 2013-01-29 at 14:43 +0100, Marek Olšák wrote:
> ---
> src/mesa/main/formats.c | 30 ++++++++++++++++++++++++++----
> 1 file changed, 26 insertions(+), 4 deletions(-)
>
> diff --git a/src/mesa/main/formats.c b/src/mesa/main/formats.c
> index 0273425..b86fb9e 100644
> --- a/src/mesa/main/formats.c
> +++ b/src/mesa/main/formats.c
> @@ -3240,8 +3240,14 @@ _mesa_format_matches_format_and_type(gl_format gl_format,
> return format == GL_RGBA_INTEGER && type == GL_UNSIGNED_INT && !swapBytes;
>
> case MESA_FORMAT_DUDV8:
> + return (format == GL_DU8DV8_ATI || format == GL_DUDV_ATI) &&
> + type == GL_BYTE && littleEndian && !swapBytes;
> +
> case MESA_FORMAT_SIGNED_R8:
> + return format == GL_RED && type == GL_BYTE && !swapBytes;
> case MESA_FORMAT_SIGNED_RG88_REV:
> + return format == GL_RG && type == GL_BYTE && littleEndian &&
> + !swapBytes;
The comments from my previous posts apply to these cases.
> @@ -3264,12 +3270,17 @@ _mesa_format_matches_format_and_type(gl_format gl_format,
> return GL_FALSE;
>
> case MESA_FORMAT_SIGNED_R16:
> + return format == GL_RED && type == GL_SHORT && littleEndian &&
> + !swapBytes;
> case MESA_FORMAT_SIGNED_GR1616:
> + return format == GL_RG && type == GL_SHORT && littleEndian && !swapBytes;
GL_SHORT is in host byte order, so checking for littleEndian here
incorrectly excludes big endian hosts.
The last hunk has more examples of all of the above.
--
Earthling Michel Dänzer | http://www.amd.com
Libre software enthusiast | Debian, X and DRI developer
More information about the mesa-dev
mailing list