[Mesa-dev] [PATCH] st: Choose a 2101010 format for GL_RGB/GL_RGBA with a 2_10_10_10 type.

Marek Olšák maraeo at gmail.com
Wed Apr 25 21:47:43 UTC 2018


Reviewed-by: Marek Olšák <marek.olsak at amd.com>

Marek

On Wed, Apr 25, 2018 at 3:08 PM, Eric Anholt <eric at anholt.net> wrote:

> GLES's GL_EXT_texture_type_2_10_10_10_REV allows uploading this type to an
> unsized internalformat, and it should be non-color-renderable.
> fbobject.c's implementation of the check for color-renderable is checks
> that the texture has a 2101010 mesa format, so make sure that we have
> chosen a 2101010 format so that check can do what it meant to.
>
> Fixes KHR-GLES3.packed_pixels.pbo_rectangle.rgb on vc5.
> ---
>  src/mesa/state_tracker/st_format.c | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
>
> diff --git a/src/mesa/state_tracker/st_format.c
> b/src/mesa/state_tracker/st_format.c
> index 3db3c7e967c6..418f5342025c 100644
> --- a/src/mesa/state_tracker/st_format.c
> +++ b/src/mesa/state_tracker/st_format.c
> @@ -2138,6 +2138,19 @@ st_choose_format(struct st_context *st, GLenum
> internalFormat,
>        goto success;
>     }
>
> +   /* For an unsized GL_RGB but a 2_10_10_10 type, try to pick one of the
> +    * 2_10_10_10 formats.  This is important for
> +    * GL_EXT_texture_type_2_10_10_10_EXT support, which says that these
> +    * formats are not color-renderable.  Mesa's check for making those
> +    * non-color-renderable is based on our chosen format being 2101010.
> +    */
> +   if (type == GL_UNSIGNED_INT_2_10_10_10_REV) {
> +      if (internalFormat == GL_RGB)
> +         internalFormat = GL_RGB10;
> +      else if (internalFormat == GL_RGBA)
> +         internalFormat = GL_RGB10_A2;
> +   }
> +
>     /* search table for internalFormat */
>     for (i = 0; i < ARRAY_SIZE(format_map); i++) {
>        const struct format_mapping *mapping = &format_map[i];
> --
> 2.17.0
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180425/776298eb/attachment.html>


More information about the mesa-dev mailing list