[PATCH v3 4/4] d3d11: Implement immediate Flush().

Chip Davis cdavis at codeweavers.com
Thu May 14 14:52:49 CDT 2020


Signed-off-by: Chip Davis <cdavis at codeweavers.com>
---
v3: Unchanged from v2.

I'm not sure how this would be tested. We'd need to effect some change
to an object that isn't visible until we do an explicit Flush(). But
resource readbacks trigger an implicit flush; otherwise, the tests would
be sprinkled with explicit Flush() calls.
---
 dlls/d3d11/device.c | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
index 207d3869c27..368a66ce74e 100644
--- a/dlls/d3d11/device.c
+++ b/dlls/d3d11/device.c
@@ -2396,7 +2396,13 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_ClearState(ID3D11DeviceCon
 
 static void STDMETHODCALLTYPE d3d11_immediate_context_Flush(ID3D11DeviceContext1 *iface)
 {
-    FIXME("iface %p stub!\n", iface);
+    struct d3d_device *device = device_from_immediate_ID3D11DeviceContext1(iface);
+
+    TRACE("iface %p.\n", iface);
+
+    wined3d_mutex_lock();
+    wined3d_device_flush(device->wined3d_device);
+    wined3d_mutex_unlock();
 }
 
 static D3D11_DEVICE_CONTEXT_TYPE STDMETHODCALLTYPE d3d11_immediate_context_GetType(ID3D11DeviceContext1 *iface)
@@ -5246,7 +5252,13 @@ static void STDMETHODCALLTYPE d3d10_device_ClearState(ID3D10Device1 *iface)
 
 static void STDMETHODCALLTYPE d3d10_device_Flush(ID3D10Device1 *iface)
 {
-    FIXME("iface %p stub!\n", iface);
+    struct d3d_device *device = impl_from_ID3D10Device(iface);
+
+    TRACE("iface %p.\n", iface);
+
+    wined3d_mutex_lock();
+    wined3d_device_flush(device->wined3d_device);
+    wined3d_mutex_unlock();
 }
 
 static HRESULT STDMETHODCALLTYPE d3d10_device_CreateBuffer(ID3D10Device1 *iface,
-- 
2.24.0




More information about the wine-devel mailing list