st/nine: Process pending commands on Reset
authorAxel Davy <axel.davy@ens.fr>
Wed, 28 Dec 2016 17:49:10 +0000 (18:49 +0100)
committerAxel Davy <axel.davy@ens.fr>
Thu, 12 Jan 2017 19:33:11 +0000 (20:33 +0100)
Some nine_state_* and nine_context_* functions
used for Reset() require all pending commands are
flushed.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
src/gallium/state_trackers/nine/device9.c
src/gallium/state_trackers/nine/device9ex.c
src/gallium/state_trackers/nine/nine_state.c

index d76d506..b150faa 100644 (file)
@@ -917,6 +917,7 @@ NineDevice9_Reset( struct NineDevice9 *This,
             break;
     }
 
+    nine_csmt_process(This);
     nine_state_clear(&This->state, TRUE);
     nine_context_clear(This);
 
index 30c8c65..2853a81 100644 (file)
@@ -257,6 +257,7 @@ NineDevice9Ex_Reset( struct NineDevice9Ex *This,
             break;
     }
 
+    nine_csmt_process(&This->base);
     nine_state_clear(&This->base.state, TRUE);
     nine_context_clear(&This->base);
 
index 697e216..8909692 100644 (file)
@@ -2995,6 +2995,9 @@ static const DWORD nine_samp_state_defaults[NINED3DSAMP_LAST + 1] =
     [NINED3DSAMP_CUBETEX] = 0
 };
 
+/* Note: The following 4 functions assume there is no
+ * pending commands */
+
 void nine_state_restore_non_cso(struct NineDevice9 *device)
 {
     struct nine_context *context = &device->context;