virgl: Enable mixed color FBO attachemnets only when the host supports
authorGert Wollny <gert.wollny@collabora.com>
Thu, 14 Feb 2019 14:21:30 +0000 (15:21 +0100)
committerGert Wollny <gert.wollny@collabora.com>
Fri, 22 Feb 2019 09:44:08 +0000 (10:44 +0100)
it

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Elie Tournier <elie.tournier@collabora.com>
src/gallium/drivers/virgl/virgl_hw.h
src/gallium/drivers/virgl/virgl_screen.c

index fec9ce857d7a99d9c9063d475a3e438a39f288c8..741b0f2e8ec2e7bd74aba8c980e29623d0e496a5 100644 (file)
@@ -235,6 +235,7 @@ enum virgl_formats {
 #define VIRGL_CAP_SRGB_WRITE_CONTROL   (1 << 15)
 #define VIRGL_CAP_QBO                  (1 << 16)
 #define VIRGL_CAP_TRANSFER             (1 << 17)
+#define VIRGL_CAP_FBO_MIXED_COLOR_FORMATS (1 << 18)
 
 /* virgl bind flags - these are compatible with mesa 10.5 gallium.
  * but are fixed, no other should be passed to virgl either.
index 6cc73538a36684d412574f1d13c61d3fab5e0b37..b290d7d149f7b94446d36c30f2e7364a495b16f0 100644 (file)
@@ -144,7 +144,7 @@ virgl_get_param(struct pipe_screen *screen, enum pipe_cap param)
    case PIPE_CAP_VERTEX_COLOR_CLAMPED:
       return vscreen->caps.caps.v1.bset.color_clamping;
    case PIPE_CAP_MIXED_COLORBUFFER_FORMATS:
-      return 1;
+      return vscreen->caps.caps.v2.capability_bits & VIRGL_CAP_FBO_MIXED_COLOR_FORMATS;
    case PIPE_CAP_GLSL_FEATURE_LEVEL:
       return vscreen->caps.caps.v1.glsl_level;
    case PIPE_CAP_GLSL_FEATURE_LEVEL_COMPATIBILITY: