[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