Mesa (master): gallium: Add PIPE_CAP_BLEND_EQUATION_ADVANCED
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Fri Jul 17 06:37:07 UTC 2020
Module: Mesa
Branch: master
Commit: 377731ec1bb84e103eff587e00c938deef929cba
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=377731ec1bb84e103eff587e00c938deef929cba
Author: Elie Tournier <tournier.elie at gmail.com>
Date: Tue Jun 2 11:24:34 2020 +0100
gallium: Add PIPE_CAP_BLEND_EQUATION_ADVANCED
Signed-off-by: Elie Tournier <elie.tournier at collabora.com>
Reviewed-by: Gert Wollny <gert.wollny at collabora.com>
Reviewed-by: Dave Airlie <airlied at redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5516>
---
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,
};
/**
More information about the mesa-commit
mailing list