#include "pipe/p_screen.h"
-#include "pipe/p_thread.h"
-
-#include "util/u_double_list.h"
+#include "os/os_thread.h"
#include "svga_screen_cache.h"
struct svga_winsys_context;
struct SVGACmdMemory;
-#define SVGA_COMBINE_USERBUFFERS 1
-
/**
* Subclass of pipe_screen
*/
struct pipe_screen screen;
struct svga_winsys_screen *sws;
- unsigned use_ps30;
- unsigned use_vs30;
-
+ SVGA3dHardwareVersion hw_version;
+
+ /** Device caps */
+ boolean haveLineStipple, haveLineSmooth;
+ float maxLineWidth, maxLineWidthAA;
+ float maxPointSize;
+ unsigned max_color_buffers;
+
struct {
boolean force_level_surface_view;
boolean force_surface_view;
boolean no_sampler_view;
} debug;
- /* The screen needs its own context */
- struct svga_winsys_context *swc;
- struct SVGACmdMemory *fifo;
-
unsigned texture_timestamp;
pipe_mutex tex_mutex;
- pipe_mutex swc_mutex; /* Protects the use of swc and dirty_buffers */
-
- /**
- * List of buffers with cached GMR. Ordered from the most recently used to
- * the least recently used
- */
- struct list_head cached_buffers;
-
+
+ pipe_mutex swc_mutex; /* Used for buffer uploads */
+
+ /* which formats to translate depth formats into */
+ struct {
+ enum SVGA3dSurfaceFormat z16;
+ /* note gallium order */
+ enum SVGA3dSurfaceFormat x8z24;
+ enum SVGA3dSurfaceFormat s8z24;
+ } depth;
+
struct svga_host_surface_cache cache;
+
+ /** Memory used by all resources (buffers and surfaces) */
+ uint64_t total_resource_bytes;
};
#ifndef DEBUG
svga_screen(struct pipe_screen *screen);
#endif
-void svga_screen_flush( struct svga_screen *svga_screen,
- struct pipe_fence_handle **pfence );
-
#endif /* SVGA_SCREEN_H */