[Mesa-dev] [PATCH v3 3/4] mesa/st: Add support for EXT_texture_sRGB_R8
Ilia Mirkin
imirkin at alum.mit.edu
Thu Nov 1 14:07:11 UTC 2018
Reviewed-by: Ilia Mirkin <imirkin at alum.mit.edu>
But one very very minor change, no need to re-send, just fix it up locally:
On Thu, Nov 1, 2018 at 8:00 AM Gert Wollny <gw.fossdev at gmail.com> wrote:
>
> From: Gert Wollny <gert.wollny at collabora.com>
>
> This only adds support on the Gallium core level, for the drivers
> it is likely that additional changes are needed to support the
> new texture format and thereby enabling the extension.
>
> Enables on softpipe and makes pass:
> dEQP-GLES31.functional.srgb_texture_decode.skip_decode.sr8.*
>
> v2: - add include for getting GL_SR8_EXT
> v4: - since the extension is not required don't bother providing
> a fallback (Ilia Mirkin)
> - split patch (2/2) to separate Gallium and mesa/st parts
> (Roland Scheidegger)
> - trim commit message to only contain the history of the patch
> relevant to this part
> v5: - don't include GLES headers (required enum has been added to glheader.h)
> (Ilia Mirkin)
>
> Signed-off-by: Gert Wollny <gert.wollny at collabora.com>
> ---
> src/mesa/state_tracker/st_extensions.c | 4 ++++
> src/mesa/state_tracker/st_format.c | 9 ++++++++-
> 2 files changed, 12 insertions(+), 1 deletion(-)
>
> diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c
> index 798ee60875..16889074f6 100644
> --- a/src/mesa/state_tracker/st_extensions.c
> +++ b/src/mesa/state_tracker/st_extensions.c
> @@ -889,6 +889,10 @@ void st_init_extensions(struct pipe_screen *screen,
> PIPE_FORMAT_R8G8B8A8_SRGB},
> GL_TRUE }, /* at least one format must be supported */
>
> + { { o(EXT_texture_sRGB_R8) },
> + { PIPE_FORMAT_R8_SRGB },
> + GL_TRUE },
> +
> { { o(EXT_texture_type_2_10_10_10_REV) },
> { PIPE_FORMAT_R10G10B10A2_UNORM,
> PIPE_FORMAT_B10G10R10A2_UNORM },
> diff --git a/src/mesa/state_tracker/st_format.c b/src/mesa/state_tracker/st_format.c
> index 16a18c272d..7a57787b23 100644
> --- a/src/mesa/state_tracker/st_format.c
> +++ b/src/mesa/state_tracker/st_format.c
> @@ -54,7 +54,6 @@
> #include "st_format.h"
> #include "st_texture.h"
>
> -
Leave this line be. I'm guessing this happened when you removed the
GLES2 header includes.
> /**
> * Translate Mesa format to Gallium format.
> */
> @@ -169,6 +168,8 @@ st_mesa_format_to_pipe_format(const struct st_context *st,
> return PIPE_FORMAT_AL88_SRGB;
> case MESA_FORMAT_L_SRGB8:
> return PIPE_FORMAT_L8_SRGB;
> + case MESA_FORMAT_R_SRGB8:
> + return PIPE_FORMAT_R8_SRGB;
> case MESA_FORMAT_BGR_SRGB8:
> return PIPE_FORMAT_R8G8B8_SRGB;
> case MESA_FORMAT_A8B8G8R8_SRGB:
> @@ -719,6 +720,8 @@ st_pipe_format_to_mesa_format(enum pipe_format format)
> return MESA_FORMAT_A8L8_SRGB;
> case PIPE_FORMAT_L8_SRGB:
> return MESA_FORMAT_L_SRGB8;
> + case PIPE_FORMAT_R8_SRGB:
> + return MESA_FORMAT_R_SRGB8;
> case PIPE_FORMAT_R8G8B8_SRGB:
> return MESA_FORMAT_BGR_SRGB8;
> case PIPE_FORMAT_ABGR8888_SRGB:
> @@ -1423,6 +1426,10 @@ static const struct format_mapping format_map[] = {
> 0 },
> { PIPE_FORMAT_L8_SRGB, DEFAULT_SRGBA_FORMATS }
> },
> + {
> + { GL_SR8_EXT, 0 },
> + { PIPE_FORMAT_R8_SRGB, 0 }
> + },
>
> /* 16-bit float formats */
> {
> --
> 2.18.1
>
More information about the mesa-dev
mailing list