From: Gert Wollny Date: Tue, 13 Nov 2018 10:34:35 +0000 (+0100) Subject: Gallium: Add new CAPS to indicate whether a driver can switch SRGB write X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=8021f1875e2d830e67aadbf2d44ddfb6f5dd2b13;p=mesa.git Gallium: Add new CAPS to indicate whether a driver can switch SRGB write Add a new cap that indicates whether the drivers supports enabling/disabling the conversion from linear space to sRGB for a framebuffer attachment. In Driver terms that this CAP indicates whether the driver can switcht between a linear and and a sRGB surface format for draw destinations witout changing the sourface itself. v2: rename CAP to DEST_SURFACE_SRGB_CONTROL to reflect its purpouse better (pointed out by Ilia Mirkin) Signed-off-by: Gert Wollny Reviewed-by: Marek Olšák --- diff --git a/src/gallium/auxiliary/util/u_screen.c b/src/gallium/auxiliary/util/u_screen.c index 2d32ca8b240..464d9dddc7f 100644 --- a/src/gallium/auxiliary/util/u_screen.c +++ b/src/gallium/auxiliary/util/u_screen.c @@ -334,6 +334,8 @@ u_pipe_screen_get_param_defaults(struct pipe_screen *pscreen, case PIPE_CAP_SURFACE_SAMPLE_COUNT: return 0; + case PIPE_CAP_DEST_SURFACE_SRGB_CONTROL: + return 1; default: unreachable("bad PIPE_CAP_*"); diff --git a/src/gallium/docs/source/screen.rst b/src/gallium/docs/source/screen.rst index f5e8ff507db..eaf492ce8b0 100644 --- a/src/gallium/docs/source/screen.rst +++ b/src/gallium/docs/source/screen.rst @@ -484,6 +484,9 @@ The integer capabilities: images, buffers, and shared memory. * ``PIPE_CAP_RGB_OVERRIDE_DST_ALPHA_BLEND``: True if the driver needs blend state to use zero/one instead of destination alpha for RGB/XRGB formats. * ``PIPE_CAP_GLSL_TESS_LEVELS_AS_INPUTS``: True if the driver wants TESSINNER and TESSOUTER to be inputs (rather than system values) for tessellation evaluation shaders. +* ``PIPE_CAP_DEST_SURFACE_SRGB_CONTROL``: Indicates whether the drivers + supports switching the format between sRGB and linear for a surface that is + used as destination in draw and blit calls. .. _pipe_capf: diff --git a/src/gallium/include/pipe/p_defines.h b/src/gallium/include/pipe/p_defines.h index 5a769ecf0e5..867d0cb5d74 100644 --- a/src/gallium/include/pipe/p_defines.h +++ b/src/gallium/include/pipe/p_defines.h @@ -855,6 +855,7 @@ enum pipe_cap PIPE_CAP_TGSI_ATOMFADD, PIPE_CAP_QUERY_PIPELINE_STATISTICS_SINGLE, PIPE_CAP_RGB_OVERRIDE_DST_ALPHA_BLEND, + PIPE_CAP_DEST_SURFACE_SRGB_CONTROL, }; /**