diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c index ced9a13a8ae..c216b07f0a2 100644 --- a/dlls/d3d11/device.c +++ b/dlls/d3d11/device.c @@ -848,7 +848,17 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_DrawIndexedInstancedIndire static void STDMETHODCALLTYPE d3d11_immediate_context_DrawInstancedIndirect(ID3D11DeviceContext *iface, ID3D11Buffer *buffer, UINT offset) { - FIXME("iface %p, buffer %p, offset %u stub!\n", iface, buffer, offset); + struct d3d_device *device = device_from_immediate_ID3D11DeviceContext(iface); + struct d3d_buffer *d3d_buffer; + + TRACE("iface %p, buffer %p, offset %u.\n", iface, buffer, offset); + + d3d_buffer = unsafe_impl_from_ID3D11Buffer(buffer); + + wined3d_mutex_lock(); + wined3d_device_draw_primitive_instanced_indirect(device->wined3d_device, + d3d_buffer->wined3d_buffer, offset); + wined3d_mutex_unlock(); } static void STDMETHODCALLTYPE d3d11_immediate_context_Dispatch(ID3D11DeviceContext *iface,