nir: support lowering clipdist to arrays
[mesa.git] / src / gallium / drivers / virgl / virgl_screen.h
index 8cac38d7e96d5903209308c736c0a6e7a84a5747..3c7c596e1eb42038d3a04c0b9638ab7a66d3269e 100644 (file)
 #define VIRGL_H
 
 #include "pipe/p_screen.h"
+#include "util/slab.h"
 #include "virgl_winsys.h"
 
+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 {
    struct pipe_screen base;
 
@@ -38,7 +50,12 @@ struct virgl_screen {
 
    struct virgl_drm_caps caps;
 
+   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;
 };
 
 
@@ -48,6 +65,14 @@ virgl_screen(struct pipe_screen *pipe)
    return (struct virgl_screen *)pipe;
 }
 
+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