From 377731ec1bb84e103eff587e00c938deef929cba Mon Sep 17 00:00:00 2001 From: Elie Tournier Date: Tue, 2 Jun 2020 11:24:34 +0100 Subject: [PATCH] gallium: Add PIPE_CAP_BLEND_EQUATION_ADVANCED Signed-off-by: Elie Tournier Reviewed-by: Gert Wollny Reviewed-by: Dave Airlie Part-of: --- docs/gallium/screen.rst | 1 + src/gallium/auxiliary/util/u_screen.c | 1 + src/gallium/drivers/virgl/virgl_hw.h | 4 ++++ src/gallium/include/pipe/p_defines.h | 1 + 4 files changed, 7 insertions(+) diff --git a/docs/gallium/screen.rst b/docs/gallium/screen.rst index 1c572f9af54..4304764033a 100644 --- a/docs/gallium/screen.rst +++ b/docs/gallium/screen.rst @@ -588,6 +588,7 @@ The integer capabilities: * ``PIPE_CAP_VIEWPORT_MASK``: Whether ``TGSI_SEMANTIC_VIEWPORT_MASK`` and ``TGSI_PROPERTY_LAYER_VIEWPORT_RELATIVE`` are supported (see GL_NV_viewport_array2). * ``PIPE_CAP_MAP_UNSYNCHRONIZED_THREAD_SAFE``: Whether mapping a buffer as unsynchronized from any thread is safe. * ``PIPE_CAP_GLSL_ZERO_INIT``: Choose a default zero initialization some glsl variables. If `1`, then all glsl shader variables and gl_FragColor are initialized to zero. If `2`, then shader out variables are not initialized but function out variables are. +* ``PIPE_CAP_BLEND_EQUATION_ADVANCED``: Driver supports blend equation advanced without necessarily supporting FBFETCH. .. _pipe_capf: diff --git a/src/gallium/auxiliary/util/u_screen.c b/src/gallium/auxiliary/util/u_screen.c index 59ff5dc84d5..ccf2fa8c75d 100644 --- a/src/gallium/auxiliary/util/u_screen.c +++ b/src/gallium/auxiliary/util/u_screen.c @@ -281,6 +281,7 @@ u_pipe_screen_get_param_defaults(struct pipe_screen *pscreen, case PIPE_CAP_FBFETCH: case PIPE_CAP_FBFETCH_COHERENT: + case PIPE_CAP_BLEND_EQUATION_ADVANCED: case PIPE_CAP_TGSI_MUL_ZERO_WINS: case PIPE_CAP_DOUBLES: case PIPE_CAP_INT64: diff --git a/src/gallium/drivers/virgl/virgl_hw.h b/src/gallium/drivers/virgl/virgl_hw.h index 711bf8b590e..bbf5f5f7519 100644 --- a/src/gallium/drivers/virgl/virgl_hw.h +++ b/src/gallium/drivers/virgl/virgl_hw.h @@ -339,6 +339,9 @@ enum virgl_formats { #define VIRGL_CAP_CLEAR_TEXTURE (1 << 30) /* Reserved for VIRGL_CAP_ARB_BUFFER_STORAGE */ +/* These are used by the capability_bits_v2 field in virgl_caps_v2. */ +#define VIRGL_CAP_V2_BLEND_EQUATION (1 << 0) + /* virgl bind flags - these are compatible with mesa 10.5 gallium. * but are fixed, no other should be passed to virgl either. */ @@ -476,6 +479,7 @@ struct virgl_caps_v2 { uint32_t host_feature_check_version; struct virgl_supported_format_mask supported_readback_formats; struct virgl_supported_format_mask scanout; + uint32_t capability_bits_v2; }; union virgl_caps { diff --git a/src/gallium/include/pipe/p_defines.h b/src/gallium/include/pipe/p_defines.h index ccb5fa11208..eac8f768705 100644 --- a/src/gallium/include/pipe/p_defines.h +++ b/src/gallium/include/pipe/p_defines.h @@ -953,6 +953,7 @@ enum pipe_cap PIPE_CAP_ALPHA_TO_COVERAGE_DITHER_CONTROL, PIPE_CAP_MAP_UNSYNCHRONIZED_THREAD_SAFE, PIPE_CAP_GLSL_ZERO_INIT, + PIPE_CAP_BLEND_EQUATION_ADVANCED, }; /** -- 2.30.2