virgl: Add debug flag to bypass driconf to enable the BGRA tweaks
authorGert Wollny <gert.wollny@collabora.com>
Mon, 27 May 2019 14:38:38 +0000 (16:38 +0200)
committerGert Wollny <gert.wollny@collabora.com>
Thu, 20 Jun 2019 06:50:38 +0000 (08:50 +0200)
This useful for testing, also because with vtest the dri configuration
is not read.

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
src/gallium/drivers/virgl/virgl_screen.c
src/gallium/drivers/virgl/virgl_screen.h

index be684dbf3c14b9ea0fc11bdf5f02cebdb761304e..b2e3117c38393d3dbf61696e2a06b266dd73a0ec 100644 (file)
@@ -43,6 +43,8 @@ int virgl_debug = 0;
 static const struct debug_named_value debug_options[] = {
    { "verbose", VIRGL_DEBUG_VERBOSE, NULL },
    { "tgsi", VIRGL_DEBUG_TGSI, NULL },
+   { "emubgra", VIRGL_DEBUG_EMULATE_BGRA, "Enable tweak to emulate BGRA as RGBA on GLES hosts"},
+   { "bgraswz", VIRGL_DEBUG_BGRA_DEST_SWIZZLE, "Enable tweak to swizzle emulated BGRA on GLES hosts" },
    DEBUG_NAMED_VALUE_END
 };
 DEBUG_GET_ONCE_FLAGS_OPTION(virgl_debug, "VIRGL_DEBUG", debug_options, 0)
@@ -872,6 +874,9 @@ virgl_create_screen(struct virgl_winsys *vws, const struct pipe_screen_config *c
             driQueryOptioni(config->options, VIRGL_GLES_SAMPLES_PASSED_VALUE);
    }
 
+   screen->tweak_gles_emulate_bgra |= !!(virgl_debug & VIRGL_DEBUG_EMULATE_BGRA);
+   screen->tweak_gles_apply_bgra_dest_swizzle |= !!(virgl_debug & VIRGL_DEBUG_BGRA_DEST_SWIZZLE);
+
    screen->vws = vws;
    screen->base.get_name = virgl_get_name;
    screen->base.get_vendor = virgl_get_vendor;
index 089402d576dd0fc6c1f7d41b5fa9f9a8400f722c..b7535527b9ed56016d7655d990877a1cb8c10129 100644 (file)
@@ -29,6 +29,9 @@
 
 #define VIRGL_DEBUG_VERBOSE 1
 #define VIRGL_DEBUG_TGSI    2
+#define VIRGL_DEBUG_EMULATE_BGRA 4
+#define VIRGL_DEBUG_BGRA_DEST_SWIZZLE 4
+
 extern int virgl_debug;
 
 struct virgl_screen {