Gallium: Add new CAPS to indicate whether a driver can switch SRGB write
authorGert Wollny <gert.wollny@collabora.com>
Tue, 13 Nov 2018 10:34:35 +0000 (11:34 +0100)
committerGert Wollny <gert.wollny@collabora.com>
Mon, 28 Jan 2019 11:18:40 +0000 (12:18 +0100)
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 <gert.wollny@collabora.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/gallium/auxiliary/util/u_screen.c
src/gallium/docs/source/screen.rst
src/gallium/include/pipe/p_defines.h

index 2d32ca8b240e11907c2e5447554054ea3b12f156..464d9dddc7fde3103123d0edbb862b51228b79a0 100644 (file)
@@ -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_*");
index f5e8ff507db561cf16c8b44ba2e80e5cf8bf7124..eaf492ce8b0bf768b70ce13a8fd06f87280c5c54 100644 (file)
@@ -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:
 
index 5a769ecf0e5691f22bcd0e35a3415b4332f0ece6..867d0cb5d74337513c4f62ddbb605b556d9d1806 100644 (file)
@@ -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,
 };
 
 /**