struct svga_winsys_surface;
struct svga_screen;
+struct svga_context;
/**
* Same as svga_winsys_screen::surface_create.
*/
struct svga_host_surface_cache_key
{
- SVGA3dSurfaceFlags flags;
+ SVGA3dSurfaceAllFlags flags;
SVGA3dSurfaceFormat format;
SVGA3dSize size;
uint32_t numFaces:3;
uint32_t cachable:1; /* False if this is a shared surface */
uint32_t sampleCount:5;
uint32_t scanout:1;
+ uint32_t coherent:1;
};
*/
struct svga_host_surface_cache
{
- pipe_mutex mutex;
+ mtx_t mutex;
/* Unused buffers are put in buckets to speed up lookups */
struct list_head bucket[SVGA_HOST_SURFACE_CACHE_BUCKETS];
void
svga_screen_cache_flush(struct svga_screen *svgascreen,
+ struct svga_context *svga,
struct pipe_fence_handle *fence);
enum pipe_error
struct svga_winsys_surface *
svga_screen_surface_create(struct svga_screen *svgascreen,
unsigned bind_flags, enum pipe_resource_usage usage,
+ boolean *validated,
struct svga_host_surface_cache_key *key);
void
void
svga_screen_cache_dump(const struct svga_screen *svgascreen);
+unsigned
+svga_surface_size(const struct svga_host_surface_cache_key *key);
+
#endif /* SVGA_SCREEN_CACHE_H_ */