virgl: signal support for group vote and draw parameters
authorGert Wollny <gert.wollny@collabora.com>
Tue, 23 May 2023 15:37:43 +0000 (17:37 +0200)
committerMarge Bot <emma+marge@anholt.net>
Fri, 26 May 2023 13:25:18 +0000 (13:25 +0000)
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23196>

src/gallium/drivers/virgl/virgl_screen.c
src/virtio/virtio-gpu/virgl_hw.h

index 9ca22ba..31b1c43 100644 (file)
@@ -355,6 +355,10 @@ virgl_get_param(struct pipe_screen *screen, enum pipe_cap param)
        return vscreen->caps.caps.v2.capability_bits_v2 & VIRGL_CAP_V2_STRING_MARKER;
    case PIPE_CAP_SURFACE_SAMPLE_COUNT:
        return vscreen->caps.caps.v2.capability_bits_v2 & VIRGL_CAP_V2_IMPLICIT_MSAA;
+   case PIPE_CAP_DRAW_PARAMETERS:
+      return !!(vscreen->caps.caps.v2.capability_bits_v2 & VIRGL_CAP_V2_DRAW_PARAMETERS);
+   case PIPE_CAP_SHADER_GROUP_VOTE:
+      return !!(vscreen->caps.caps.v2.capability_bits_v2 & VIRGL_CAP_V2_GROUP_VOTE);
    case PIPE_CAP_IMAGE_STORE_FORMATTED:
       return 1;
    case PIPE_CAP_MAX_CONSTANT_BUFFER_SIZE_UINT:
index d894e74..0dd16e7 100644 (file)
@@ -469,6 +469,8 @@ enum virgl_formats {
 #define VIRGL_CAP_V2_VS_VERTEX_LAYER      (1 << 11)
 #define VIRGL_CAP_V2_VS_VIEWPORT_INDEX    (1 << 12)
 #define VIRGL_CAP_V2_PIPELINE_STATISTICS_QUERY (1 << 13)
+#define VIRGL_CAP_V2_DRAW_PARAMETERS      (1 << 14)
+#define VIRGL_CAP_V2_GROUP_VOTE           (1 << 15)
 
 /* virgl bind flags - these are compatible with mesa 10.5 gallium.
  * but are fixed, no other should be passed to virgl either.