nir: support lowering clipdist to arrays
[mesa.git] / src / gallium / drivers / virgl / virgl_screen.h
index 0256d471f2234a8405a2044635ca21a70da367de..3c7c596e1eb42038d3a04c0b9638ab7a66d3269e 100644 (file)
 #include "util/slab.h"
 #include "virgl_winsys.h"
 
-#define VIRGL_DEBUG_VERBOSE 1
-#define VIRGL_DEBUG_TGSI    2
+enum virgl_debug_flags {
+   VIRGL_DEBUG_VERBOSE              = 1 << 0,
+   VIRGL_DEBUG_TGSI                 = 1 << 1,
+   VIRGL_DEBUG_EMULATE_BGRA         = 1 << 2,
+   VIRGL_DEBUG_BGRA_DEST_SWIZZLE    = 1 << 3,
+   VIRGL_DEBUG_SYNC                 = 1 << 4,
+   VIRGL_DEBUG_XFER                 = 1 << 5,
+};
+
 extern int virgl_debug;
 
 struct virgl_screen {
@@ -46,6 +53,9 @@ struct virgl_screen {
    struct slab_parent_pool transfer_pool;
 
    uint32_t sub_ctx_id;
+   bool tweak_gles_emulate_bgra;
+   bool tweak_gles_apply_bgra_dest_swizzle;
+   int32_t tweak_gles_tf3_value;
 };
 
 
@@ -55,9 +65,14 @@ virgl_screen(struct pipe_screen *pipe)
    return (struct virgl_screen *)pipe;
 }
 
-boolean
+bool
 virgl_has_readback_format(struct pipe_screen *screen, enum virgl_formats fmt);
 
+/* GL_ARB_map_buffer_alignment requires 64 as the minimum alignment value.  In
+ * addition to complying with the extension, a high enough alignment value is
+ * expected by various external GL clients. For example, wined3d doesn't like
+ * maps that don't have a 16 byte alignment.
+ */
 #define VIRGL_MAP_BUFFER_ALIGNMENT 64
 
 #endif