svga: explicit set DXFMT_SHADER_SAMPLE for DS format for pre-SM41 device
[mesa.git] / src / gallium / drivers / svga / svga_screen.h
index d7d2c7563598293b0a84f900881d8fa501a5ae7e..12b93468da2eea73f0a6a2bb9541a9c0d5612abb 100644 (file)
@@ -1,4 +1,4 @@
-/**********************************************************
+ /**********************************************************
  * Copyright 2008-2009 VMware, Inc.  All rights reserved.
  *
  * Permission is hereby granted, free of charge, to any person
@@ -30,8 +30,6 @@
 #include "pipe/p_screen.h"
 #include "os/os_thread.h"
 
-#include "util/u_double_list.h"
-
 #include "svga_screen_cache.h"
 
 
@@ -49,7 +47,14 @@ struct svga_screen
 
    SVGA3dHardwareVersion hw_version;
 
+   /** Device caps */
+   boolean haveProvokingVertex;
+   boolean haveLineStipple, haveLineSmooth;
+   float maxLineWidth, maxLineWidthAA;
    float maxPointSize;
+   unsigned max_color_buffers;
+   unsigned max_const_buffers;
+   unsigned ms_samples;
 
    struct {
       boolean force_level_surface_view;
@@ -57,27 +62,37 @@ struct svga_screen
       boolean no_surface_view;
       boolean force_sampler_view;
       boolean no_sampler_view;
+      boolean no_cache_index_buffers;
    } debug;
 
    unsigned texture_timestamp;
-   pipe_mutex tex_mutex; 
+   mtx_t tex_mutex;
 
-   pipe_mutex swc_mutex; /* Used for buffer uploads */
+   mtx_t 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;
+
+   /** HUD counters */
+   struct {
+      /** Memory used by all resources (buffers and surfaces) */
+      uint64_t total_resource_bytes;
+      uint64_t num_resources;
+      uint64_t num_failed_allocations;
+   } hud;
 };
 
 #ifndef DEBUG
 /** cast wrapper */
-static INLINE struct svga_screen *
+static inline struct svga_screen *
 svga_screen(struct pipe_screen *pscreen)
 {
    return (struct svga_screen *) pscreen;