virgl: Expose GL_ARB_copy_image if host supports it
authorGert Wollny <gert.wollny@collabora.com>
Tue, 3 Jul 2018 11:32:21 +0000 (13:32 +0200)
committerGert Wollny <gw.fossdev@gmail.com>
Fri, 20 Jul 2018 17:15:12 +0000 (19:15 +0200)
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
src/gallium/drivers/virgl/virgl_hw.h
src/gallium/drivers/virgl/virgl_screen.c

index f501da7cc13cb17dc0c639f2be77e2b699db2417..ee6aa68c5a70b700ab5c641e07c5f443a8413ca7 100644 (file)
@@ -202,6 +202,7 @@ enum virgl_formats {
 #define VIRGL_CAP_TGSI_INVARIANT       (1 << 0)
 #define VIRGL_CAP_TEXTURE_VIEW         (1 << 1)
 #define VIRGL_CAP_SET_MIN_SAMPLES      (1 << 2)
+#define VIRGL_CAP_COPY_IMAGE           (1 << 3)
 
 #define VIRGL_BIND_DEPTH_STENCIL (1 << 0)
 #define VIRGL_BIND_RENDER_TARGET (1 << 1)
index e2fe2209fe1bdff7e07a810b000df3ed0c5b3906..198acbfefbbf4d5353c961fb76a02a86a1271938 100644 (file)
@@ -221,6 +221,8 @@ virgl_get_param(struct pipe_screen *screen, enum pipe_cap param)
       return vscreen->caps.caps.v2.capability_bits & VIRGL_CAP_TEXTURE_VIEW;
    case PIPE_CAP_MAX_VERTEX_ATTRIB_STRIDE:
       return vscreen->caps.caps.v2.max_vertex_attrib_stride;
+   case PIPE_CAP_COPY_BETWEEN_COMPRESSED_AND_PLAIN_FORMATS:
+      return vscreen->caps.caps.v2.capability_bits & VIRGL_CAP_COPY_IMAGE;
    case PIPE_CAP_TEXTURE_GATHER_SM5:
    case PIPE_CAP_BUFFER_MAP_PERSISTENT_COHERENT:
    case PIPE_CAP_FAKE_SW_MSAA:
@@ -247,7 +249,6 @@ virgl_get_param(struct pipe_screen *screen, enum pipe_cap param)
    case PIPE_CAP_GENERATE_MIPMAP:
    case PIPE_CAP_SURFACE_REINTERPRET_BLOCKS:
    case PIPE_CAP_QUERY_BUFFER_OBJECT:
-   case PIPE_CAP_COPY_BETWEEN_COMPRESSED_AND_PLAIN_FORMATS:
    case PIPE_CAP_STRING_MARKER:
    case PIPE_CAP_QUERY_MEMORY_INFO:
    case PIPE_CAP_PCI_GROUP: