st/nine: Fix volumetexture dtor on ctor failure
[mesa.git] / src / gallium / state_trackers / nine / device9.h
index 12be643dc2c5a159f163ab370e437806e9ea2fb8..4cce29a28e0d43de569a0971961506cb4a7966b3 100644 (file)
@@ -38,6 +38,7 @@ struct pipe_context;
 struct cso_context;
 struct hud_context;
 struct u_upload_mgr;
+struct csmt_context;
 
 struct NineSwapChain9;
 struct NineStateBlock9;
@@ -52,12 +53,19 @@ struct NineDevice9
 
     /* G3D context */
     struct pipe_screen *screen;
+    /* For first time upload. No Sync with rendering thread */
+    struct pipe_context *pipe_secondary;
     struct pipe_screen *screen_sw;
-    struct pipe_context *pipe;
     struct pipe_context *pipe_sw;
-    struct cso_context *cso;
     struct cso_context *cso_sw;
 
+    /* CSMT context */
+    struct csmt_context *csmt_ctx;
+    BOOL csmt_active;
+
+    /* For DISCARD/NOOVERWRITE */
+    struct nine_buffer_upload *buffer_upload;
+
     /* creation parameters */
     D3DCAPS9 caps;
     D3DDEVICE_CREATION_PARAMETERS params;
@@ -71,6 +79,8 @@ struct NineDevice9
     struct NineStateBlock9 *record;
     struct nine_state *update; /* state to update (&state / &record->state) */
     struct nine_state state;   /* device state */
+    struct nine_context context;
+    struct nine_state_sw_internal state_sw_internal;
 
     struct list_head update_buffers;
     struct list_head update_textures;
@@ -112,14 +122,12 @@ struct NineDevice9
         POINT pos;
         BOOL visible;
         boolean software;
+        void *hw_upload_temp;
     } cursor;
 
     struct {
         boolean user_vbufs;
-        boolean user_ibufs;
-        boolean user_cbufs;
         boolean user_sw_vbufs;
-        boolean user_sw_cbufs;
         boolean window_space_position_support;
         boolean vs_integer;
         boolean ps_integer;
@@ -131,11 +139,6 @@ struct NineDevice9
     } driver_bugs;
 
     struct u_upload_mgr *vertex_uploader;
-    struct u_upload_mgr *index_uploader;
-    struct u_upload_mgr *constbuf_uploader;
-    struct u_upload_mgr *vertex_sw_uploader;
-    struct u_upload_mgr *constbuf_sw_uploader;
-    unsigned constbuf_alignment;
 
     struct nine_range_pool range_pool;
 
@@ -198,9 +201,6 @@ NineDevice9_GetScreen( struct NineDevice9 *This );
 struct pipe_context *
 NineDevice9_GetPipe( struct NineDevice9 *This );
 
-struct cso_context *
-NineDevice9_GetCSO( struct NineDevice9 *This );
-
 const D3DCAPS9 *
 NineDevice9_GetCaps( struct NineDevice9 *This );