mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-11-21 16:46:54 -08:00
Rebase against 784b617ae936f97118e18624da85cc9de900e3a7
This commit is contained in:
parent
4af8ffc7f2
commit
d13e9fa487
@ -1,14 +1,14 @@
|
||||
From c7a3f1e20d97f61080df53a909c90707160ba45b Mon Sep 17 00:00:00 2001
|
||||
From 7bc04189d0ae8f308870b7392311e72d30113d3f Mon Sep 17 00:00:00 2001
|
||||
From: Kimmo Myllyvirta <kimmo.myllyvirta@gmail.com>
|
||||
Date: Sat, 24 Sep 2016 06:51:24 +0300
|
||||
Subject: d3d11: Add stub deferred rendering context.
|
||||
Subject: [PATCH] d3d11: Add stub deferred rendering context.
|
||||
|
||||
---
|
||||
dlls/d3d11/device.c | 995 +++++++++++++++++++++++++++++++++++++++++++++++++++-
|
||||
1 file changed, 993 insertions(+), 2 deletions(-)
|
||||
dlls/d3d11/device.c | 1264 +++++++++++++++++++++++++++++++++++++++++++++------
|
||||
1 file changed, 1128 insertions(+), 136 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
|
||||
index 259f189f8a..366f330bf0 100644
|
||||
index 18fa670..9f5c4ff 100644
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -25,6 +25,16 @@
|
||||
@ -28,22 +28,34 @@ index 259f189f8a..366f330bf0 100644
|
||||
static void STDMETHODCALLTYPE d3d_null_wined3d_object_destroyed(void *parent) {}
|
||||
|
||||
static const struct wined3d_parent_ops d3d_null_wined3d_parent_ops =
|
||||
@@ -2417,6 +2427,974 @@ static void d3d11_immediate_context_destroy(struct d3d11_immediate_context *cont
|
||||
@@ -2886,214 +2896,1182 @@ static void d3d11_immediate_context_destroy(struct d3d11_immediate_context *cont
|
||||
wined3d_private_store_cleanup(&context->private_store);
|
||||
}
|
||||
|
||||
-/* ID3D11Device methods */
|
||||
+/* ID3D11DeviceContext - deferred context methods */
|
||||
+
|
||||
|
||||
-static HRESULT STDMETHODCALLTYPE d3d11_device_QueryInterface(ID3D11Device1 *iface, REFIID riid, void **out)
|
||||
+static inline struct d3d11_deferred_context *impl_from_deferred_ID3D11DeviceContext(ID3D11DeviceContext *iface)
|
||||
+{
|
||||
{
|
||||
- struct d3d_device *device = impl_from_ID3D11Device1(iface);
|
||||
- return IUnknown_QueryInterface(device->outer_unk, riid, out);
|
||||
+ return CONTAINING_RECORD(iface, struct d3d11_deferred_context, ID3D11DeviceContext_iface);
|
||||
+}
|
||||
+
|
||||
}
|
||||
|
||||
-static ULONG STDMETHODCALLTYPE d3d11_device_AddRef(ID3D11Device1 *iface)
|
||||
+static HRESULT STDMETHODCALLTYPE d3d11_deferred_context_QueryInterface(ID3D11DeviceContext *iface,
|
||||
+ REFIID riid, void **out)
|
||||
+{
|
||||
{
|
||||
- struct d3d_device *device = impl_from_ID3D11Device1(iface);
|
||||
- return IUnknown_AddRef(device->outer_unk);
|
||||
-}
|
||||
+ TRACE("iface %p, riid %s, out %p.\n", iface, debugstr_guid(riid), out);
|
||||
+
|
||||
|
||||
-static ULONG STDMETHODCALLTYPE d3d11_device_Release(ID3D11Device1 *iface)
|
||||
-{
|
||||
- struct d3d_device *device = impl_from_ID3D11Device1(iface);
|
||||
- return IUnknown_Release(device->outer_unk);
|
||||
+ if (IsEqualGUID(riid, &IID_ID3D11DeviceContext)
|
||||
+ || IsEqualGUID(riid, &IID_ID3D11DeviceChild)
|
||||
+ || IsEqualGUID(riid, &IID_IUnknown))
|
||||
@ -56,166 +68,258 @@ index 259f189f8a..366f330bf0 100644
|
||||
+ WARN("%s not implemented, returning E_NOINTERFACE.\n", debugstr_guid(riid));
|
||||
+ *out = NULL;
|
||||
+ return E_NOINTERFACE;
|
||||
+}
|
||||
+
|
||||
}
|
||||
|
||||
-static HRESULT STDMETHODCALLTYPE d3d11_device_CreateBuffer(ID3D11Device1 *iface, const D3D11_BUFFER_DESC *desc,
|
||||
- const D3D11_SUBRESOURCE_DATA *data, ID3D11Buffer **buffer)
|
||||
+static ULONG STDMETHODCALLTYPE d3d11_deferred_context_AddRef(ID3D11DeviceContext *iface)
|
||||
+{
|
||||
{
|
||||
- struct d3d_device *device = impl_from_ID3D11Device1(iface);
|
||||
- struct d3d_buffer *object;
|
||||
- HRESULT hr;
|
||||
-
|
||||
- TRACE("iface %p, desc %p, data %p, buffer %p.\n", iface, desc, data, buffer);
|
||||
-
|
||||
- if (FAILED(hr = d3d_buffer_create(device, desc, data, &object)))
|
||||
- return hr;
|
||||
+ struct d3d11_deferred_context *context = impl_from_deferred_ID3D11DeviceContext(iface);
|
||||
+ ULONG refcount = InterlockedIncrement(&context->refcount);
|
||||
+
|
||||
|
||||
- *buffer = &object->ID3D11Buffer_iface;
|
||||
+ TRACE("%p increasing refcount to %u.\n", context, refcount);
|
||||
+
|
||||
|
||||
- return S_OK;
|
||||
+ return refcount;
|
||||
+}
|
||||
+
|
||||
}
|
||||
|
||||
-static HRESULT STDMETHODCALLTYPE d3d11_device_CreateTexture1D(ID3D11Device1 *iface,
|
||||
- const D3D11_TEXTURE1D_DESC *desc, const D3D11_SUBRESOURCE_DATA *data, ID3D11Texture1D **texture)
|
||||
+static ULONG STDMETHODCALLTYPE d3d11_deferred_context_Release(ID3D11DeviceContext *iface)
|
||||
+{
|
||||
{
|
||||
- struct d3d_device *device = impl_from_ID3D11Device1(iface);
|
||||
- struct d3d_texture1d *object;
|
||||
- HRESULT hr;
|
||||
-
|
||||
- TRACE("iface %p, desc %p, data %p, texture %p.\n", iface, desc, data, texture);
|
||||
+ struct d3d11_deferred_context *context = impl_from_deferred_ID3D11DeviceContext(iface);
|
||||
+ ULONG refcount = InterlockedDecrement(&context->refcount);
|
||||
+
|
||||
|
||||
- if (FAILED(hr = d3d_texture1d_create(device, desc, data, &object)))
|
||||
- return hr;
|
||||
+ TRACE("%p decreasing refcount to %u.\n", context, refcount);
|
||||
+
|
||||
|
||||
- *texture = &object->ID3D11Texture1D_iface;
|
||||
+ if (!refcount)
|
||||
+ {
|
||||
+ wined3d_private_store_cleanup(&context->private_store);
|
||||
+ ID3D11Device_Release(context->device);
|
||||
+ HeapFree(GetProcessHeap(), 0, context);
|
||||
+ }
|
||||
+
|
||||
|
||||
- return S_OK;
|
||||
+ return refcount;
|
||||
+}
|
||||
+
|
||||
}
|
||||
|
||||
-static HRESULT STDMETHODCALLTYPE d3d11_device_CreateTexture2D(ID3D11Device1 *iface,
|
||||
- const D3D11_TEXTURE2D_DESC *desc, const D3D11_SUBRESOURCE_DATA *data, ID3D11Texture2D **texture)
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_GetDevice(ID3D11DeviceContext *iface, ID3D11Device **device)
|
||||
+{
|
||||
{
|
||||
- struct d3d_device *device = impl_from_ID3D11Device1(iface);
|
||||
- struct d3d_texture2d *object;
|
||||
- HRESULT hr;
|
||||
-
|
||||
- TRACE("iface %p, desc %p, data %p, texture %p.\n", iface, desc, data, texture);
|
||||
-
|
||||
- if (FAILED(hr = d3d_texture2d_create(device, desc, data, &object)))
|
||||
- return hr;
|
||||
+ struct d3d11_deferred_context *context = impl_from_deferred_ID3D11DeviceContext(iface);
|
||||
+
|
||||
|
||||
- *texture = &object->ID3D11Texture2D_iface;
|
||||
+ TRACE("iface %p, device %p.\n", iface, device);
|
||||
+
|
||||
|
||||
- return S_OK;
|
||||
+ ID3D11Device_AddRef(context->device);
|
||||
+ *device = context->device;
|
||||
+}
|
||||
+
|
||||
}
|
||||
|
||||
-static HRESULT STDMETHODCALLTYPE d3d11_device_CreateTexture3D(ID3D11Device1 *iface,
|
||||
- const D3D11_TEXTURE3D_DESC *desc, const D3D11_SUBRESOURCE_DATA *data, ID3D11Texture3D **texture)
|
||||
+static HRESULT STDMETHODCALLTYPE d3d11_deferred_context_GetPrivateData(ID3D11DeviceContext *iface, REFGUID guid,
|
||||
+ UINT *data_size, void *data)
|
||||
+{
|
||||
{
|
||||
- struct d3d_device *device = impl_from_ID3D11Device1(iface);
|
||||
- struct d3d_texture3d *object;
|
||||
- HRESULT hr;
|
||||
-
|
||||
- TRACE("iface %p, desc %p, data %p, texture %p.\n", iface, desc, data, texture);
|
||||
-
|
||||
- if (FAILED(hr = d3d_texture3d_create(device, desc, data, &object)))
|
||||
- return hr;
|
||||
+ struct d3d11_deferred_context *context = impl_from_deferred_ID3D11DeviceContext(iface);
|
||||
+
|
||||
|
||||
- *texture = &object->ID3D11Texture3D_iface;
|
||||
+ TRACE("iface %p, guid %s, data_size %p, data %p.\n", iface, debugstr_guid(guid), data_size, data);
|
||||
+
|
||||
|
||||
- return S_OK;
|
||||
+ return d3d_get_private_data(&context->private_store, guid, data_size, data);
|
||||
+}
|
||||
+
|
||||
}
|
||||
|
||||
-static HRESULT STDMETHODCALLTYPE d3d11_device_CreateShaderResourceView(ID3D11Device1 *iface,
|
||||
- ID3D11Resource *resource, const D3D11_SHADER_RESOURCE_VIEW_DESC *desc, ID3D11ShaderResourceView **view)
|
||||
+static HRESULT STDMETHODCALLTYPE d3d11_deferred_context_SetPrivateData(ID3D11DeviceContext *iface, REFGUID guid,
|
||||
+ UINT data_size, const void *data)
|
||||
+{
|
||||
{
|
||||
- struct d3d_device *device = impl_from_ID3D11Device1(iface);
|
||||
- struct d3d_shader_resource_view *object;
|
||||
- HRESULT hr;
|
||||
+ struct d3d11_deferred_context *context = impl_from_deferred_ID3D11DeviceContext(iface);
|
||||
+
|
||||
|
||||
- TRACE("iface %p, resource %p, desc %p, view %p.\n", iface, resource, desc, view);
|
||||
+ TRACE("iface %p, guid %s, data_size %u, data %p.\n", iface, debugstr_guid(guid), data_size, data);
|
||||
+
|
||||
|
||||
- if (!resource)
|
||||
- return E_INVALIDARG;
|
||||
+ return d3d_set_private_data(&context->private_store, guid, data_size, data);
|
||||
+}
|
||||
+
|
||||
|
||||
- if (FAILED(hr = d3d_shader_resource_view_create(device, resource, desc, &object)))
|
||||
- return hr;
|
||||
+static HRESULT STDMETHODCALLTYPE d3d11_deferred_context_SetPrivateDataInterface(ID3D11DeviceContext *iface,
|
||||
+ REFGUID guid, const IUnknown *data)
|
||||
+{
|
||||
+ struct d3d11_deferred_context *context = impl_from_deferred_ID3D11DeviceContext(iface);
|
||||
+
|
||||
|
||||
- *view = &object->ID3D11ShaderResourceView_iface;
|
||||
+ TRACE("iface %p, guid %s, data %p.\n", iface, debugstr_guid(guid), data);
|
||||
+
|
||||
|
||||
- return S_OK;
|
||||
+ return d3d_set_private_data_interface(&context->private_store, guid, data);
|
||||
+}
|
||||
+
|
||||
}
|
||||
|
||||
-static HRESULT STDMETHODCALLTYPE d3d11_device_CreateUnorderedAccessView(ID3D11Device1 *iface,
|
||||
- ID3D11Resource *resource, const D3D11_UNORDERED_ACCESS_VIEW_DESC *desc, ID3D11UnorderedAccessView **view)
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_VSSetConstantBuffers(ID3D11DeviceContext *iface,
|
||||
+ UINT start_slot, UINT buffer_count, ID3D11Buffer *const *buffers)
|
||||
+{
|
||||
{
|
||||
- struct d3d_device *device = impl_from_ID3D11Device1(iface);
|
||||
- struct d3d11_unordered_access_view *object;
|
||||
- HRESULT hr;
|
||||
-
|
||||
- TRACE("iface %p, resource %p, desc %p, view %p.\n", iface, resource, desc, view);
|
||||
+ FIXME("iface %p, start_slot %u, buffer_count %u, buffers %p stub!\n",
|
||||
+ iface, start_slot, buffer_count, buffers);
|
||||
+}
|
||||
+
|
||||
|
||||
- if (FAILED(hr = d3d11_unordered_access_view_create(device, resource, desc, &object)))
|
||||
- return hr;
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_PSSetShaderResources(ID3D11DeviceContext *iface,
|
||||
+ UINT start_slot, UINT view_count, ID3D11ShaderResourceView *const *views)
|
||||
+{
|
||||
+ FIXME("iface %p, start_slot %u, view_count %u, views %p stub!\n",
|
||||
+ iface, start_slot, view_count, views);
|
||||
+}
|
||||
+
|
||||
|
||||
- *view = &object->ID3D11UnorderedAccessView_iface;
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_PSSetShader(ID3D11DeviceContext *iface,
|
||||
+ ID3D11PixelShader *shader, ID3D11ClassInstance *const *class_instances, UINT class_instance_count)
|
||||
+{
|
||||
+ FIXME("iface %p, shader %p, class_instances %p, class_instance_count %u stub!\n",
|
||||
+ iface, shader, class_instances, class_instance_count);
|
||||
+}
|
||||
+
|
||||
|
||||
- return S_OK;
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_PSSetSamplers(ID3D11DeviceContext *iface,
|
||||
+ UINT start_slot, UINT sampler_count, ID3D11SamplerState *const *samplers)
|
||||
+{
|
||||
+ FIXME("iface %p, start_slot %u, sampler_count %u, samplers %p stub!\n",
|
||||
+ iface, start_slot, sampler_count, samplers);
|
||||
+}
|
||||
+
|
||||
}
|
||||
|
||||
-static HRESULT STDMETHODCALLTYPE d3d11_device_CreateRenderTargetView(ID3D11Device1 *iface,
|
||||
- ID3D11Resource *resource, const D3D11_RENDER_TARGET_VIEW_DESC *desc, ID3D11RenderTargetView **view)
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_VSSetShader(ID3D11DeviceContext *iface,
|
||||
+ ID3D11VertexShader *shader, ID3D11ClassInstance *const *class_instances, UINT class_instance_count)
|
||||
+{
|
||||
{
|
||||
- struct d3d_device *device = impl_from_ID3D11Device1(iface);
|
||||
- struct d3d_rendertarget_view *object;
|
||||
- HRESULT hr;
|
||||
+ FIXME("iface %p, shader %p, class_instances %p, class_instance_count %u stub!\n",
|
||||
+ iface, shader, class_instances, class_instance_count);
|
||||
+}
|
||||
+
|
||||
|
||||
- TRACE("iface %p, resource %p, desc %p, view %p.\n", iface, resource, desc, view);
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_DrawIndexed(ID3D11DeviceContext *iface,
|
||||
+ UINT index_count, UINT start_index_location, INT base_vertex_location)
|
||||
+{
|
||||
+ FIXME("iface %p, index_count %u, start_index_location %u, base_vertex_location %d stub!\n",
|
||||
+ iface, index_count, start_index_location, base_vertex_location);
|
||||
+}
|
||||
+
|
||||
|
||||
- if (!resource)
|
||||
- return E_INVALIDARG;
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_Draw(ID3D11DeviceContext *iface,
|
||||
+ UINT vertex_count, UINT start_vertex_location)
|
||||
+{
|
||||
+ FIXME("iface %p, vertex_count %u, start_vertex_location %u stub!\n",
|
||||
+ iface, vertex_count, start_vertex_location);
|
||||
+}
|
||||
+
|
||||
|
||||
- if (FAILED(hr = d3d_rendertarget_view_create(device, resource, desc, &object)))
|
||||
- return hr;
|
||||
+static HRESULT STDMETHODCALLTYPE d3d11_deferred_context_Map(ID3D11DeviceContext *iface, ID3D11Resource *resource,
|
||||
+ UINT subresource_idx, D3D11_MAP map_type, UINT map_flags, D3D11_MAPPED_SUBRESOURCE *mapped_subresource)
|
||||
+{
|
||||
+ FIXME("iface %p, resource %p, subresource_idx %u, map_type %u, map_flags %#x, mapped_subresource %p stub!\n",
|
||||
+ iface, resource, subresource_idx, map_type, map_flags, mapped_subresource);
|
||||
+
|
||||
|
||||
- *view = &object->ID3D11RenderTargetView_iface;
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
|
||||
- return S_OK;
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_Unmap(ID3D11DeviceContext *iface, ID3D11Resource *resource,
|
||||
+ UINT subresource_idx)
|
||||
+{
|
||||
+ FIXME("iface %p, resource %p, subresource_idx %u stub!\n", iface, resource, subresource_idx);
|
||||
+}
|
||||
+
|
||||
}
|
||||
|
||||
-static HRESULT STDMETHODCALLTYPE d3d11_device_CreateDepthStencilView(ID3D11Device1 *iface,
|
||||
- ID3D11Resource *resource, const D3D11_DEPTH_STENCIL_VIEW_DESC *desc, ID3D11DepthStencilView **view)
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_PSSetConstantBuffers(ID3D11DeviceContext *iface,
|
||||
+ UINT start_slot, UINT buffer_count, ID3D11Buffer *const *buffers)
|
||||
+{
|
||||
{
|
||||
- struct d3d_device *device = impl_from_ID3D11Device1(iface);
|
||||
- struct d3d_depthstencil_view *object;
|
||||
- HRESULT hr;
|
||||
+ FIXME("iface %p, start_slot %u, buffer_count %u, buffers %p stub!\n",
|
||||
+ iface, start_slot, buffer_count, buffers);
|
||||
+}
|
||||
+
|
||||
|
||||
- TRACE("iface %p, resource %p, desc %p, view %p.\n", iface, resource, desc, view);
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_IASetInputLayout(ID3D11DeviceContext *iface,
|
||||
+ ID3D11InputLayout *input_layout)
|
||||
+{
|
||||
+ FIXME("iface %p, input_layout %p stub!\n", iface, input_layout);
|
||||
+}
|
||||
+
|
||||
|
||||
- if (FAILED(hr = d3d_depthstencil_view_create(device, resource, desc, &object)))
|
||||
- return hr;
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_IASetVertexBuffers(ID3D11DeviceContext *iface,
|
||||
+ UINT start_slot, UINT buffer_count, ID3D11Buffer *const *buffers, const UINT *strides, const UINT *offsets)
|
||||
+{
|
||||
+ FIXME("iface %p, start_slot %u, buffer_count %u, buffers %p, strides %p, offsets %p stub!\n",
|
||||
+ iface, start_slot, buffer_count, buffers, strides, offsets);
|
||||
+}
|
||||
+
|
||||
|
||||
- *view = &object->ID3D11DepthStencilView_iface;
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_IASetIndexBuffer(ID3D11DeviceContext *iface,
|
||||
+ ID3D11Buffer *buffer, DXGI_FORMAT format, UINT offset)
|
||||
+{
|
||||
+ FIXME("iface %p, buffer %p, format %s, offset %u stub!\n",
|
||||
+ iface, buffer, debug_dxgi_format(format), offset);
|
||||
+}
|
||||
+
|
||||
|
||||
- return S_OK;
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_DrawIndexedInstanced(ID3D11DeviceContext *iface,
|
||||
+ UINT instance_index_count, UINT instance_count, UINT start_index_location, INT base_vertex_location,
|
||||
+ UINT start_instance_location)
|
||||
@ -224,80 +328,110 @@ index 259f189f8a..366f330bf0 100644
|
||||
+ "base_vertex_location %d, start_instance_location %u stub!\n",
|
||||
+ iface, instance_index_count, instance_count, start_index_location,
|
||||
+ base_vertex_location, start_instance_location);
|
||||
+}
|
||||
+
|
||||
}
|
||||
|
||||
-static HRESULT STDMETHODCALLTYPE d3d11_device_CreateInputLayout(ID3D11Device1 *iface,
|
||||
- const D3D11_INPUT_ELEMENT_DESC *element_descs, UINT element_count, const void *shader_byte_code,
|
||||
- SIZE_T shader_byte_code_length, ID3D11InputLayout **input_layout)
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_DrawInstanced(ID3D11DeviceContext *iface,
|
||||
+ UINT instance_vertex_count, UINT instance_count, UINT start_vertex_location, UINT start_instance_location)
|
||||
+{
|
||||
{
|
||||
- struct d3d_device *device = impl_from_ID3D11Device1(iface);
|
||||
- struct d3d_input_layout *object;
|
||||
- HRESULT hr;
|
||||
+ FIXME("iface %p, instance_vertex_count %u, instance_count %u, start_vertex_location %u, "
|
||||
+ "start_instance_location %u stub!\n",
|
||||
+ iface, instance_vertex_count, instance_count, start_vertex_location,
|
||||
+ start_instance_location);
|
||||
+}
|
||||
+
|
||||
|
||||
- TRACE("iface %p, element_descs %p, element_count %u, shader_byte_code %p, shader_byte_code_length %lu, "
|
||||
- "input_layout %p.\n", iface, element_descs, element_count, shader_byte_code,
|
||||
- shader_byte_code_length, input_layout);
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_GSSetConstantBuffers(ID3D11DeviceContext *iface,
|
||||
+ UINT start_slot, UINT buffer_count, ID3D11Buffer *const *buffers)
|
||||
+{
|
||||
+ FIXME("iface %p, start_slot %u, buffer_count %u, buffers %p stub!\n",
|
||||
+ iface, start_slot, buffer_count, buffers);
|
||||
+}
|
||||
+
|
||||
|
||||
- if (FAILED(hr = d3d_input_layout_create(device, element_descs, element_count,
|
||||
- shader_byte_code, shader_byte_code_length, &object)))
|
||||
- return hr;
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_GSSetShader(ID3D11DeviceContext *iface,
|
||||
+ ID3D11GeometryShader *shader, ID3D11ClassInstance *const *class_instances, UINT class_instance_count)
|
||||
+{
|
||||
+ FIXME("iface %p, shader %p, class_instances %p, class_instance_count %u stub!\n",
|
||||
+ iface, shader, class_instances, class_instance_count);
|
||||
+}
|
||||
+
|
||||
|
||||
- *input_layout = &object->ID3D11InputLayout_iface;
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_IASetPrimitiveTopology(ID3D11DeviceContext *iface,
|
||||
+ D3D11_PRIMITIVE_TOPOLOGY topology)
|
||||
+{
|
||||
+ FIXME("iface %p, topology %u stub!\n", iface, topology);
|
||||
+}
|
||||
+
|
||||
|
||||
- return S_OK;
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_VSSetShaderResources(ID3D11DeviceContext *iface,
|
||||
+ UINT start_slot, UINT view_count, ID3D11ShaderResourceView *const *views)
|
||||
+{
|
||||
+ FIXME("iface %p, start_slot %u, view_count %u, views %p stub!\n", iface, start_slot, view_count, views);
|
||||
+}
|
||||
+
|
||||
}
|
||||
|
||||
-static HRESULT STDMETHODCALLTYPE d3d11_device_CreateVertexShader(ID3D11Device1 *iface, const void *byte_code,
|
||||
- SIZE_T byte_code_length, ID3D11ClassLinkage *class_linkage, ID3D11VertexShader **shader)
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_VSSetSamplers(ID3D11DeviceContext *iface,
|
||||
+ UINT start_slot, UINT sampler_count, ID3D11SamplerState *const *samplers)
|
||||
+{
|
||||
{
|
||||
- struct d3d_device *device = impl_from_ID3D11Device1(iface);
|
||||
- struct d3d_vertex_shader *object;
|
||||
- HRESULT hr;
|
||||
+ FIXME("iface %p, start_slot %u, sampler_count %u, samplers %p stub!\n",
|
||||
+ iface, start_slot, sampler_count, samplers);
|
||||
+}
|
||||
+
|
||||
|
||||
- TRACE("iface %p, byte_code %p, byte_code_length %lu, class_linkage %p, shader %p.\n",
|
||||
- iface, byte_code, byte_code_length, class_linkage, shader);
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_Begin(ID3D11DeviceContext *iface,
|
||||
+ ID3D11Asynchronous *asynchronous)
|
||||
+{
|
||||
+ FIXME("iface %p, asynchronous %p stub!\n", iface, asynchronous);
|
||||
+}
|
||||
+
|
||||
|
||||
- if (class_linkage)
|
||||
- FIXME("Class linkage is not implemented yet.\n");
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_End(ID3D11DeviceContext *iface,
|
||||
+ ID3D11Asynchronous *asynchronous)
|
||||
+{
|
||||
+ FIXME("iface %p, asynchronous %p stub!\n", iface, asynchronous);
|
||||
+}
|
||||
+
|
||||
|
||||
- if (FAILED(hr = d3d_vertex_shader_create(device, byte_code, byte_code_length, &object)))
|
||||
- return hr;
|
||||
+static HRESULT STDMETHODCALLTYPE d3d11_deferred_context_GetData(ID3D11DeviceContext *iface,
|
||||
+ ID3D11Asynchronous *asynchronous, void *data, UINT data_size, UINT data_flags)
|
||||
+{
|
||||
+ FIXME("iface %p, asynchronous %p, data %p, data_size %u, data_flags %#x stub!\n",
|
||||
+ iface, asynchronous, data, data_size, data_flags);
|
||||
+
|
||||
|
||||
- *shader = &object->ID3D11VertexShader_iface;
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
|
||||
- return S_OK;
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_SetPredication(ID3D11DeviceContext *iface,
|
||||
+ ID3D11Predicate *predicate, BOOL value)
|
||||
+{
|
||||
+ FIXME("iface %p, predicate %p, value %#x stub!\n", iface, predicate, value);
|
||||
+}
|
||||
+
|
||||
}
|
||||
|
||||
-static HRESULT STDMETHODCALLTYPE d3d11_device_CreateGeometryShader(ID3D11Device1 *iface, const void *byte_code,
|
||||
- SIZE_T byte_code_length, ID3D11ClassLinkage *class_linkage, ID3D11GeometryShader **shader)
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_GSSetShaderResources(ID3D11DeviceContext *iface,
|
||||
+ UINT start_slot, UINT view_count, ID3D11ShaderResourceView *const *views)
|
||||
+{
|
||||
{
|
||||
- struct d3d_device *device = impl_from_ID3D11Device1(iface);
|
||||
+ FIXME("iface %p, start_slot %u, view_count %u, views %p stub!\n", iface, start_slot, view_count, views);
|
||||
+}
|
||||
+
|
||||
@ -1000,14 +1134,223 @@ index 259f189f8a..366f330bf0 100644
|
||||
+ d3d11_deferred_context_FinishCommandList,
|
||||
+};
|
||||
+
|
||||
/* ID3D11Device methods */
|
||||
+/* ID3D11Device methods */
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE d3d11_device_QueryInterface(ID3D11Device1 *iface, REFIID riid, void **out)
|
||||
+{
|
||||
+ struct d3d_device *device = impl_from_ID3D11Device1(iface);
|
||||
+ return IUnknown_QueryInterface(device->outer_unk, riid, out);
|
||||
+}
|
||||
+
|
||||
+static ULONG STDMETHODCALLTYPE d3d11_device_AddRef(ID3D11Device1 *iface)
|
||||
+{
|
||||
+ struct d3d_device *device = impl_from_ID3D11Device1(iface);
|
||||
+ return IUnknown_AddRef(device->outer_unk);
|
||||
+}
|
||||
+
|
||||
+static ULONG STDMETHODCALLTYPE d3d11_device_Release(ID3D11Device1 *iface)
|
||||
+{
|
||||
+ struct d3d_device *device = impl_from_ID3D11Device1(iface);
|
||||
+ return IUnknown_Release(device->outer_unk);
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE d3d11_device_CreateBuffer(ID3D11Device1 *iface, const D3D11_BUFFER_DESC *desc,
|
||||
+ const D3D11_SUBRESOURCE_DATA *data, ID3D11Buffer **buffer)
|
||||
+{
|
||||
+ struct d3d_device *device = impl_from_ID3D11Device1(iface);
|
||||
+ struct d3d_buffer *object;
|
||||
+ HRESULT hr;
|
||||
+
|
||||
+ TRACE("iface %p, desc %p, data %p, buffer %p.\n", iface, desc, data, buffer);
|
||||
+
|
||||
+ if (FAILED(hr = d3d_buffer_create(device, desc, data, &object)))
|
||||
+ return hr;
|
||||
+
|
||||
+ *buffer = &object->ID3D11Buffer_iface;
|
||||
+
|
||||
+ return S_OK;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE d3d11_device_CreateTexture1D(ID3D11Device1 *iface,
|
||||
+ const D3D11_TEXTURE1D_DESC *desc, const D3D11_SUBRESOURCE_DATA *data, ID3D11Texture1D **texture)
|
||||
+{
|
||||
+ struct d3d_device *device = impl_from_ID3D11Device1(iface);
|
||||
+ struct d3d_texture1d *object;
|
||||
+ HRESULT hr;
|
||||
+
|
||||
+ TRACE("iface %p, desc %p, data %p, texture %p.\n", iface, desc, data, texture);
|
||||
+
|
||||
+ if (FAILED(hr = d3d_texture1d_create(device, desc, data, &object)))
|
||||
+ return hr;
|
||||
+
|
||||
+ *texture = &object->ID3D11Texture1D_iface;
|
||||
+
|
||||
+ return S_OK;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE d3d11_device_CreateTexture2D(ID3D11Device1 *iface,
|
||||
+ const D3D11_TEXTURE2D_DESC *desc, const D3D11_SUBRESOURCE_DATA *data, ID3D11Texture2D **texture)
|
||||
+{
|
||||
+ struct d3d_device *device = impl_from_ID3D11Device1(iface);
|
||||
+ struct d3d_texture2d *object;
|
||||
+ HRESULT hr;
|
||||
+
|
||||
+ TRACE("iface %p, desc %p, data %p, texture %p.\n", iface, desc, data, texture);
|
||||
+
|
||||
+ if (FAILED(hr = d3d_texture2d_create(device, desc, data, &object)))
|
||||
+ return hr;
|
||||
+
|
||||
+ *texture = &object->ID3D11Texture2D_iface;
|
||||
+
|
||||
+ return S_OK;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE d3d11_device_CreateTexture3D(ID3D11Device1 *iface,
|
||||
+ const D3D11_TEXTURE3D_DESC *desc, const D3D11_SUBRESOURCE_DATA *data, ID3D11Texture3D **texture)
|
||||
+{
|
||||
+ struct d3d_device *device = impl_from_ID3D11Device1(iface);
|
||||
+ struct d3d_texture3d *object;
|
||||
+ HRESULT hr;
|
||||
+
|
||||
+ TRACE("iface %p, desc %p, data %p, texture %p.\n", iface, desc, data, texture);
|
||||
+
|
||||
+ if (FAILED(hr = d3d_texture3d_create(device, desc, data, &object)))
|
||||
+ return hr;
|
||||
+
|
||||
+ *texture = &object->ID3D11Texture3D_iface;
|
||||
+
|
||||
+ return S_OK;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE d3d11_device_CreateShaderResourceView(ID3D11Device1 *iface,
|
||||
+ ID3D11Resource *resource, const D3D11_SHADER_RESOURCE_VIEW_DESC *desc, ID3D11ShaderResourceView **view)
|
||||
+{
|
||||
+ struct d3d_device *device = impl_from_ID3D11Device1(iface);
|
||||
+ struct d3d_shader_resource_view *object;
|
||||
+ HRESULT hr;
|
||||
+
|
||||
+ TRACE("iface %p, resource %p, desc %p, view %p.\n", iface, resource, desc, view);
|
||||
+
|
||||
+ if (!resource)
|
||||
+ return E_INVALIDARG;
|
||||
+
|
||||
+ if (FAILED(hr = d3d_shader_resource_view_create(device, resource, desc, &object)))
|
||||
+ return hr;
|
||||
+
|
||||
+ *view = &object->ID3D11ShaderResourceView_iface;
|
||||
+
|
||||
+ return S_OK;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE d3d11_device_CreateUnorderedAccessView(ID3D11Device1 *iface,
|
||||
+ ID3D11Resource *resource, const D3D11_UNORDERED_ACCESS_VIEW_DESC *desc, ID3D11UnorderedAccessView **view)
|
||||
+{
|
||||
+ struct d3d_device *device = impl_from_ID3D11Device1(iface);
|
||||
+ struct d3d11_unordered_access_view *object;
|
||||
+ HRESULT hr;
|
||||
+
|
||||
+ TRACE("iface %p, resource %p, desc %p, view %p.\n", iface, resource, desc, view);
|
||||
+
|
||||
+ if (FAILED(hr = d3d11_unordered_access_view_create(device, resource, desc, &object)))
|
||||
+ return hr;
|
||||
+
|
||||
+ *view = &object->ID3D11UnorderedAccessView_iface;
|
||||
+
|
||||
+ return S_OK;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE d3d11_device_CreateRenderTargetView(ID3D11Device1 *iface,
|
||||
+ ID3D11Resource *resource, const D3D11_RENDER_TARGET_VIEW_DESC *desc, ID3D11RenderTargetView **view)
|
||||
+{
|
||||
+ struct d3d_device *device = impl_from_ID3D11Device1(iface);
|
||||
+ struct d3d_rendertarget_view *object;
|
||||
+ HRESULT hr;
|
||||
+
|
||||
+ TRACE("iface %p, resource %p, desc %p, view %p.\n", iface, resource, desc, view);
|
||||
+
|
||||
+ if (!resource)
|
||||
+ return E_INVALIDARG;
|
||||
+
|
||||
+ if (FAILED(hr = d3d_rendertarget_view_create(device, resource, desc, &object)))
|
||||
+ return hr;
|
||||
+
|
||||
+ *view = &object->ID3D11RenderTargetView_iface;
|
||||
+
|
||||
+ return S_OK;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE d3d11_device_CreateDepthStencilView(ID3D11Device1 *iface,
|
||||
+ ID3D11Resource *resource, const D3D11_DEPTH_STENCIL_VIEW_DESC *desc, ID3D11DepthStencilView **view)
|
||||
+{
|
||||
+ struct d3d_device *device = impl_from_ID3D11Device1(iface);
|
||||
+ struct d3d_depthstencil_view *object;
|
||||
+ HRESULT hr;
|
||||
+
|
||||
+ TRACE("iface %p, resource %p, desc %p, view %p.\n", iface, resource, desc, view);
|
||||
+
|
||||
+ if (FAILED(hr = d3d_depthstencil_view_create(device, resource, desc, &object)))
|
||||
+ return hr;
|
||||
+
|
||||
+ *view = &object->ID3D11DepthStencilView_iface;
|
||||
+
|
||||
+ return S_OK;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE d3d11_device_CreateInputLayout(ID3D11Device1 *iface,
|
||||
+ const D3D11_INPUT_ELEMENT_DESC *element_descs, UINT element_count, const void *shader_byte_code,
|
||||
+ SIZE_T shader_byte_code_length, ID3D11InputLayout **input_layout)
|
||||
+{
|
||||
+ struct d3d_device *device = impl_from_ID3D11Device1(iface);
|
||||
+ struct d3d_input_layout *object;
|
||||
+ HRESULT hr;
|
||||
+
|
||||
+ TRACE("iface %p, element_descs %p, element_count %u, shader_byte_code %p, shader_byte_code_length %lu, "
|
||||
+ "input_layout %p.\n", iface, element_descs, element_count, shader_byte_code,
|
||||
+ shader_byte_code_length, input_layout);
|
||||
+
|
||||
+ if (FAILED(hr = d3d_input_layout_create(device, element_descs, element_count,
|
||||
+ shader_byte_code, shader_byte_code_length, &object)))
|
||||
+ return hr;
|
||||
+
|
||||
+ *input_layout = &object->ID3D11InputLayout_iface;
|
||||
+
|
||||
+ return S_OK;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE d3d11_device_CreateVertexShader(ID3D11Device1 *iface, const void *byte_code,
|
||||
+ SIZE_T byte_code_length, ID3D11ClassLinkage *class_linkage, ID3D11VertexShader **shader)
|
||||
+{
|
||||
+ struct d3d_device *device = impl_from_ID3D11Device1(iface);
|
||||
+ struct d3d_vertex_shader *object;
|
||||
+ HRESULT hr;
|
||||
+
|
||||
+ TRACE("iface %p, byte_code %p, byte_code_length %lu, class_linkage %p, shader %p.\n",
|
||||
+ iface, byte_code, byte_code_length, class_linkage, shader);
|
||||
+
|
||||
+ if (class_linkage)
|
||||
+ FIXME("Class linkage is not implemented yet.\n");
|
||||
+
|
||||
+ if (FAILED(hr = d3d_vertex_shader_create(device, byte_code, byte_code_length, &object)))
|
||||
+ return hr;
|
||||
+
|
||||
+ *shader = &object->ID3D11VertexShader_iface;
|
||||
+
|
||||
+ return S_OK;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE d3d11_device_CreateGeometryShader(ID3D11Device1 *iface, const void *byte_code,
|
||||
+ SIZE_T byte_code_length, ID3D11ClassLinkage *class_linkage, ID3D11GeometryShader **shader)
|
||||
+{
|
||||
+ struct d3d_device *device = impl_from_ID3D11Device1(iface);
|
||||
struct d3d_geometry_shader *object;
|
||||
HRESULT hr;
|
||||
|
||||
static HRESULT STDMETHODCALLTYPE d3d11_device_QueryInterface(ID3D11Device *iface, REFIID riid, void **out)
|
||||
@@ -3070,9 +4048,22 @@ static HRESULT STDMETHODCALLTYPE d3d11_device_CreateCounter(ID3D11Device *iface,
|
||||
static HRESULT STDMETHODCALLTYPE d3d11_device_CreateDeferredContext(ID3D11Device *iface, UINT flags,
|
||||
@@ -3365,9 +4343,23 @@ static HRESULT STDMETHODCALLTYPE d3d11_device_CreateCounter(ID3D11Device1 *iface
|
||||
static HRESULT STDMETHODCALLTYPE d3d11_device_CreateDeferredContext(ID3D11Device1 *iface, UINT flags,
|
||||
ID3D11DeviceContext **context)
|
||||
{
|
||||
- FIXME("iface %p, flags %#x, context %p stub!\n", iface, flags, context);
|
||||
+ struct d3d_device *device = impl_from_ID3D11Device1(iface);
|
||||
+ struct d3d11_deferred_context *object;
|
||||
|
||||
- return E_NOTIMPL;
|
||||
@ -1017,17 +1360,17 @@ index 259f189f8a..366f330bf0 100644
|
||||
+ return E_OUTOFMEMORY;
|
||||
+
|
||||
+ object->ID3D11DeviceContext_iface.lpVtbl = &d3d11_deferred_context_vtbl;
|
||||
+ object->device = iface;
|
||||
+ object->device = (ID3D11Device*)&device->ID3D11Device1_iface;
|
||||
+ object->refcount = 1;
|
||||
+
|
||||
+ ID3D11Device_AddRef(iface);
|
||||
+ ID3D11Device_AddRef(object->device);
|
||||
+ wined3d_private_store_init(&object->private_store);
|
||||
+
|
||||
+ *context = &object->ID3D11DeviceContext_iface;
|
||||
+ return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT STDMETHODCALLTYPE d3d11_device_OpenSharedResource(ID3D11Device *iface, HANDLE resource, REFIID riid,
|
||||
static HRESULT STDMETHODCALLTYPE d3d11_device_OpenSharedResource(ID3D11Device1 *iface, HANDLE resource, REFIID riid,
|
||||
--
|
||||
2.12.2
|
||||
1.9.1
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 06cf41da9e0aeb09d3753132262d1b0e1207cd7f Mon Sep 17 00:00:00 2001
|
||||
From 3755d929ed2c1ceb101bf0741e78888624fbcf44 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Thu, 19 Jan 2017 16:54:42 +0100
|
||||
Subject: wined3d: Add wined3d_resource_map_info function.
|
||||
Subject: [PATCH] wined3d: Add wined3d_resource_map_info function.
|
||||
|
||||
---
|
||||
dlls/wined3d/buffer.c | 19 +++++++++++++++++++
|
||||
@ -13,10 +13,10 @@ Subject: wined3d: Add wined3d_resource_map_info function.
|
||||
6 files changed, 70 insertions(+)
|
||||
|
||||
diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
|
||||
index 6883b4010a0..1924752a421 100644
|
||||
index 3f4552f..2350661 100644
|
||||
--- a/dlls/wined3d/buffer.c
|
||||
+++ b/dlls/wined3d/buffer.c
|
||||
@@ -1405,6 +1405,24 @@ static HRESULT buffer_resource_sub_resource_map(struct wined3d_resource *resourc
|
||||
@@ -1275,6 +1275,24 @@ static HRESULT buffer_resource_sub_resource_map(struct wined3d_resource *resourc
|
||||
return wined3d_buffer_map(buffer, offset, size, (BYTE **)&map_desc->data, flags);
|
||||
}
|
||||
|
||||
@ -41,7 +41,7 @@ index 6883b4010a0..1924752a421 100644
|
||||
static HRESULT buffer_resource_sub_resource_unmap(struct wined3d_resource *resource, unsigned int sub_resource_idx)
|
||||
{
|
||||
if (sub_resource_idx)
|
||||
@@ -1424,6 +1442,7 @@ static const struct wined3d_resource_ops buffer_resource_ops =
|
||||
@@ -1294,6 +1312,7 @@ static const struct wined3d_resource_ops buffer_resource_ops =
|
||||
buffer_resource_preload,
|
||||
buffer_unload,
|
||||
buffer_resource_sub_resource_map,
|
||||
@ -50,10 +50,10 @@ index 6883b4010a0..1924752a421 100644
|
||||
};
|
||||
|
||||
diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c
|
||||
index ab64de07f41..51da49077ed 100644
|
||||
index b5dcdf0..28581a1 100644
|
||||
--- a/dlls/wined3d/resource.c
|
||||
+++ b/dlls/wined3d/resource.c
|
||||
@@ -359,6 +359,14 @@ HRESULT CDECL wined3d_resource_map(struct wined3d_resource *resource, unsigned i
|
||||
@@ -358,6 +358,14 @@ HRESULT CDECL wined3d_resource_map(struct wined3d_resource *resource, unsigned i
|
||||
return wined3d_cs_map(resource->device->cs, resource, sub_resource_idx, map_desc, box, flags);
|
||||
}
|
||||
|
||||
@ -69,10 +69,10 @@ index ab64de07f41..51da49077ed 100644
|
||||
{
|
||||
TRACE("resource %p, sub_resource_idx %u.\n", resource, sub_resource_idx);
|
||||
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
|
||||
index 8d5e37a4949..be301420858 100644
|
||||
index dadcd03..ed63158 100644
|
||||
--- a/dlls/wined3d/texture.c
|
||||
+++ b/dlls/wined3d/texture.c
|
||||
@@ -2194,6 +2194,36 @@ static HRESULT texture_resource_sub_resource_map(struct wined3d_resource *resour
|
||||
@@ -2345,6 +2345,36 @@ static HRESULT texture_resource_sub_resource_map(struct wined3d_resource *resour
|
||||
return WINED3D_OK;
|
||||
}
|
||||
|
||||
@ -109,7 +109,7 @@ index 8d5e37a4949..be301420858 100644
|
||||
static HRESULT texture_resource_sub_resource_unmap(struct wined3d_resource *resource, unsigned int sub_resource_idx)
|
||||
{
|
||||
struct wined3d_texture_sub_resource *sub_resource;
|
||||
@@ -2253,6 +2283,7 @@ static const struct wined3d_resource_ops texture_resource_ops =
|
||||
@@ -2396,6 +2426,7 @@ static const struct wined3d_resource_ops texture_resource_ops =
|
||||
texture_resource_preload,
|
||||
wined3d_texture_unload,
|
||||
texture_resource_sub_resource_map,
|
||||
@ -118,10 +118,10 @@ index 8d5e37a4949..be301420858 100644
|
||||
};
|
||||
|
||||
diff --git a/dlls/wined3d/wined3d.spec b/dlls/wined3d/wined3d.spec
|
||||
index 05df9f3db7e..e51380304b1 100644
|
||||
index bf29e20..58dc0a9 100644
|
||||
--- a/dlls/wined3d/wined3d.spec
|
||||
+++ b/dlls/wined3d/wined3d.spec
|
||||
@@ -187,6 +187,7 @@
|
||||
@@ -229,6 +229,7 @@
|
||||
@ cdecl wined3d_resource_get_parent(ptr)
|
||||
@ cdecl wined3d_resource_get_priority(ptr)
|
||||
@ cdecl wined3d_resource_map(ptr long ptr ptr long)
|
||||
@ -130,10 +130,10 @@ index 05df9f3db7e..e51380304b1 100644
|
||||
@ cdecl wined3d_resource_set_parent(ptr ptr)
|
||||
@ cdecl wined3d_resource_set_priority(ptr long)
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index ff61d9d872b..65f95004b44 100644
|
||||
index b297799..ed08c4b 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -2639,6 +2639,8 @@ struct wined3d_resource_ops
|
||||
@@ -3030,6 +3030,8 @@ struct wined3d_resource_ops
|
||||
void (*resource_unload)(struct wined3d_resource *resource);
|
||||
HRESULT (*resource_sub_resource_map)(struct wined3d_resource *resource, unsigned int sub_resource_idx,
|
||||
struct wined3d_map_desc *map_desc, const struct wined3d_box *box, DWORD flags);
|
||||
@ -143,10 +143,10 @@ index ff61d9d872b..65f95004b44 100644
|
||||
};
|
||||
|
||||
diff --git a/include/wine/wined3d.h b/include/wine/wined3d.h
|
||||
index 8c8fbcbe7e5..fff39e2fa0f 100644
|
||||
index 15e14e5..fa929e5 100644
|
||||
--- a/include/wine/wined3d.h
|
||||
+++ b/include/wine/wined3d.h
|
||||
@@ -1746,6 +1746,13 @@ struct wined3d_map_desc
|
||||
@@ -1806,6 +1806,13 @@ struct wined3d_map_desc
|
||||
void *data;
|
||||
};
|
||||
|
||||
@ -160,7 +160,7 @@ index 8c8fbcbe7e5..fff39e2fa0f 100644
|
||||
struct wined3d_sub_resource_data
|
||||
{
|
||||
const void *data;
|
||||
@@ -2431,6 +2438,8 @@ void * __cdecl wined3d_resource_get_parent(const struct wined3d_resource *resour
|
||||
@@ -2584,6 +2591,8 @@ void * __cdecl wined3d_resource_get_parent(const struct wined3d_resource *resour
|
||||
DWORD __cdecl wined3d_resource_get_priority(const struct wined3d_resource *resource);
|
||||
HRESULT __cdecl wined3d_resource_map(struct wined3d_resource *resource, unsigned int sub_resource_idx,
|
||||
struct wined3d_map_desc *map_desc, const struct wined3d_box *box, DWORD flags);
|
||||
@ -170,5 +170,5 @@ index 8c8fbcbe7e5..fff39e2fa0f 100644
|
||||
void __cdecl wined3d_resource_set_parent(struct wined3d_resource *resource, void *parent);
|
||||
DWORD __cdecl wined3d_resource_set_priority(struct wined3d_resource *resource, DWORD priority);
|
||||
--
|
||||
2.11.0
|
||||
1.9.1
|
||||
|
||||
|
@ -1,14 +1,14 @@
|
||||
From 05ef8f7024651411d386a6e60e9353feba472cd9 Mon Sep 17 00:00:00 2001
|
||||
From dc8d14d3b434e87777d0c1665602a0425197afc6 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Thu, 19 Jan 2017 16:56:56 +0100
|
||||
Subject: d3d11: Initial implementation for deferred contexts.
|
||||
Subject: [PATCH] d3d11: Initial implementation for deferred contexts.
|
||||
|
||||
---
|
||||
dlls/d3d11/device.c | 1071 +++++++++++++++++++++++++++++++++++++++++++++++++--
|
||||
1 file changed, 1040 insertions(+), 31 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
|
||||
index 59b1bc864b..ec02ce6f20 100644
|
||||
index 9f5c4ff..2f13e85 100644
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -19,12 +19,181 @@
|
||||
@ -427,7 +427,7 @@ index 59b1bc864b..ec02ce6f20 100644
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *commands)
|
||||
+static void exec_deferred_calls(ID3D11DeviceContext1 *iface, struct list *commands)
|
||||
+{
|
||||
+ struct deferred_call *call;
|
||||
+
|
||||
@ -437,133 +437,133 @@ index 59b1bc864b..ec02ce6f20 100644
|
||||
+ {
|
||||
+ case DEFERRED_IASETVERTEXBUFFERS:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_IASetVertexBuffers(iface, call->vbuffer_info.start_slot,
|
||||
+ ID3D11DeviceContext1_IASetVertexBuffers(iface, call->vbuffer_info.start_slot,
|
||||
+ call->vbuffer_info.num_buffers, call->vbuffer_info.buffers,
|
||||
+ call->vbuffer_info.strides, call->vbuffer_info.offsets);
|
||||
+ break;
|
||||
+ }
|
||||
+ case DEFERRED_IASETPRIMITIVETOPOLOGY:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_IASetPrimitiveTopology(iface, call->topology_info.topology);
|
||||
+ ID3D11DeviceContext1_IASetPrimitiveTopology(iface, call->topology_info.topology);
|
||||
+ break;
|
||||
+ }
|
||||
+ case DEFERRED_IASETINDEXBUFFER:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_IASetIndexBuffer(iface, call->index_buffer_info.buffer,
|
||||
+ ID3D11DeviceContext1_IASetIndexBuffer(iface, call->index_buffer_info.buffer,
|
||||
+ call->index_buffer_info.format, call->index_buffer_info.offset);
|
||||
+ break;
|
||||
+ }
|
||||
+ case DEFERRED_IASETINPUTLAYOUT:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_IASetInputLayout(iface, call->input_layout_info.layout);
|
||||
+ ID3D11DeviceContext1_IASetInputLayout(iface, call->input_layout_info.layout);
|
||||
+ break;
|
||||
+ }
|
||||
+ case DEFERRED_RSSETSTATE:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_RSSetState(iface, call->rstate_info.state);
|
||||
+ ID3D11DeviceContext1_RSSetState(iface, call->rstate_info.state);
|
||||
+ break;
|
||||
+ }
|
||||
+ case DEFERRED_RSSETVIEWPORTS:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_RSSetViewports(iface, call->viewport_info.num_viewports,
|
||||
+ ID3D11DeviceContext1_RSSetViewports(iface, call->viewport_info.num_viewports,
|
||||
+ call->viewport_info.viewports);
|
||||
+ break;
|
||||
+ }
|
||||
+ case DEFERRED_OMSETDEPTHSTENCILSTATE:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_OMSetDepthStencilState(iface, call->stencil_state_info.state,
|
||||
+ ID3D11DeviceContext1_OMSetDepthStencilState(iface, call->stencil_state_info.state,
|
||||
+ call->stencil_state_info.stencil_ref);
|
||||
+ break;
|
||||
+ }
|
||||
+ case DEFERRED_OMSETBLENDSTATE:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_OMSetBlendState(iface, call->blend_state_info.state,
|
||||
+ ID3D11DeviceContext1_OMSetBlendState(iface, call->blend_state_info.state,
|
||||
+ call->blend_state_info.factor, call->blend_state_info.mask);
|
||||
+ break;
|
||||
+ }
|
||||
+ case DEFERRED_OMSETRENDERTARGETS:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_OMSetRenderTargets(iface, call->render_target_info.num_views,
|
||||
+ ID3D11DeviceContext1_OMSetRenderTargets(iface, call->render_target_info.num_views,
|
||||
+ call->render_target_info.render_targets, call->render_target_info.depth_stencil);
|
||||
+ break;
|
||||
+ }
|
||||
+ case DEFERRED_DSSETSHADER:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_DSSetShader(iface, call->ds_info.shader, NULL, 0);
|
||||
+ ID3D11DeviceContext1_DSSetShader(iface, call->ds_info.shader, NULL, 0);
|
||||
+ break;
|
||||
+ }
|
||||
+ case DEFERRED_HSSETSHADER:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_HSSetShader(iface, call->hs_info.shader, NULL, 0);
|
||||
+ ID3D11DeviceContext1_HSSetShader(iface, call->hs_info.shader, NULL, 0);
|
||||
+ break;
|
||||
+ }
|
||||
+ case DEFERRED_PSSETSHADER:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_PSSetShader(iface, call->ps_info.shader, NULL, 0);
|
||||
+ ID3D11DeviceContext1_PSSetShader(iface, call->ps_info.shader, NULL, 0);
|
||||
+ break;
|
||||
+ }
|
||||
+ case DEFERRED_VSSETSHADER:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_VSSetShader(iface, call->vs_info.shader, NULL, 0);
|
||||
+ ID3D11DeviceContext1_VSSetShader(iface, call->vs_info.shader, NULL, 0);
|
||||
+ break;
|
||||
+ }
|
||||
+ case DEFERRED_DSSETSHADERRESOURCES:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_DSSetShaderResources(iface, call->res_info.start_slot,
|
||||
+ ID3D11DeviceContext1_DSSetShaderResources(iface, call->res_info.start_slot,
|
||||
+ call->res_info.num_views, call->res_info.views);
|
||||
+ break;
|
||||
+ }
|
||||
+ case DEFERRED_PSSETSHADERRESOURCES:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_PSSetShaderResources(iface, call->res_info.start_slot,
|
||||
+ ID3D11DeviceContext1_PSSetShaderResources(iface, call->res_info.start_slot,
|
||||
+ call->res_info.num_views, call->res_info.views);
|
||||
+ break;
|
||||
+ }
|
||||
+ case DEFERRED_DSSETSAMPLERS:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_DSSetSamplers(iface, call->samplers_info.start_slot,
|
||||
+ ID3D11DeviceContext1_DSSetSamplers(iface, call->samplers_info.start_slot,
|
||||
+ call->samplers_info.num_samplers, call->samplers_info.samplers);
|
||||
+ break;
|
||||
+ }
|
||||
+ case DEFERRED_PSSETSAMPLERS:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_PSSetSamplers(iface, call->samplers_info.start_slot,
|
||||
+ ID3D11DeviceContext1_PSSetSamplers(iface, call->samplers_info.start_slot,
|
||||
+ call->samplers_info.num_samplers, call->samplers_info.samplers);
|
||||
+ break;
|
||||
+ }
|
||||
+ case DEFERRED_DSSETCONSTANTBUFFERS:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_DSSetConstantBuffers(iface, call->constant_buffers_info.start_slot,
|
||||
+ ID3D11DeviceContext1_DSSetConstantBuffers(iface, call->constant_buffers_info.start_slot,
|
||||
+ call->constant_buffers_info.num_buffers, call->constant_buffers_info.buffers);
|
||||
+ break;
|
||||
+ }
|
||||
+ case DEFERRED_HSSETCONSTANTBUFFERS:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_HSSetConstantBuffers(iface, call->constant_buffers_info.start_slot,
|
||||
+ ID3D11DeviceContext1_HSSetConstantBuffers(iface, call->constant_buffers_info.start_slot,
|
||||
+ call->constant_buffers_info.num_buffers, call->constant_buffers_info.buffers);
|
||||
+ break;
|
||||
+ }
|
||||
+ case DEFERRED_PSSETCONSTANTBUFFERS:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_PSSetConstantBuffers(iface, call->constant_buffers_info.start_slot,
|
||||
+ ID3D11DeviceContext1_PSSetConstantBuffers(iface, call->constant_buffers_info.start_slot,
|
||||
+ call->constant_buffers_info.num_buffers, call->constant_buffers_info.buffers);
|
||||
+ break;
|
||||
+ }
|
||||
+ case DEFERRED_VSSETCONSTANTBUFFERS:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_VSSetConstantBuffers(iface, call->constant_buffers_info.start_slot,
|
||||
+ ID3D11DeviceContext1_VSSetConstantBuffers(iface, call->constant_buffers_info.start_slot,
|
||||
+ call->constant_buffers_info.num_buffers, call->constant_buffers_info.buffers);
|
||||
+ break;
|
||||
+ }
|
||||
+ case DEFERRED_DRAWINDEXED:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_DrawIndexed(iface, call->draw_indexed_info.count,
|
||||
+ ID3D11DeviceContext1_DrawIndexed(iface, call->draw_indexed_info.count,
|
||||
+ call->draw_indexed_info.start_index, call->draw_indexed_info.base_vertex);
|
||||
+ break;
|
||||
+ }
|
||||
+ case DEFERRED_DRAWINDEXEDINSTANCED:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_DrawIndexedInstanced(iface, call->draw_indexed_inst_info.count_per_instance,
|
||||
+ ID3D11DeviceContext1_DrawIndexedInstanced(iface, call->draw_indexed_inst_info.count_per_instance,
|
||||
+ call->draw_indexed_inst_info.instance_count, call->draw_indexed_inst_info.start_index,
|
||||
+ call->draw_indexed_inst_info.base_vertex, call->draw_indexed_inst_info.start_instance);
|
||||
+ break;
|
||||
@ -573,12 +573,12 @@ index 59b1bc864b..ec02ce6f20 100644
|
||||
+ D3D11_MAPPED_SUBRESOURCE mapped;
|
||||
+ HRESULT hr;
|
||||
+
|
||||
+ hr = ID3D11DeviceContext_Map(iface, call->map_info.resource, call->map_info.subresource_idx,
|
||||
+ hr = ID3D11DeviceContext1_Map(iface, call->map_info.resource, call->map_info.subresource_idx,
|
||||
+ call->map_info.map_type, call->map_info.map_flags, &mapped);
|
||||
+ if (SUCCEEDED(hr))
|
||||
+ {
|
||||
+ memcpy(mapped.pData, call->map_info.buffer, call->map_info.size);
|
||||
+ ID3D11DeviceContext_Unmap(iface, call->map_info.resource, call->map_info.subresource_idx);
|
||||
+ ID3D11DeviceContext1_Unmap(iface, call->map_info.resource, call->map_info.subresource_idx);
|
||||
+ }
|
||||
+ else
|
||||
+ FIXME("Failed to map subresource!\n");
|
||||
@ -587,7 +587,7 @@ index 59b1bc864b..ec02ce6f20 100644
|
||||
+ }
|
||||
+ case DEFERRED_CLEARSTATE:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_ClearState(iface);
|
||||
+ ID3D11DeviceContext1_ClearState(iface);
|
||||
+ break;
|
||||
+ }
|
||||
+ default:
|
||||
@ -725,8 +725,8 @@ index 59b1bc864b..ec02ce6f20 100644
|
||||
static void STDMETHODCALLTYPE d3d_null_wined3d_object_destroyed(void *parent) {}
|
||||
|
||||
static const struct wined3d_parent_ops d3d_null_wined3d_parent_ops =
|
||||
@@ -1133,7 +1824,20 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_ResolveSubresource(ID3D11D
|
||||
static void STDMETHODCALLTYPE d3d11_immediate_context_ExecuteCommandList(ID3D11DeviceContext *iface,
|
||||
@@ -1210,7 +1901,20 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_ResolveSubresource(ID3D11D
|
||||
static void STDMETHODCALLTYPE d3d11_immediate_context_ExecuteCommandList(ID3D11DeviceContext1 *iface,
|
||||
ID3D11CommandList *command_list, BOOL restore_state)
|
||||
{
|
||||
- FIXME("iface %p, command_list %p, restore_state %#x stub!\n", iface, command_list, restore_state);
|
||||
@ -742,12 +742,12 @@ index 59b1bc864b..ec02ce6f20 100644
|
||||
+
|
||||
+ wined3d_mutex_lock();
|
||||
+ exec_deferred_calls(iface, &cmdlist->commands);
|
||||
+ ID3D11DeviceContext_ClearState(iface);
|
||||
+ ID3D11DeviceContext1_ClearState(iface);
|
||||
+ wined3d_mutex_unlock();
|
||||
}
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_immediate_context_HSSetShaderResources(ID3D11DeviceContext *iface,
|
||||
@@ -2693,6 +3397,7 @@ static ULONG STDMETHODCALLTYPE d3d11_deferred_context_Release(ID3D11DeviceContex
|
||||
static void STDMETHODCALLTYPE d3d11_immediate_context_HSSetShaderResources(ID3D11DeviceContext1 *iface,
|
||||
@@ -2941,6 +3645,7 @@ static ULONG STDMETHODCALLTYPE d3d11_deferred_context_Release(ID3D11DeviceContex
|
||||
|
||||
if (!refcount)
|
||||
{
|
||||
@ -755,7 +755,7 @@ index 59b1bc864b..ec02ce6f20 100644
|
||||
wined3d_private_store_cleanup(&context->private_store);
|
||||
ID3D11Device_Release(context->device);
|
||||
HeapFree(GetProcessHeap(), 0, context);
|
||||
@@ -2744,43 +3449,86 @@ static HRESULT STDMETHODCALLTYPE d3d11_deferred_context_SetPrivateDataInterface(
|
||||
@@ -2992,43 +3697,86 @@ static HRESULT STDMETHODCALLTYPE d3d11_deferred_context_SetPrivateDataInterface(
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_VSSetConstantBuffers(ID3D11DeviceContext *iface,
|
||||
UINT start_slot, UINT buffer_count, ID3D11Buffer *const *buffers)
|
||||
{
|
||||
@ -848,7 +848,7 @@ index 59b1bc864b..ec02ce6f20 100644
|
||||
}
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_Draw(ID3D11DeviceContext *iface,
|
||||
@@ -2793,53 +3541,169 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_Draw(ID3D11DeviceContext *i
|
||||
@@ -3041,53 +3789,169 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_Draw(ID3D11DeviceContext *i
|
||||
static HRESULT STDMETHODCALLTYPE d3d11_deferred_context_Map(ID3D11DeviceContext *iface, ID3D11Resource *resource,
|
||||
UINT subresource_idx, D3D11_MAP map_type, UINT map_flags, D3D11_MAPPED_SUBRESOURCE *mapped_subresource)
|
||||
{
|
||||
@ -1027,7 +1027,7 @@ index 59b1bc864b..ec02ce6f20 100644
|
||||
}
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_DrawInstanced(ID3D11DeviceContext *iface,
|
||||
@@ -2868,7 +3732,16 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_GSSetShader(ID3D11DeviceCon
|
||||
@@ -3116,7 +3980,16 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_GSSetShader(ID3D11DeviceCon
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_IASetPrimitiveTopology(ID3D11DeviceContext *iface,
|
||||
D3D11_PRIMITIVE_TOPOLOGY topology)
|
||||
{
|
||||
@ -1045,7 +1045,7 @@ index 59b1bc864b..ec02ce6f20 100644
|
||||
}
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_VSSetShaderResources(ID3D11DeviceContext *iface,
|
||||
@@ -2928,8 +3801,28 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_OMSetRenderTargets(ID3D11De
|
||||
@@ -3176,8 +4049,28 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_OMSetRenderTargets(ID3D11De
|
||||
UINT render_target_view_count, ID3D11RenderTargetView *const *render_target_views,
|
||||
ID3D11DepthStencilView *depth_stencil_view)
|
||||
{
|
||||
@ -1075,7 +1075,7 @@ index 59b1bc864b..ec02ce6f20 100644
|
||||
}
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_OMSetRenderTargetsAndUnorderedAccessViews(
|
||||
@@ -2949,15 +3842,44 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_OMSetRenderTargetsAndUnorde
|
||||
@@ -3197,15 +4090,44 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_OMSetRenderTargetsAndUnorde
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_OMSetBlendState(ID3D11DeviceContext *iface,
|
||||
ID3D11BlendState *blend_state, const float blend_factor[4], UINT sample_mask)
|
||||
{
|
||||
@ -1122,7 +1122,7 @@ index 59b1bc864b..ec02ce6f20 100644
|
||||
}
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_SOSetTargets(ID3D11DeviceContext *iface, UINT buffer_count,
|
||||
@@ -2999,13 +3921,34 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_DispatchIndirect(ID3D11Devi
|
||||
@@ -3247,13 +4169,34 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_DispatchIndirect(ID3D11Devi
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_RSSetState(ID3D11DeviceContext *iface,
|
||||
ID3D11RasterizerState *rasterizer_state)
|
||||
{
|
||||
@ -1159,7 +1159,7 @@ index 59b1bc864b..ec02ce6f20 100644
|
||||
}
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_RSSetScissorRects(ID3D11DeviceContext *iface,
|
||||
@@ -3120,8 +4063,18 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_HSSetShaderResources(ID3D11
|
||||
@@ -3368,8 +4311,18 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_HSSetShaderResources(ID3D11
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_HSSetShader(ID3D11DeviceContext *iface,
|
||||
ID3D11HullShader *shader, ID3D11ClassInstance *const *class_instances, UINT class_instance_count)
|
||||
{
|
||||
@ -1179,7 +1179,7 @@ index 59b1bc864b..ec02ce6f20 100644
|
||||
}
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_HSSetSamplers(ID3D11DeviceContext *iface,
|
||||
@@ -3134,36 +4087,62 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_HSSetSamplers(ID3D11DeviceC
|
||||
@@ -3382,36 +4335,62 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_HSSetSamplers(ID3D11DeviceC
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_HSSetConstantBuffers(ID3D11DeviceContext *iface,
|
||||
UINT start_slot, UINT buffer_count, ID3D11Buffer *const *buffers)
|
||||
{
|
||||
@ -1247,7 +1247,7 @@ index 59b1bc864b..ec02ce6f20 100644
|
||||
}
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_CSSetShaderResources(ID3D11DeviceContext *iface,
|
||||
@@ -3464,7 +4443,15 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_CSGetConstantBuffers(ID3D11
|
||||
@@ -3712,7 +4691,15 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_CSGetConstantBuffers(ID3D11
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_ClearState(ID3D11DeviceContext *iface)
|
||||
{
|
||||
@ -1264,7 +1264,7 @@ index 59b1bc864b..ec02ce6f20 100644
|
||||
}
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_Flush(ID3D11DeviceContext *iface)
|
||||
@@ -3489,9 +4476,29 @@ static UINT STDMETHODCALLTYPE d3d11_deferred_context_GetContextFlags(ID3D11Devic
|
||||
@@ -3737,9 +4724,29 @@ static UINT STDMETHODCALLTYPE d3d11_deferred_context_GetContextFlags(ID3D11Devic
|
||||
static HRESULT STDMETHODCALLTYPE d3d11_deferred_context_FinishCommandList(ID3D11DeviceContext *iface,
|
||||
BOOL restore, ID3D11CommandList **command_list)
|
||||
{
|
||||
@ -1296,15 +1296,15 @@ index 59b1bc864b..ec02ce6f20 100644
|
||||
}
|
||||
|
||||
static const struct ID3D11DeviceContextVtbl d3d11_deferred_context_vtbl =
|
||||
@@ -4280,6 +5287,8 @@ static HRESULT STDMETHODCALLTYPE d3d11_device_CreateDeferredContext(ID3D11Device
|
||||
object->device = iface;
|
||||
@@ -4355,6 +5362,8 @@ static HRESULT STDMETHODCALLTYPE d3d11_device_CreateDeferredContext(ID3D11Device
|
||||
object->device = (ID3D11Device*)&device->ID3D11Device1_iface;
|
||||
object->refcount = 1;
|
||||
|
||||
+ list_init(&object->commands);
|
||||
+
|
||||
ID3D11Device_AddRef(iface);
|
||||
ID3D11Device_AddRef(object->device);
|
||||
wined3d_private_store_init(&object->private_store);
|
||||
|
||||
--
|
||||
2.12.2
|
||||
1.9.1
|
||||
|
||||
|
@ -1,14 +1,14 @@
|
||||
From d9227039538ab84f28787ab5ca7fa74a8755740f Mon Sep 17 00:00:00 2001
|
||||
From fc3937794343611ef4bedefc4829ed06ceee8f64 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Tue, 24 Jan 2017 04:10:12 +0100
|
||||
Subject: d3d11: Implement CSSetShader for deferred contexts.
|
||||
Subject: [PATCH] d3d11: Implement CSSetShader for deferred contexts.
|
||||
|
||||
---
|
||||
dlls/d3d11/device.c | 29 ++++++++++++++++++++++++++++-
|
||||
1 file changed, 28 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
|
||||
index 4ee9d500802..0bb973e3933 100644
|
||||
index 2f13e85..e54ccaf 100644
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -40,6 +40,7 @@ enum deferred_cmd
|
||||
@ -44,19 +44,19 @@ index 4ee9d500802..0bb973e3933 100644
|
||||
case DEFERRED_DSSETSHADER:
|
||||
{
|
||||
if (call->ds_info.shader)
|
||||
@@ -491,6 +503,11 @@ static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *command
|
||||
@@ -491,6 +503,11 @@ static void exec_deferred_calls(ID3D11DeviceContext1 *iface, struct list *comman
|
||||
call->render_target_info.render_targets, call->render_target_info.depth_stencil);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_CSSETSHADER:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_CSSetShader(iface, call->cs_info.shader, NULL, 0);
|
||||
+ ID3D11DeviceContext1_CSSetShader(iface, call->cs_info.shader, NULL, 0);
|
||||
+ break;
|
||||
+ }
|
||||
case DEFERRED_DSSETSHADER:
|
||||
{
|
||||
ID3D11DeviceContext_DSSetShader(iface, call->ds_info.shader, NULL, 0);
|
||||
@@ -3636,8 +3653,18 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_CSSetUnorderedAccessViews(I
|
||||
ID3D11DeviceContext1_DSSetShader(iface, call->ds_info.shader, NULL, 0);
|
||||
@@ -4410,8 +4427,18 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_CSSetUnorderedAccessViews(I
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_CSSetShader(ID3D11DeviceContext *iface,
|
||||
ID3D11ComputeShader *shader, ID3D11ClassInstance *const *class_instances, UINT class_instance_count)
|
||||
{
|
||||
@ -77,5 +77,5 @@ index 4ee9d500802..0bb973e3933 100644
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_CSSetSamplers(ID3D11DeviceContext *iface,
|
||||
--
|
||||
2.11.0
|
||||
1.9.1
|
||||
|
||||
|
@ -1,14 +1,14 @@
|
||||
From 56e9fa8ef7ccfd0d98e29bfac9ee44c08bb8e891 Mon Sep 17 00:00:00 2001
|
||||
From ac4e13da593e8d6fcd868e95414eb6395fb28e44 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Tue, 24 Jan 2017 04:21:47 +0100
|
||||
Subject: d3d11: Implement CSSetConstantBuffers for deferred contexts.
|
||||
Subject: [PATCH] d3d11: Implement CSSetConstantBuffers for deferred contexts.
|
||||
|
||||
---
|
||||
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 0bb973e3933..38b407b22ee 100644
|
||||
index e54ccaf..8fee8cd 100644
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -52,6 +52,7 @@ enum deferred_cmd
|
||||
@ -36,20 +36,20 @@ index 0bb973e3933..38b407b22ee 100644
|
||||
case DEFERRED_DSSETCONSTANTBUFFERS:
|
||||
case DEFERRED_HSSETCONSTANTBUFFERS:
|
||||
case DEFERRED_PSSETCONSTANTBUFFERS:
|
||||
@@ -552,6 +554,12 @@ static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *command
|
||||
@@ -552,6 +554,12 @@ static void exec_deferred_calls(ID3D11DeviceContext1 *iface, struct list *comman
|
||||
call->samplers_info.num_samplers, call->samplers_info.samplers);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_CSSETCONSTANTBUFFERS:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_CSSetConstantBuffers(iface, call->constant_buffers_info.start_slot,
|
||||
+ ID3D11DeviceContext1_CSSetConstantBuffers(iface, call->constant_buffers_info.start_slot,
|
||||
+ call->constant_buffers_info.num_buffers, call->constant_buffers_info.buffers);
|
||||
+ break;
|
||||
+ }
|
||||
case DEFERRED_DSSETCONSTANTBUFFERS:
|
||||
{
|
||||
ID3D11DeviceContext_DSSetConstantBuffers(iface, call->constant_buffers_info.start_slot,
|
||||
@@ -3677,8 +3685,12 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_CSSetSamplers(ID3D11DeviceC
|
||||
ID3D11DeviceContext1_DSSetConstantBuffers(iface, call->constant_buffers_info.start_slot,
|
||||
@@ -4451,8 +4459,12 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_CSSetSamplers(ID3D11DeviceC
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_CSSetConstantBuffers(ID3D11DeviceContext *iface,
|
||||
UINT start_slot, UINT buffer_count, ID3D11Buffer *const *buffers)
|
||||
{
|
||||
@ -64,5 +64,5 @@ index 0bb973e3933..38b407b22ee 100644
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_VSGetConstantBuffers(ID3D11DeviceContext *iface,
|
||||
--
|
||||
2.11.0
|
||||
1.9.1
|
||||
|
||||
|
@ -1,14 +1,14 @@
|
||||
From aab89808ea9387070c3ac1a1be56ac498538c80e Mon Sep 17 00:00:00 2001
|
||||
From 300aab481c30eddac58cbf7c9a418d3c0f7bb4e8 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Tue, 24 Jan 2017 04:29:10 +0100
|
||||
Subject: d3d11: Implement Dispatch for deferred contexts.
|
||||
Subject: [PATCH] d3d11: Implement Dispatch for deferred contexts.
|
||||
|
||||
---
|
||||
dlls/d3d11/device.c | 30 +++++++++++++++++++++++++++++-
|
||||
1 file changed, 29 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
|
||||
index 38b407b22ee..644728f178a 100644
|
||||
index 8fee8cd..b1f148a 100644
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -62,6 +62,7 @@ enum deferred_cmd
|
||||
@ -43,20 +43,20 @@ index 38b407b22ee..644728f178a 100644
|
||||
case DEFERRED_CLEARSTATE:
|
||||
{
|
||||
break; /* nothing to do */
|
||||
@@ -614,6 +625,12 @@ static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *command
|
||||
@@ -614,6 +625,12 @@ static void exec_deferred_calls(ID3D11DeviceContext1 *iface, struct list *comman
|
||||
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_DISPATCH:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_Dispatch(iface, call->dispatch_info.count_x,
|
||||
+ ID3D11DeviceContext1_Dispatch(iface, call->dispatch_info.count_x,
|
||||
+ call->dispatch_info.count_y, call->dispatch_info.count_z);
|
||||
+ break;
|
||||
+ }
|
||||
case DEFERRED_CLEARSTATE:
|
||||
{
|
||||
ID3D11DeviceContext_ClearState(iface);
|
||||
@@ -3407,8 +3424,19 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_DrawInstancedIndirect(ID3D1
|
||||
ID3D11DeviceContext1_ClearState(iface);
|
||||
@@ -4181,8 +4198,19 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_DrawInstancedIndirect(ID3D1
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_Dispatch(ID3D11DeviceContext *iface,
|
||||
UINT thread_group_count_x, UINT thread_group_count_y, UINT thread_group_count_z)
|
||||
{
|
||||
@ -78,5 +78,5 @@ index 38b407b22ee..644728f178a 100644
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_DispatchIndirect(ID3D11DeviceContext *iface,
|
||||
--
|
||||
2.11.0
|
||||
1.9.1
|
||||
|
||||
|
@ -1,14 +1,15 @@
|
||||
From a36710e9b8b7c3bef157b29baac3911c633f8e38 Mon Sep 17 00:00:00 2001
|
||||
From 116636717ee333aff38b77530fbcb885ad46f0a1 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Tue, 24 Jan 2017 04:48:56 +0100
|
||||
Subject: d3d11: Implement CSSetUnorderedAccessViews for deferred contexts.
|
||||
Subject: [PATCH] d3d11: Implement CSSetUnorderedAccessViews for deferred
|
||||
contexts.
|
||||
|
||||
---
|
||||
dlls/d3d11/device.c | 45 ++++++++++++++++++++++++++++++++++++++++++++-
|
||||
1 file changed, 44 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
|
||||
index 644728f178a..8dd19910b7c 100644
|
||||
index b1f148a..3c475e7 100644
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -58,6 +58,8 @@ enum deferred_cmd
|
||||
@ -50,20 +51,20 @@ index 644728f178a..8dd19910b7c 100644
|
||||
case DEFERRED_DRAWINDEXED:
|
||||
case DEFERRED_DRAWINDEXEDINSTANCED:
|
||||
{
|
||||
@@ -595,6 +613,12 @@ static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *command
|
||||
@@ -595,6 +613,12 @@ static void exec_deferred_calls(ID3D11DeviceContext1 *iface, struct list *comman
|
||||
call->constant_buffers_info.num_buffers, call->constant_buffers_info.buffers);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_CSSETUNORDEREDACCESSVIEWS:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_CSSetUnorderedAccessViews(iface, call->unordered_view.start_slot,
|
||||
+ ID3D11DeviceContext1_CSSetUnorderedAccessViews(iface, call->unordered_view.start_slot,
|
||||
+ call->unordered_view.num_views, call->unordered_view.views, call->unordered_view.initial_counts);
|
||||
+ break;
|
||||
+ }
|
||||
case DEFERRED_DRAWINDEXED:
|
||||
{
|
||||
ID3D11DeviceContext_DrawIndexed(iface, call->draw_indexed_info.count,
|
||||
@@ -3682,8 +3706,27 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_CSSetShaderResources(ID3D11
|
||||
ID3D11DeviceContext1_DrawIndexed(iface, call->draw_indexed_info.count,
|
||||
@@ -4456,8 +4480,27 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_CSSetShaderResources(ID3D11
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_CSSetUnorderedAccessViews(ID3D11DeviceContext *iface,
|
||||
UINT start_slot, UINT view_count, ID3D11UnorderedAccessView *const *views, const UINT *initial_counts)
|
||||
{
|
||||
@ -93,5 +94,5 @@ index 644728f178a..8dd19910b7c 100644
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_CSSetShader(ID3D11DeviceContext *iface,
|
||||
--
|
||||
2.11.0
|
||||
1.9.1
|
||||
|
||||
|
@ -1,14 +1,14 @@
|
||||
From 8adc88c6d9ab48d4014486775fcff6d869ae44ed Mon Sep 17 00:00:00 2001
|
||||
From 27ae92005a2782ab4465f1d90cecc8c328a27bc7 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Tue, 24 Jan 2017 05:06:12 +0100
|
||||
Subject: d3d11: Implement ClearRenderTargetView for deferred contexts.
|
||||
Subject: [PATCH] d3d11: Implement ClearRenderTargetView for deferred contexts.
|
||||
|
||||
---
|
||||
dlls/d3d11/device.c | 33 ++++++++++++++++++++++++++++++++-
|
||||
1 file changed, 32 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
|
||||
index 8dd19910b7c..46dddbd4d6c 100644
|
||||
index 3c475e7..3c41fc3 100644
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -67,6 +67,7 @@ enum deferred_cmd
|
||||
@ -44,20 +44,20 @@ index 8dd19910b7c..46dddbd4d6c 100644
|
||||
default:
|
||||
{
|
||||
FIXME("Unimplemented command type %u\n", call->cmd);
|
||||
@@ -660,6 +672,12 @@ static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *command
|
||||
ID3D11DeviceContext_ClearState(iface);
|
||||
@@ -660,6 +672,12 @@ static void exec_deferred_calls(ID3D11DeviceContext1 *iface, struct list *comman
|
||||
ID3D11DeviceContext1_ClearState(iface);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_CLEARRENDERTARGETVIEW:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_ClearRenderTargetView(iface, call->clear_rtv_info.rtv,
|
||||
+ ID3D11DeviceContext1_ClearRenderTargetView(iface, call->clear_rtv_info.rtv,
|
||||
+ call->clear_rtv_info.color);
|
||||
+ break;
|
||||
+ }
|
||||
default:
|
||||
{
|
||||
FIXME("Unimplemented command type %u\n", call->cmd);
|
||||
@@ -3542,8 +3560,21 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_CopyStructureCount(ID3D11De
|
||||
@@ -4316,8 +4334,21 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_CopyStructureCount(ID3D11De
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_ClearRenderTargetView(ID3D11DeviceContext *iface,
|
||||
ID3D11RenderTargetView *render_target_view, const float color_rgba[4])
|
||||
{
|
||||
@ -81,5 +81,5 @@ index 8dd19910b7c..46dddbd4d6c 100644
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_ClearUnorderedAccessViewUint(ID3D11DeviceContext *iface,
|
||||
--
|
||||
2.11.0
|
||||
1.9.1
|
||||
|
||||
|
@ -1,14 +1,14 @@
|
||||
From de1e3912b0b481e70ab6a4f739e8b2441f741be7 Mon Sep 17 00:00:00 2001
|
||||
From c47799ef188ff3e15573bfb8811193918afffea1 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Tue, 24 Jan 2017 05:13:46 +0100
|
||||
Subject: d3d11: Implement Draw for deferred contexts.
|
||||
Subject: [PATCH] d3d11: Implement Draw for deferred contexts.
|
||||
|
||||
---
|
||||
dlls/d3d11/device.c | 24 +++++++++++++++++++++++-
|
||||
1 file changed, 23 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
|
||||
index 46dddbd4d6c..1dfd6de7bde 100644
|
||||
index 3c41fc3..1bf9caf 100644
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -60,6 +60,7 @@ enum deferred_cmd
|
||||
@ -39,19 +39,19 @@ index 46dddbd4d6c..1dfd6de7bde 100644
|
||||
case DEFERRED_DRAWINDEXED:
|
||||
case DEFERRED_DRAWINDEXEDINSTANCED:
|
||||
{
|
||||
@@ -631,6 +638,11 @@ static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *command
|
||||
@@ -631,6 +638,11 @@ static void exec_deferred_calls(ID3D11DeviceContext1 *iface, struct list *comman
|
||||
call->unordered_view.num_views, call->unordered_view.views, call->unordered_view.initial_counts);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_DRAW:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_Draw(iface, call->draw_info.count, call->draw_info.start);
|
||||
+ ID3D11DeviceContext1_Draw(iface, call->draw_info.count, call->draw_info.start);
|
||||
+ break;
|
||||
+ }
|
||||
case DEFERRED_DRAWINDEXED:
|
||||
{
|
||||
ID3D11DeviceContext_DrawIndexed(iface, call->draw_indexed_info.count,
|
||||
@@ -3090,8 +3102,18 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_DrawIndexed(ID3D11DeviceCon
|
||||
ID3D11DeviceContext1_DrawIndexed(iface, call->draw_indexed_info.count,
|
||||
@@ -3866,8 +3878,18 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_DrawIndexed(ID3D11DeviceCon
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_Draw(ID3D11DeviceContext *iface,
|
||||
UINT vertex_count, UINT start_vertex_location)
|
||||
{
|
||||
@ -72,5 +72,5 @@ index 46dddbd4d6c..1dfd6de7bde 100644
|
||||
|
||||
static HRESULT STDMETHODCALLTYPE d3d11_deferred_context_Map(ID3D11DeviceContext *iface, ID3D11Resource *resource,
|
||||
--
|
||||
2.11.0
|
||||
1.9.1
|
||||
|
||||
|
@ -1,14 +1,14 @@
|
||||
From da527f6e90d4f3725882e7501199b0645e52685c Mon Sep 17 00:00:00 2001
|
||||
From b871fc2d2705efd89415626b9334a508f3ba97b4 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Tue, 24 Jan 2017 05:29:10 +0100
|
||||
Subject: d3d11: Implement ClearDepthStencilView for deferred contexts.
|
||||
Subject: [PATCH] d3d11: Implement ClearDepthStencilView for deferred contexts.
|
||||
|
||||
---
|
||||
dlls/d3d11/device.c | 36 +++++++++++++++++++++++++++++++++++-
|
||||
1 file changed, 35 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
|
||||
index 1dfd6de7bde..83d97665ed5 100644
|
||||
index 1bf9caf..7f84cd4 100644
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -69,6 +69,7 @@ enum deferred_cmd
|
||||
@ -46,7 +46,7 @@ index 1dfd6de7bde..83d97665ed5 100644
|
||||
default:
|
||||
{
|
||||
FIXME("Unimplemented command type %u\n", call->cmd);
|
||||
@@ -690,6 +704,13 @@ static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *command
|
||||
@@ -690,6 +704,13 @@ static void exec_deferred_calls(ID3D11DeviceContext1 *iface, struct list *comman
|
||||
call->clear_rtv_info.color);
|
||||
break;
|
||||
}
|
||||
@ -60,7 +60,7 @@ index 1dfd6de7bde..83d97665ed5 100644
|
||||
default:
|
||||
{
|
||||
FIXME("Unimplemented command type %u\n", call->cmd);
|
||||
@@ -3616,8 +3637,21 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_ClearUnorderedAccessViewFlo
|
||||
@@ -4390,8 +4411,21 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_ClearUnorderedAccessViewFlo
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_ClearDepthStencilView(ID3D11DeviceContext *iface,
|
||||
ID3D11DepthStencilView *depth_stencil_view, UINT flags, FLOAT depth, UINT8 stencil)
|
||||
{
|
||||
@ -84,5 +84,5 @@ index 1dfd6de7bde..83d97665ed5 100644
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_GenerateMips(ID3D11DeviceContext *iface,
|
||||
--
|
||||
2.11.0
|
||||
1.9.1
|
||||
|
||||
|
@ -1,14 +1,14 @@
|
||||
From 848ac26c5b1e6551639fbef1a03e93ca14d934a2 Mon Sep 17 00:00:00 2001
|
||||
From acca9a7bb557d405c74dbaf1153c3d0642780d03 Mon Sep 17 00:00:00 2001
|
||||
From: Kimmo Myllyvirta <kimmo.myllyvirta@gmail.com>
|
||||
Date: Fri, 7 Jul 2017 11:01:07 +0300
|
||||
Subject: d3d11: Implement GSSetShader for deferred contexts.
|
||||
Subject: [PATCH] d3d11: Implement GSSetShader for deferred contexts.
|
||||
|
||||
---
|
||||
dlls/d3d11/device.c | 29 ++++++++++++++++++++++++++++-
|
||||
1 file changed, 28 insertions(+), 1 deletion(-)
|
||||
dlls/d3d11/device.c | 31 +++++++++++++++++++++++++++++--
|
||||
1 file changed, 29 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
|
||||
index 8642bf50fb1..98aa5ef6a77 100644
|
||||
index 7f84cd4..64480f4 100644
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -42,6 +42,7 @@ enum deferred_cmd
|
||||
@ -44,19 +44,28 @@ index 8642bf50fb1..98aa5ef6a77 100644
|
||||
case DEFERRED_HSSETSHADER:
|
||||
{
|
||||
if (call->hs_info.shader)
|
||||
@@ -577,6 +589,11 @@ static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *command
|
||||
ID3D11DeviceContext_DSSetShader(iface, call->ds_info.shader, NULL, 0);
|
||||
@@ -577,6 +589,11 @@ static void exec_deferred_calls(ID3D11DeviceContext1 *iface, struct list *comman
|
||||
ID3D11DeviceContext1_DSSetShader(iface, call->ds_info.shader, NULL, 0);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_GSSETSHADER:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_GSSetShader(iface, call->gs_info.shader, NULL, 0);
|
||||
+ ID3D11DeviceContext1_GSSetShader(iface, call->gs_info.shader, NULL, 0);
|
||||
+ break;
|
||||
+ }
|
||||
case DEFERRED_HSSETSHADER:
|
||||
{
|
||||
ID3D11DeviceContext_HSSetShader(iface, call->hs_info.shader, NULL, 0);
|
||||
@@ -3875,8 +3892,18 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_GSSetConstantBuffers(ID3D11
|
||||
ID3D11DeviceContext1_HSSetShader(iface, call->hs_info.shader, NULL, 0);
|
||||
@@ -706,7 +723,7 @@ static void exec_deferred_calls(ID3D11DeviceContext1 *iface, struct list *comman
|
||||
}
|
||||
case DEFERRED_CLEARDEPTHSTENCILVIEW:
|
||||
{
|
||||
- ID3D11DeviceContext_ClearDepthStencilView(iface, call->clear_depth_info.view,
|
||||
+ ID3D11DeviceContext1_ClearDepthStencilView(iface, call->clear_depth_info.view,
|
||||
call->clear_depth_info.flags, call->clear_depth_info.depth,
|
||||
call->clear_depth_info.stencil);
|
||||
break;
|
||||
@@ -4100,8 +4117,18 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_GSSetConstantBuffers(ID3D11
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_GSSetShader(ID3D11DeviceContext *iface,
|
||||
ID3D11GeometryShader *shader, ID3D11ClassInstance *const *class_instances, UINT class_instance_count)
|
||||
{
|
||||
@ -77,5 +86,5 @@ index 8642bf50fb1..98aa5ef6a77 100644
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_IASetPrimitiveTopology(ID3D11DeviceContext *iface,
|
||||
--
|
||||
2.13.1
|
||||
1.9.1
|
||||
|
||||
|
@ -1,14 +1,14 @@
|
||||
From 4e7076c5cc9806ce0e0218588ea587cfe3db8951 Mon Sep 17 00:00:00 2001
|
||||
From 9a1f120b818e4368554b751ee02749220dfa8e4e Mon Sep 17 00:00:00 2001
|
||||
From: Kimmo Myllyvirta <kimmo.myllyvirta@gmail.com>
|
||||
Date: Fri, 7 Jul 2017 11:04:41 +0300
|
||||
Subject: d3d11: Implement GSSetConstantBuffers for deferred contexts.
|
||||
Subject: [PATCH] d3d11: Implement GSSetConstantBuffers for deferred contexts.
|
||||
|
||||
---
|
||||
dlls/d3d11/device.c | 18 +++++++++++++++---
|
||||
1 file changed, 15 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
|
||||
index 98aa5ef6a77..014f39f74c1 100644
|
||||
index 64480f4..87c2466 100644
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -55,6 +55,7 @@ enum deferred_cmd
|
||||
@ -38,20 +38,20 @@ index 98aa5ef6a77..014f39f74c1 100644
|
||||
case DEFERRED_HSSETCONSTANTBUFFERS:
|
||||
case DEFERRED_PSSETCONSTANTBUFFERS:
|
||||
case DEFERRED_VSSETCONSTANTBUFFERS:
|
||||
@@ -645,6 +647,12 @@ static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *command
|
||||
@@ -645,6 +647,12 @@ static void exec_deferred_calls(ID3D11DeviceContext1 *iface, struct list *comman
|
||||
call->constant_buffers_info.num_buffers, call->constant_buffers_info.buffers);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_GSSETCONSTANTBUFFERS:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_GSSetConstantBuffers(iface, call->constant_buffers_info.start_slot,
|
||||
+ ID3D11DeviceContext1_GSSetConstantBuffers(iface, call->constant_buffers_info.start_slot,
|
||||
+ call->constant_buffers_info.num_buffers, call->constant_buffers_info.buffers);
|
||||
+ break;
|
||||
+ }
|
||||
case DEFERRED_HSSETCONSTANTBUFFERS:
|
||||
{
|
||||
ID3D11DeviceContext_HSSetConstantBuffers(iface, call->constant_buffers_info.start_slot,
|
||||
@@ -3885,8 +3893,12 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_DrawInstanced(ID3D11DeviceC
|
||||
ID3D11DeviceContext1_HSSetConstantBuffers(iface, call->constant_buffers_info.start_slot,
|
||||
@@ -4110,8 +4118,12 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_DrawInstanced(ID3D11DeviceC
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_GSSetConstantBuffers(ID3D11DeviceContext *iface,
|
||||
UINT start_slot, UINT buffer_count, ID3D11Buffer *const *buffers)
|
||||
{
|
||||
@ -66,5 +66,5 @@ index 98aa5ef6a77..014f39f74c1 100644
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_GSSetShader(ID3D11DeviceContext *iface,
|
||||
--
|
||||
2.13.1
|
||||
1.9.1
|
||||
|
||||
|
@ -1,14 +1,14 @@
|
||||
From bde4fe1e674ff4dc32e9417b3ef020eb96cf6700 Mon Sep 17 00:00:00 2001
|
||||
From f62f3e2af2ecced548978d05144736dc4f40a158 Mon Sep 17 00:00:00 2001
|
||||
From: Kimmo Myllyvirta <kimmo.myllyvirta@gmail.com>
|
||||
Date: Fri, 7 Jul 2017 11:07:15 +0300
|
||||
Subject: d3d11: Implement CSSetShaderResources for deferred contexts.
|
||||
Subject: [PATCH] d3d11: Implement CSSetShaderResources for deferred contexts.
|
||||
|
||||
---
|
||||
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 014f39f74c1..ae92b190de5 100644
|
||||
index 87c2466..d0e9ebb 100644
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -47,6 +47,7 @@ enum deferred_cmd
|
||||
@ -36,20 +36,20 @@ index 014f39f74c1..ae92b190de5 100644
|
||||
case DEFERRED_DSSETSHADERRESOURCES:
|
||||
case DEFERRED_PSSETSHADERRESOURCES:
|
||||
{
|
||||
@@ -611,6 +613,12 @@ static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *command
|
||||
ID3D11DeviceContext_VSSetShader(iface, call->vs_info.shader, NULL, 0);
|
||||
@@ -611,6 +613,12 @@ static void exec_deferred_calls(ID3D11DeviceContext1 *iface, struct list *comman
|
||||
ID3D11DeviceContext1_VSSetShader(iface, call->vs_info.shader, NULL, 0);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_CSSETSHADERRESOURCES:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_CSSetShaderResources(iface, call->res_info.start_slot,
|
||||
+ ID3D11DeviceContext1_CSSetShaderResources(iface, call->res_info.start_slot,
|
||||
+ call->res_info.num_views, call->res_info.views);
|
||||
+ break;
|
||||
+ }
|
||||
case DEFERRED_DSSETSHADERRESOURCES:
|
||||
{
|
||||
ID3D11DeviceContext_DSSetShaderResources(iface, call->res_info.start_slot,
|
||||
@@ -4374,8 +4382,12 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_DSSetConstantBuffers(ID3D11
|
||||
ID3D11DeviceContext1_DSSetShaderResources(iface, call->res_info.start_slot,
|
||||
@@ -4599,8 +4607,12 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_DSSetConstantBuffers(ID3D11
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_CSSetShaderResources(ID3D11DeviceContext *iface,
|
||||
UINT start_slot, UINT view_count, ID3D11ShaderResourceView *const *views)
|
||||
{
|
||||
@ -64,5 +64,5 @@ index 014f39f74c1..ae92b190de5 100644
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_CSSetUnorderedAccessViews(ID3D11DeviceContext *iface,
|
||||
--
|
||||
2.13.1
|
||||
1.9.1
|
||||
|
||||
|
@ -1,14 +1,14 @@
|
||||
From d55adbf05b349aa1cd3b6134cd5d9b4c211ff6db Mon Sep 17 00:00:00 2001
|
||||
From 9e12a69e96e45dc449463ef94d7747f68c821303 Mon Sep 17 00:00:00 2001
|
||||
From: Kimmo Myllyvirta <kimmo.myllyvirta@gmail.com>
|
||||
Date: Fri, 7 Jul 2017 11:09:57 +0300
|
||||
Subject: d3d11: Implement GSSetShaderResources for deferred contexts.
|
||||
Subject: [PATCH] d3d11: Implement GSSetShaderResources for deferred contexts.
|
||||
|
||||
---
|
||||
dlls/d3d11/device.c | 18 ++++++++++++++++--
|
||||
1 file changed, 16 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
|
||||
index ae92b190de5..917101d055c 100644
|
||||
index d0e9ebb..7f835e8 100644
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -49,6 +49,7 @@ enum deferred_cmd
|
||||
@ -37,20 +37,20 @@ index ae92b190de5..917101d055c 100644
|
||||
case DEFERRED_PSSETSHADERRESOURCES:
|
||||
{
|
||||
for (i = 0; i < call->res_info.num_views; i++)
|
||||
@@ -625,6 +628,12 @@ static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *command
|
||||
@@ -625,6 +628,12 @@ static void exec_deferred_calls(ID3D11DeviceContext1 *iface, struct list *comman
|
||||
call->res_info.num_views, call->res_info.views);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_GSSETSHADERRESOURCES:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_GSSetShaderResources(iface, call->res_info.start_slot,
|
||||
+ ID3D11DeviceContext1_GSSetShaderResources(iface, call->res_info.start_slot,
|
||||
+ call->res_info.num_views, call->res_info.views);
|
||||
+ break;
|
||||
+ }
|
||||
case DEFERRED_PSSETSHADERRESOURCES:
|
||||
{
|
||||
ID3D11DeviceContext_PSSetShaderResources(iface, call->res_info.start_slot,
|
||||
@@ -3984,7 +3993,12 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_SetPredication(ID3D11Device
|
||||
ID3D11DeviceContext1_PSSetShaderResources(iface, call->res_info.start_slot,
|
||||
@@ -4209,7 +4218,12 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_SetPredication(ID3D11Device
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_GSSetShaderResources(ID3D11DeviceContext *iface,
|
||||
UINT start_slot, UINT view_count, ID3D11ShaderResourceView *const *views)
|
||||
{
|
||||
@ -65,5 +65,5 @@ index ae92b190de5..917101d055c 100644
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_GSSetSamplers(ID3D11DeviceContext *iface,
|
||||
--
|
||||
2.13.1
|
||||
1.9.1
|
||||
|
||||
|
@ -1,14 +1,14 @@
|
||||
From 47adec4e3c5117ac8c2a9c5c48659298aff77003 Mon Sep 17 00:00:00 2001
|
||||
From 7f97c88879938cc72d3e8372ba74ff40b3371815 Mon Sep 17 00:00:00 2001
|
||||
From: Kimmo Myllyvirta <kimmo.myllyvirta@gmail.com>
|
||||
Date: Fri, 7 Jul 2017 11:11:41 +0300
|
||||
Subject: d3d11: Implement HSSetShaderResources for deferred contexts.
|
||||
Subject: [PATCH] d3d11: Implement HSSetShaderResources for deferred contexts.
|
||||
|
||||
---
|
||||
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 917101d055c..f2ed01bf532 100644
|
||||
index 7f835e8..2bdaa67 100644
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -50,6 +50,7 @@ enum deferred_cmd
|
||||
@ -36,20 +36,20 @@ index 917101d055c..f2ed01bf532 100644
|
||||
case DEFERRED_PSSETSHADERRESOURCES:
|
||||
{
|
||||
for (i = 0; i < call->res_info.num_views; i++)
|
||||
@@ -634,6 +636,12 @@ static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *command
|
||||
@@ -634,6 +636,12 @@ static void exec_deferred_calls(ID3D11DeviceContext1 *iface, struct list *comman
|
||||
call->res_info.num_views, call->res_info.views);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_HSSETSHADERRESOURCES:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_HSSetShaderResources(iface, call->res_info.start_slot,
|
||||
+ ID3D11DeviceContext1_HSSetShaderResources(iface, call->res_info.start_slot,
|
||||
+ call->res_info.num_views, call->res_info.views);
|
||||
+ break;
|
||||
+ }
|
||||
case DEFERRED_PSSETSHADERRESOURCES:
|
||||
{
|
||||
ID3D11DeviceContext_PSSetShaderResources(iface, call->res_info.start_slot,
|
||||
@@ -4304,8 +4312,12 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_ExecuteCommandList(ID3D11De
|
||||
ID3D11DeviceContext1_PSSetShaderResources(iface, call->res_info.start_slot,
|
||||
@@ -4529,8 +4537,12 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_ExecuteCommandList(ID3D11De
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_HSSetShaderResources(ID3D11DeviceContext *iface,
|
||||
UINT start_slot, UINT view_count, ID3D11ShaderResourceView *const *views)
|
||||
{
|
||||
@ -64,5 +64,5 @@ index 917101d055c..f2ed01bf532 100644
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_HSSetShader(ID3D11DeviceContext *iface,
|
||||
--
|
||||
2.13.1
|
||||
1.9.1
|
||||
|
||||
|
@ -1,14 +1,14 @@
|
||||
From 5fb7380f08a868c176d6c369e9390ff64274aa6e Mon Sep 17 00:00:00 2001
|
||||
From 3e7cd344b0e07391ed7f859ed47c362e8f69128a Mon Sep 17 00:00:00 2001
|
||||
From: Kimmo Myllyvirta <kimmo.myllyvirta@gmail.com>
|
||||
Date: Fri, 7 Jul 2017 11:13:47 +0300
|
||||
Subject: d3d11: Implement VSSetShaderResources for deferred contexts.
|
||||
Subject: [PATCH] d3d11: Implement VSSetShaderResources for deferred contexts.
|
||||
|
||||
---
|
||||
dlls/d3d11/device.c | 17 +++++++++++++++--
|
||||
1 file changed, 15 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
|
||||
index f2ed01bf532..c4cef99ba26 100644
|
||||
index 2bdaa67..dfafdcd 100644
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -52,6 +52,7 @@ enum deferred_cmd
|
||||
@ -36,20 +36,20 @@ index f2ed01bf532..c4cef99ba26 100644
|
||||
{
|
||||
for (i = 0; i < call->res_info.num_views; i++)
|
||||
{
|
||||
@@ -648,6 +650,12 @@ static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *command
|
||||
@@ -648,6 +650,12 @@ static void exec_deferred_calls(ID3D11DeviceContext1 *iface, struct list *comman
|
||||
call->res_info.num_views, call->res_info.views);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_VSSETSHADERRESOURCES:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_VSSetShaderResources(iface, call->res_info.start_slot,
|
||||
+ ID3D11DeviceContext1_VSSetShaderResources(iface, call->res_info.start_slot,
|
||||
+ call->res_info.num_views, call->res_info.views);
|
||||
+ break;
|
||||
+ }
|
||||
case DEFERRED_DSSETSAMPLERS:
|
||||
{
|
||||
ID3D11DeviceContext_DSSetSamplers(iface, call->samplers_info.start_slot,
|
||||
@@ -3961,7 +3969,12 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_IASetPrimitiveTopology(ID3D
|
||||
ID3D11DeviceContext1_DSSetSamplers(iface, call->samplers_info.start_slot,
|
||||
@@ -4186,7 +4194,12 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_IASetPrimitiveTopology(ID3D
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_VSSetShaderResources(ID3D11DeviceContext *iface,
|
||||
UINT start_slot, UINT view_count, ID3D11ShaderResourceView *const *views)
|
||||
{
|
||||
@ -64,5 +64,5 @@ index f2ed01bf532..c4cef99ba26 100644
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_VSSetSamplers(ID3D11DeviceContext *iface,
|
||||
--
|
||||
2.13.1
|
||||
1.9.1
|
||||
|
||||
|
@ -1,14 +1,14 @@
|
||||
From ebe0004e3acb6b89d649756bc27b32b92ee3d540 Mon Sep 17 00:00:00 2001
|
||||
From 207460a669131fc04d9aec1575080b7fb1e820a9 Mon Sep 17 00:00:00 2001
|
||||
From: Kimmo Myllyvirta <kimmo.myllyvirta@gmail.com>
|
||||
Date: Fri, 7 Jul 2017 11:15:31 +0300
|
||||
Subject: d3d11: Implement CSSetSamplers for deferred contexts.
|
||||
Subject: [PATCH] d3d11: Implement CSSetSamplers for deferred contexts.
|
||||
|
||||
---
|
||||
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 c4cef99ba26..1fe04efa5c3 100644
|
||||
index dfafdcd..7e5f191 100644
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -54,6 +54,7 @@ enum deferred_cmd
|
||||
@ -36,20 +36,20 @@ index c4cef99ba26..1fe04efa5c3 100644
|
||||
case DEFERRED_DSSETSAMPLERS:
|
||||
case DEFERRED_PSSETSAMPLERS:
|
||||
{
|
||||
@@ -656,6 +658,12 @@ static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *command
|
||||
@@ -656,6 +658,12 @@ static void exec_deferred_calls(ID3D11DeviceContext1 *iface, struct list *comman
|
||||
call->res_info.num_views, call->res_info.views);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_CSSETSAMPLERS:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_CSSetSamplers(iface, call->samplers_info.start_slot,
|
||||
+ ID3D11DeviceContext1_CSSetSamplers(iface, call->samplers_info.start_slot,
|
||||
+ call->samplers_info.num_samplers, call->samplers_info.samplers);
|
||||
+ break;
|
||||
+ }
|
||||
case DEFERRED_DSSETSAMPLERS:
|
||||
{
|
||||
ID3D11DeviceContext_DSSetSamplers(iface, call->samplers_info.start_slot,
|
||||
@@ -4475,8 +4483,12 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_CSSetShader(ID3D11DeviceCon
|
||||
ID3D11DeviceContext1_DSSetSamplers(iface, call->samplers_info.start_slot,
|
||||
@@ -4700,8 +4708,12 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_CSSetShader(ID3D11DeviceCon
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_CSSetSamplers(ID3D11DeviceContext *iface,
|
||||
UINT start_slot, UINT sampler_count, ID3D11SamplerState *const *samplers)
|
||||
{
|
||||
@ -64,5 +64,5 @@ index c4cef99ba26..1fe04efa5c3 100644
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_CSSetConstantBuffers(ID3D11DeviceContext *iface,
|
||||
--
|
||||
2.13.1
|
||||
1.9.1
|
||||
|
||||
|
@ -1,14 +1,14 @@
|
||||
From 68c90b8a153575c328197c9d18dfee3a8f88fb37 Mon Sep 17 00:00:00 2001
|
||||
From e9225859dd9b134f1f3ac75555ba2912cacfade5 Mon Sep 17 00:00:00 2001
|
||||
From: Kimmo Myllyvirta <kimmo.myllyvirta@gmail.com>
|
||||
Date: Fri, 7 Jul 2017 11:19:27 +0300
|
||||
Subject: d3d11: Implement GSSetSamplers for deferred contexts.
|
||||
Subject: [PATCH] d3d11: Implement GSSetSamplers for deferred contexts.
|
||||
|
||||
---
|
||||
dlls/d3d11/device.c | 17 +++++++++++++++--
|
||||
1 file changed, 15 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
|
||||
index 1fe04efa5c3..1af93c4a99a 100644
|
||||
index 7e5f191..aabbe38 100644
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -56,6 +56,7 @@ enum deferred_cmd
|
||||
@ -37,20 +37,20 @@ index 1fe04efa5c3..1af93c4a99a 100644
|
||||
case DEFERRED_PSSETSAMPLERS:
|
||||
{
|
||||
for (i = 0; i < call->samplers_info.num_samplers; i++)
|
||||
@@ -670,6 +673,12 @@ static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *command
|
||||
@@ -670,6 +673,12 @@ static void exec_deferred_calls(ID3D11DeviceContext1 *iface, struct list *comman
|
||||
call->samplers_info.num_samplers, call->samplers_info.samplers);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_GSSETSAMPLERS:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_GSSetSamplers(iface, call->samplers_info.start_slot,
|
||||
+ ID3D11DeviceContext1_GSSetSamplers(iface, call->samplers_info.start_slot,
|
||||
+ call->samplers_info.num_samplers, call->samplers_info.samplers);
|
||||
+ break;
|
||||
+ }
|
||||
case DEFERRED_PSSETSAMPLERS:
|
||||
{
|
||||
ID3D11DeviceContext_PSSetSamplers(iface, call->samplers_info.start_slot,
|
||||
@@ -4033,8 +4042,12 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_GSSetShaderResources(ID3D11
|
||||
ID3D11DeviceContext1_PSSetSamplers(iface, call->samplers_info.start_slot,
|
||||
@@ -4258,8 +4267,12 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_GSSetShaderResources(ID3D11
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_GSSetSamplers(ID3D11DeviceContext *iface,
|
||||
UINT start_slot, UINT sampler_count, ID3D11SamplerState *const *samplers)
|
||||
{
|
||||
@ -65,5 +65,5 @@ index 1fe04efa5c3..1af93c4a99a 100644
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_OMSetRenderTargets(ID3D11DeviceContext *iface,
|
||||
--
|
||||
2.13.1
|
||||
1.9.1
|
||||
|
||||
|
@ -1,14 +1,14 @@
|
||||
From 31741559091edb33262d99539c25c8083ec9da7a Mon Sep 17 00:00:00 2001
|
||||
From d67655d6733fdf62a10f330d9292ced0aa99f809 Mon Sep 17 00:00:00 2001
|
||||
From: Kimmo Myllyvirta <kimmo.myllyvirta@gmail.com>
|
||||
Date: Fri, 7 Jul 2017 11:21:32 +0300
|
||||
Subject: d3d11: Implement HSSetSamplers for deferred contexts.
|
||||
Subject: [PATCH] d3d11: Implement HSSetSamplers for deferred contexts.
|
||||
|
||||
---
|
||||
dlls/d3d11/device.c | 18 +++++++++++++++---
|
||||
1 file changed, 15 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
|
||||
index 1af93c4a99a..1408cf9450b 100644
|
||||
index aabbe38..2d03464 100644
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -57,6 +57,7 @@ enum deferred_cmd
|
||||
@ -38,20 +38,20 @@ index 1af93c4a99a..1408cf9450b 100644
|
||||
case DEFERRED_PSSETSAMPLERS:
|
||||
{
|
||||
for (i = 0; i < call->samplers_info.num_samplers; i++)
|
||||
@@ -679,6 +681,12 @@ static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *command
|
||||
@@ -679,6 +681,12 @@ static void exec_deferred_calls(ID3D11DeviceContext1 *iface, struct list *comman
|
||||
call->samplers_info.num_samplers, call->samplers_info.samplers);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_HSSETSAMPLERS:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_HSSetSamplers(iface, call->samplers_info.start_slot,
|
||||
+ ID3D11DeviceContext1_HSSetSamplers(iface, call->samplers_info.start_slot,
|
||||
+ call->samplers_info.num_samplers, call->samplers_info.samplers);
|
||||
+ break;
|
||||
+ }
|
||||
case DEFERRED_PSSETSAMPLERS:
|
||||
{
|
||||
ID3D11DeviceContext_PSSetSamplers(iface, call->samplers_info.start_slot,
|
||||
@@ -4374,8 +4382,12 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_HSSetShader(ID3D11DeviceCon
|
||||
ID3D11DeviceContext1_PSSetSamplers(iface, call->samplers_info.start_slot,
|
||||
@@ -4599,8 +4607,12 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_HSSetShader(ID3D11DeviceCon
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_HSSetSamplers(ID3D11DeviceContext *iface,
|
||||
UINT start_slot, UINT sampler_count, ID3D11SamplerState *const *samplers)
|
||||
{
|
||||
@ -66,5 +66,5 @@ index 1af93c4a99a..1408cf9450b 100644
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_HSSetConstantBuffers(ID3D11DeviceContext *iface,
|
||||
--
|
||||
2.13.1
|
||||
1.9.1
|
||||
|
||||
|
@ -1,14 +1,14 @@
|
||||
From 1b768487e7175cc29e2574c4334ee91d0333ce26 Mon Sep 17 00:00:00 2001
|
||||
From ae628cd9b5dcb81d43dbae1c7db76844658556a8 Mon Sep 17 00:00:00 2001
|
||||
From: Kimmo Myllyvirta <kimmo.myllyvirta@gmail.com>
|
||||
Date: Fri, 7 Jul 2017 11:23:51 +0300
|
||||
Subject: d3d11: Implement VSSetSamplers for deferred contexts.
|
||||
Subject: [PATCH] d3d11: Implement VSSetSamplers for deferred contexts.
|
||||
|
||||
---
|
||||
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 1408cf9450b..4327bc2bdbf 100644
|
||||
index 2d03464..178cd7f 100644
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -59,6 +59,7 @@ enum deferred_cmd
|
||||
@ -36,20 +36,20 @@ index 1408cf9450b..4327bc2bdbf 100644
|
||||
{
|
||||
for (i = 0; i < call->samplers_info.num_samplers; i++)
|
||||
{
|
||||
@@ -693,6 +695,12 @@ static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *command
|
||||
@@ -693,6 +695,12 @@ static void exec_deferred_calls(ID3D11DeviceContext1 *iface, struct list *comman
|
||||
call->samplers_info.num_samplers, call->samplers_info.samplers);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_VSSETSAMPLERS:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_VSSetSamplers(iface, call->samplers_info.start_slot,
|
||||
+ ID3D11DeviceContext1_VSSetSamplers(iface, call->samplers_info.start_slot,
|
||||
+ call->samplers_info.num_samplers, call->samplers_info.samplers);
|
||||
+ break;
|
||||
+ }
|
||||
case DEFERRED_CSSETCONSTANTBUFFERS:
|
||||
{
|
||||
ID3D11DeviceContext_CSSetConstantBuffers(iface, call->constant_buffers_info.start_slot,
|
||||
@@ -4005,8 +4013,12 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_VSSetShaderResources(ID3D11
|
||||
ID3D11DeviceContext1_CSSetConstantBuffers(iface, call->constant_buffers_info.start_slot,
|
||||
@@ -4230,8 +4238,12 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_VSSetShaderResources(ID3D11
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_VSSetSamplers(ID3D11DeviceContext *iface,
|
||||
UINT start_slot, UINT sampler_count, ID3D11SamplerState *const *samplers)
|
||||
{
|
||||
@ -64,5 +64,5 @@ index 1408cf9450b..4327bc2bdbf 100644
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_Begin(ID3D11DeviceContext *iface,
|
||||
--
|
||||
2.13.1
|
||||
1.9.1
|
||||
|
||||
|
@ -1,14 +1,14 @@
|
||||
From 091d543f73d5c2ec0883bc575c9d1366e61e7d1f Mon Sep 17 00:00:00 2001
|
||||
From 8e5acc9396447816d520f1c24c08a9f76e8c7561 Mon Sep 17 00:00:00 2001
|
||||
From: Kimmo Myllyvirta <kimmo.myllyvirta@gmail.com>
|
||||
Date: Fri, 7 Jul 2017 11:26:21 +0300
|
||||
Subject: d3d11: Implement Begin and End for deferred contexts.
|
||||
Subject: [PATCH] d3d11: Implement Begin and End for deferred contexts.
|
||||
|
||||
---
|
||||
dlls/d3d11/device.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++--
|
||||
1 file changed, 46 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
|
||||
index 4327bc2bdbf..199307840a7 100644
|
||||
index 178cd7f..67feab6 100644
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -80,6 +80,9 @@ enum deferred_cmd
|
||||
@ -46,24 +46,24 @@ index 4327bc2bdbf..199307840a7 100644
|
||||
default:
|
||||
{
|
||||
FIXME("Unimplemented command type %u\n", call->cmd);
|
||||
@@ -802,6 +816,16 @@ static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *command
|
||||
@@ -802,6 +816,16 @@ static void exec_deferred_calls(ID3D11DeviceContext1 *iface, struct list *comman
|
||||
call->clear_depth_info.stencil);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_BEGIN:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_Begin(iface, call->async_info.asynchronous);
|
||||
+ ID3D11DeviceContext1_Begin(iface, call->async_info.asynchronous);
|
||||
+ break;
|
||||
+ }
|
||||
+ case DEFERRED_END:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_End(iface, call->async_info.asynchronous);
|
||||
+ ID3D11DeviceContext1_End(iface, call->async_info.asynchronous);
|
||||
+ break;
|
||||
+ }
|
||||
default:
|
||||
{
|
||||
FIXME("Unimplemented command type %u\n", call->cmd);
|
||||
@@ -4024,13 +4048,33 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_VSSetSamplers(ID3D11DeviceC
|
||||
@@ -4249,13 +4273,33 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_VSSetSamplers(ID3D11DeviceC
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_Begin(ID3D11DeviceContext *iface,
|
||||
ID3D11Asynchronous *asynchronous)
|
||||
{
|
||||
@ -100,5 +100,5 @@ index 4327bc2bdbf..199307840a7 100644
|
||||
|
||||
static HRESULT STDMETHODCALLTYPE d3d11_deferred_context_GetData(ID3D11DeviceContext *iface,
|
||||
--
|
||||
2.13.1
|
||||
1.9.1
|
||||
|
||||
|
@ -1,14 +1,14 @@
|
||||
From eab748f0faa9adfb18eec8a6d7b92b5d517581da Mon Sep 17 00:00:00 2001
|
||||
From e9e4f687334712d9e63ffbd1727b485d6ed6059b Mon Sep 17 00:00:00 2001
|
||||
From: Johannes Specht <jojos_band@gmx.net>
|
||||
Date: Thu, 31 Aug 2017 20:24:35 +0200
|
||||
Subject: d3d11: Implement CopyResource for deferred contexts.
|
||||
Subject: [PATCH] d3d11: Implement CopyResource for deferred contexts.
|
||||
|
||||
---
|
||||
dlls/d3d11/device.c | 37 ++++++++++++++++++++++++++++++++++++-
|
||||
1 file changed, 36 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
|
||||
index 15935b4e7aa..2e6126b434f 100644
|
||||
index 67feab6..242a758 100644
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -40,6 +40,8 @@ enum deferred_cmd
|
||||
@ -20,18 +20,18 @@ index 15935b4e7aa..2e6126b434f 100644
|
||||
DEFERRED_CSSETSHADER, /* cs_info */
|
||||
DEFERRED_DSSETSHADER, /* ds_info */
|
||||
DEFERRED_GSSETSHADER, /* gs_info */
|
||||
@@ -140,6 +142,11 @@ struct deferred_call
|
||||
ID3D11DepthStencilView *depth_stencil;
|
||||
@@ -141,6 +143,11 @@ struct deferred_call
|
||||
} render_target_info;
|
||||
struct
|
||||
+ {
|
||||
{
|
||||
+ ID3D11Resource *dst_resource;
|
||||
+ ID3D11Resource *src_resource;
|
||||
+ } copy_resource_info;
|
||||
+ struct
|
||||
{
|
||||
+ {
|
||||
ID3D11ComputeShader *shader;
|
||||
/* FIXME: add class instances */
|
||||
} cs_info;
|
||||
@@ -416,6 +423,14 @@ static void free_deferred_calls(struct list *commands)
|
||||
ID3D11DepthStencilView_Release(call->render_target_info.depth_stencil);
|
||||
break;
|
||||
@ -47,21 +47,21 @@ index 15935b4e7aa..2e6126b434f 100644
|
||||
case DEFERRED_CSSETSHADER:
|
||||
{
|
||||
if (call->cs_info.shader)
|
||||
@@ -613,6 +628,13 @@ static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *command
|
||||
@@ -613,6 +628,13 @@ static void exec_deferred_calls(ID3D11DeviceContext1 *iface, struct list *comman
|
||||
call->render_target_info.render_targets, call->render_target_info.depth_stencil);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_COPYRESOURCE:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_CopyResource(iface,
|
||||
+ ID3D11DeviceContext1_CopyResource(iface,
|
||||
+ call->copy_resource_info.dst_resource,
|
||||
+ call->copy_resource_info.src_resource);
|
||||
+ break;
|
||||
+ }
|
||||
case DEFERRED_CSSETSHADER:
|
||||
{
|
||||
ID3D11DeviceContext_CSSetShader(iface, call->cs_info.shader, NULL, 0);
|
||||
@@ -4343,7 +4365,20 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_CopySubresourceRegion(ID3D1
|
||||
ID3D11DeviceContext1_CSSetShader(iface, call->cs_info.shader, NULL, 0);
|
||||
@@ -4523,7 +4545,20 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_CopySubresourceRegion(ID3D1
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_CopyResource(ID3D11DeviceContext *iface,
|
||||
ID3D11Resource *dst_resource, ID3D11Resource *src_resource)
|
||||
{
|
||||
@ -84,5 +84,5 @@ index 15935b4e7aa..2e6126b434f 100644
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_UpdateSubresource(ID3D11DeviceContext *iface,
|
||||
--
|
||||
2.14.1
|
||||
1.9.1
|
||||
|
||||
|
@ -1,14 +1,14 @@
|
||||
From 611e27f46305b4291a915d997ab9775e2e165703 Mon Sep 17 00:00:00 2001
|
||||
From 98b443232d7d86ab2eb30182a11ba2c5b660c878 Mon Sep 17 00:00:00 2001
|
||||
From: Johannes Specht <jojos_band@gmx.net>
|
||||
Date: Mon, 4 Sep 2017 02:19:00 +0200
|
||||
Subject: d3d11: Implement SetResourceMinLOD for deferred contexts.
|
||||
Subject: [PATCH] d3d11: Implement SetResourceMinLOD for deferred contexts.
|
||||
|
||||
---
|
||||
dlls/d3d11/device.c | 32 +++++++++++++++++++++++++++++++-
|
||||
1 file changed, 31 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
|
||||
index 2e6126b434f..8937d4f4088 100644
|
||||
index 242a758..22e2c8f 100644
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -41,6 +41,7 @@ enum deferred_cmd
|
||||
@ -19,18 +19,18 @@ index 2e6126b434f..8937d4f4088 100644
|
||||
|
||||
DEFERRED_CSSETSHADER, /* cs_info */
|
||||
DEFERRED_DSSETSHADER, /* ds_info */
|
||||
@@ -147,6 +148,11 @@ struct deferred_call
|
||||
ID3D11Resource *src_resource;
|
||||
@@ -148,6 +149,11 @@ struct deferred_call
|
||||
} copy_resource_info;
|
||||
struct
|
||||
+ {
|
||||
{
|
||||
+ ID3D11Resource *resource;
|
||||
+ FLOAT min_lod;
|
||||
+ } set_resource_min_lod_info;
|
||||
+ struct
|
||||
{
|
||||
+ {
|
||||
ID3D11ComputeShader *shader;
|
||||
/* FIXME: add class instances */
|
||||
} cs_info;
|
||||
@@ -431,6 +437,12 @@ static void free_deferred_calls(struct list *commands)
|
||||
ID3D11Resource_Release(call->copy_resource_info.src_resource);
|
||||
break;
|
||||
@ -44,21 +44,21 @@ index 2e6126b434f..8937d4f4088 100644
|
||||
case DEFERRED_CSSETSHADER:
|
||||
{
|
||||
if (call->cs_info.shader)
|
||||
@@ -635,6 +647,13 @@ static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *command
|
||||
@@ -635,6 +647,13 @@ static void exec_deferred_calls(ID3D11DeviceContext1 *iface, struct list *comman
|
||||
call->copy_resource_info.src_resource);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_SETRESOURCEMINLOD:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_SetResourceMinLOD(iface,
|
||||
+ ID3D11DeviceContext1_SetResourceMinLOD(iface,
|
||||
+ call->set_resource_min_lod_info.resource,
|
||||
+ call->set_resource_min_lod_info.min_lod);
|
||||
+ break;
|
||||
+ }
|
||||
case DEFERRED_CSSETSHADER:
|
||||
{
|
||||
ID3D11DeviceContext_CSSetShader(iface, call->cs_info.shader, NULL, 0);
|
||||
@@ -4459,7 +4478,18 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_GenerateMips(ID3D11DeviceCo
|
||||
ID3D11DeviceContext1_CSSetShader(iface, call->cs_info.shader, NULL, 0);
|
||||
@@ -4639,7 +4658,18 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_GenerateMips(ID3D11DeviceCo
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_SetResourceMinLOD(ID3D11DeviceContext *iface,
|
||||
ID3D11Resource *resource, FLOAT min_lod)
|
||||
{
|
||||
@ -79,5 +79,5 @@ index 2e6126b434f..8937d4f4088 100644
|
||||
|
||||
static FLOAT STDMETHODCALLTYPE d3d11_deferred_context_GetResourceMinLOD(ID3D11DeviceContext *iface,
|
||||
--
|
||||
2.14.1
|
||||
1.9.1
|
||||
|
||||
|
@ -1,14 +1,14 @@
|
||||
From 48325d31b132a05f60547853585f99fe2996a589 Mon Sep 17 00:00:00 2001
|
||||
From 2b8aa187dc5d42baae67d42d91589343c2fe6cda Mon Sep 17 00:00:00 2001
|
||||
From: Johannes Specht <jojos_band@gmx.net>
|
||||
Date: Mon, 4 Sep 2017 02:21:30 +0200
|
||||
Subject: d3d11: Implement CopySubresourceRegion for deferred contexts.
|
||||
Subject: [PATCH] d3d11: Implement CopySubresourceRegion for deferred contexts.
|
||||
|
||||
---
|
||||
dlls/d3d11/device.c | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++--
|
||||
1 file changed, 62 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
|
||||
index 8937d4f4088..c41f8ce7619 100644
|
||||
index 22e2c8f..0c5360a 100644
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -42,6 +42,7 @@ enum deferred_cmd
|
||||
@ -19,11 +19,10 @@ index 8937d4f4088..c41f8ce7619 100644
|
||||
|
||||
DEFERRED_CSSETSHADER, /* cs_info */
|
||||
DEFERRED_DSSETSHADER, /* ds_info */
|
||||
@@ -153,6 +154,17 @@ struct deferred_call
|
||||
FLOAT min_lod;
|
||||
@@ -154,6 +155,17 @@ struct deferred_call
|
||||
} set_resource_min_lod_info;
|
||||
struct
|
||||
+ {
|
||||
{
|
||||
+ ID3D11Resource *dst_resource;
|
||||
+ UINT dst_subresource_idx;
|
||||
+ UINT dst_x;
|
||||
@ -34,9 +33,10 @@ index 8937d4f4088..c41f8ce7619 100644
|
||||
+ D3D11_BOX *src_box;
|
||||
+ } copy_subresource_region_info;
|
||||
+ struct
|
||||
{
|
||||
+ {
|
||||
ID3D11ComputeShader *shader;
|
||||
/* FIXME: add class instances */
|
||||
} cs_info;
|
||||
@@ -443,6 +455,14 @@ static void free_deferred_calls(struct list *commands)
|
||||
ID3D11Resource_Release(call->set_resource_min_lod_info.resource);
|
||||
break;
|
||||
@ -52,13 +52,13 @@ index 8937d4f4088..c41f8ce7619 100644
|
||||
case DEFERRED_CSSETSHADER:
|
||||
{
|
||||
if (call->cs_info.shader)
|
||||
@@ -654,6 +674,19 @@ static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *command
|
||||
@@ -654,6 +674,19 @@ static void exec_deferred_calls(ID3D11DeviceContext1 *iface, struct list *comman
|
||||
call->set_resource_min_lod_info.min_lod);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_COPYSUBRESOURCEREGION:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_CopySubresourceRegion(iface,
|
||||
+ ID3D11DeviceContext1_CopySubresourceRegion(iface,
|
||||
+ call->copy_subresource_region_info.dst_resource,
|
||||
+ call->copy_subresource_region_info.dst_subresource_idx,
|
||||
+ call->copy_subresource_region_info.dst_x,
|
||||
@ -71,8 +71,8 @@ index 8937d4f4088..c41f8ce7619 100644
|
||||
+ }
|
||||
case DEFERRED_CSSETSHADER:
|
||||
{
|
||||
ID3D11DeviceContext_CSSetShader(iface, call->cs_info.shader, NULL, 0);
|
||||
@@ -4375,10 +4408,37 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_CopySubresourceRegion(ID3D1
|
||||
ID3D11DeviceContext1_CSSetShader(iface, call->cs_info.shader, NULL, 0);
|
||||
@@ -4555,10 +4588,37 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_CopySubresourceRegion(ID3D1
|
||||
ID3D11Resource *dst_resource, UINT dst_subresource_idx, UINT dst_x, UINT dst_y, UINT dst_z,
|
||||
ID3D11Resource *src_resource, UINT src_subresource_idx, const D3D11_BOX *src_box)
|
||||
{
|
||||
@ -113,5 +113,5 @@ index 8937d4f4088..c41f8ce7619 100644
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_CopyResource(ID3D11DeviceContext *iface,
|
||||
--
|
||||
2.14.1
|
||||
1.9.1
|
||||
|
||||
|
@ -1,14 +1,14 @@
|
||||
From d9105362c97b8ee7123bb3d711893f0ee15e81e4 Mon Sep 17 00:00:00 2001
|
||||
From c040d0aaf9fb1cff798a5c632b4f18f0c12e8282 Mon Sep 17 00:00:00 2001
|
||||
From: Johannes Specht <jojos_band@gmx.net>
|
||||
Date: Mon, 4 Sep 2017 02:30:32 +0200
|
||||
Subject: d3d11: Implement ResolveSubresource for deferred contexts.
|
||||
Subject: [PATCH] d3d11: Implement ResolveSubresource for deferred contexts.
|
||||
|
||||
---
|
||||
dlls/d3d11/device.c | 47 +++++++++++++++++++++++++++++++++++++++++++++--
|
||||
1 file changed, 45 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
|
||||
index c41f8ce7619..65e729030a9 100644
|
||||
index 0c5360a..5709bf0 100644
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -43,6 +43,7 @@ enum deferred_cmd
|
||||
@ -19,11 +19,10 @@ index c41f8ce7619..65e729030a9 100644
|
||||
|
||||
DEFERRED_CSSETSHADER, /* cs_info */
|
||||
DEFERRED_DSSETSHADER, /* ds_info */
|
||||
@@ -165,6 +166,14 @@ struct deferred_call
|
||||
D3D11_BOX *src_box;
|
||||
@@ -166,6 +167,14 @@ struct deferred_call
|
||||
} copy_subresource_region_info;
|
||||
struct
|
||||
+ {
|
||||
{
|
||||
+ ID3D11Resource *dst_resource;
|
||||
+ UINT dst_subresource_idx;
|
||||
+ ID3D11Resource *src_resource;
|
||||
@ -31,9 +30,10 @@ index c41f8ce7619..65e729030a9 100644
|
||||
+ DXGI_FORMAT format;
|
||||
+ } resolve_subresource_info;
|
||||
+ struct
|
||||
{
|
||||
+ {
|
||||
ID3D11ComputeShader *shader;
|
||||
/* FIXME: add class instances */
|
||||
} cs_info;
|
||||
@@ -463,6 +472,14 @@ static void free_deferred_calls(struct list *commands)
|
||||
ID3D11Resource_Release(call->copy_subresource_region_info.src_resource);
|
||||
break;
|
||||
@ -49,13 +49,13 @@ index c41f8ce7619..65e729030a9 100644
|
||||
case DEFERRED_CSSETSHADER:
|
||||
{
|
||||
if (call->cs_info.shader)
|
||||
@@ -687,6 +704,16 @@ static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *command
|
||||
@@ -687,6 +704,16 @@ static void exec_deferred_calls(ID3D11DeviceContext1 *iface, struct list *comman
|
||||
call->copy_subresource_region_info.src_box);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_RESOLVESUBRESOURCE:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_ResolveSubresource(iface,
|
||||
+ ID3D11DeviceContext1_ResolveSubresource(iface,
|
||||
+ call->resolve_subresource_info.dst_resource,
|
||||
+ call->resolve_subresource_info.dst_subresource_idx,
|
||||
+ call->resolve_subresource_info.src_resource,
|
||||
@ -65,8 +65,8 @@ index c41f8ce7619..65e729030a9 100644
|
||||
+ }
|
||||
case DEFERRED_CSSETSHADER:
|
||||
{
|
||||
ID3D11DeviceContext_CSSetShader(iface, call->cs_info.shader, NULL, 0);
|
||||
@@ -4565,10 +4592,26 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_ResolveSubresource(ID3D11De
|
||||
ID3D11DeviceContext1_CSSetShader(iface, call->cs_info.shader, NULL, 0);
|
||||
@@ -4745,10 +4772,26 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_ResolveSubresource(ID3D11De
|
||||
ID3D11Resource *src_resource, UINT src_subresource_idx,
|
||||
DXGI_FORMAT format)
|
||||
{
|
||||
@ -96,5 +96,5 @@ index c41f8ce7619..65e729030a9 100644
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_ExecuteCommandList(ID3D11DeviceContext *iface,
|
||||
--
|
||||
2.14.1
|
||||
1.9.1
|
||||
|
||||
|
@ -1,14 +1,14 @@
|
||||
From 02b50e3745fdbff6e9a16ae9ff5674b86d98fe52 Mon Sep 17 00:00:00 2001
|
||||
From 2b6928fe7faa40ff4e18508cffcea60d5156735f Mon Sep 17 00:00:00 2001
|
||||
From: Johannes Specht <jojos_band@gmx.net>
|
||||
Date: Mon, 4 Sep 2017 02:33:19 +0200
|
||||
Subject: d3d11: Implement CopyStructureCount for deferred contexts.
|
||||
Subject: [PATCH] d3d11: Implement CopyStructureCount for deferred contexts.
|
||||
|
||||
---
|
||||
dlls/d3d11/device.c | 41 +++++++++++++++++++++++++++++++++++++++--
|
||||
1 file changed, 39 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
|
||||
index 65e729030a9..9413f9c77f7 100644
|
||||
index 5709bf0..4241b5a 100644
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -44,6 +44,7 @@ enum deferred_cmd
|
||||
@ -19,19 +19,19 @@ index 65e729030a9..9413f9c77f7 100644
|
||||
|
||||
DEFERRED_CSSETSHADER, /* cs_info */
|
||||
DEFERRED_DSSETSHADER, /* ds_info */
|
||||
@@ -174,6 +175,12 @@ struct deferred_call
|
||||
DXGI_FORMAT format;
|
||||
@@ -175,6 +176,12 @@ struct deferred_call
|
||||
} resolve_subresource_info;
|
||||
struct
|
||||
+ {
|
||||
{
|
||||
+ ID3D11Buffer *dst_buffer;
|
||||
+ UINT dst_offset;
|
||||
+ ID3D11UnorderedAccessView *src_view;
|
||||
+ } copy_structure_count_info;
|
||||
+ struct
|
||||
{
|
||||
+ {
|
||||
ID3D11ComputeShader *shader;
|
||||
/* FIXME: add class instances */
|
||||
} cs_info;
|
||||
@@ -480,6 +487,14 @@ static void free_deferred_calls(struct list *commands)
|
||||
ID3D11Resource_Release(call->resolve_subresource_info.src_resource);
|
||||
break;
|
||||
@ -47,13 +47,13 @@ index 65e729030a9..9413f9c77f7 100644
|
||||
case DEFERRED_CSSETSHADER:
|
||||
{
|
||||
if (call->cs_info.shader)
|
||||
@@ -714,6 +729,14 @@ static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *command
|
||||
@@ -714,6 +729,14 @@ static void exec_deferred_calls(ID3D11DeviceContext1 *iface, struct list *comman
|
||||
call->resolve_subresource_info.format);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_COPYSTRUCTURECOUNT:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_CopyStructureCount(iface,
|
||||
+ ID3D11DeviceContext1_CopyStructureCount(iface,
|
||||
+ call->copy_structure_count_info.dst_buffer,
|
||||
+ call->copy_structure_count_info.dst_offset,
|
||||
+ call->copy_structure_count_info.src_view);
|
||||
@ -61,8 +61,8 @@ index 65e729030a9..9413f9c77f7 100644
|
||||
+ }
|
||||
case DEFERRED_CSSETSHADER:
|
||||
{
|
||||
ID3D11DeviceContext_CSSetShader(iface, call->cs_info.shader, NULL, 0);
|
||||
@@ -4498,8 +4521,22 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_UpdateSubresource(ID3D11Dev
|
||||
ID3D11DeviceContext1_CSSetShader(iface, call->cs_info.shader, NULL, 0);
|
||||
@@ -4678,8 +4701,22 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_UpdateSubresource(ID3D11Dev
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_CopyStructureCount(ID3D11DeviceContext *iface,
|
||||
ID3D11Buffer *dst_buffer, UINT dst_offset, ID3D11UnorderedAccessView *src_view)
|
||||
{
|
||||
@ -88,5 +88,5 @@ index 65e729030a9..9413f9c77f7 100644
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_ClearRenderTargetView(ID3D11DeviceContext *iface,
|
||||
--
|
||||
2.14.1
|
||||
1.9.1
|
||||
|
||||
|
@ -1,14 +1,14 @@
|
||||
From d044057772b2e3dbf96703295001993b161c58a1 Mon Sep 17 00:00:00 2001
|
||||
From 9fd40c39a1e0aa31779433c7e9d36aeade1ed91b Mon Sep 17 00:00:00 2001
|
||||
From: Johannes Specht <jojos_band@gmx.net>
|
||||
Date: Thu, 31 Aug 2017 20:40:30 +0200
|
||||
Subject: d3d11: Implement DrawAuto for deferred contexts.
|
||||
Subject: [PATCH] d3d11: Implement DrawAuto for deferred contexts.
|
||||
|
||||
---
|
||||
dlls/d3d11/device.c | 20 +++++++++++++++++++-
|
||||
1 file changed, 19 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
|
||||
index 9413f9c77f7..04e02376f54 100644
|
||||
index 4241b5a..57149f5 100644
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -79,6 +79,7 @@ enum deferred_cmd
|
||||
@ -30,19 +30,19 @@ index 9413f9c77f7..04e02376f54 100644
|
||||
case DEFERRED_MAP:
|
||||
{
|
||||
ID3D11Resource_Release(call->map_info.resource);
|
||||
@@ -899,6 +904,11 @@ static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *command
|
||||
@@ -899,6 +904,11 @@ static void exec_deferred_calls(ID3D11DeviceContext1 *iface, struct list *comman
|
||||
call->draw_indexed_inst_info.base_vertex, call->draw_indexed_inst_info.start_instance);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_DRAWAUTO:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_DrawAuto(iface);
|
||||
+ ID3D11DeviceContext1_DrawAuto(iface);
|
||||
+ break;
|
||||
+ }
|
||||
case DEFERRED_MAP:
|
||||
{
|
||||
D3D11_MAPPED_SUBRESOURCE mapped;
|
||||
@@ -4376,7 +4386,15 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_SOSetTargets(ID3D11DeviceCo
|
||||
@@ -4556,7 +4566,15 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_SOSetTargets(ID3D11DeviceCo
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_DrawAuto(ID3D11DeviceContext *iface)
|
||||
{
|
||||
@ -60,5 +60,5 @@ index 9413f9c77f7..04e02376f54 100644
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_DrawIndexedInstancedIndirect(ID3D11DeviceContext *iface,
|
||||
--
|
||||
2.14.1
|
||||
1.9.1
|
||||
|
||||
|
@ -1,14 +1,14 @@
|
||||
From df5c13cd1fcaa356b5835d73573e832e9dd100fe Mon Sep 17 00:00:00 2001
|
||||
From fd0ce81e3dcf27aef0d4ad4e8273449a7554a394 Mon Sep 17 00:00:00 2001
|
||||
From: Johannes Specht <jojos_band@gmx.net>
|
||||
Date: Mon, 4 Sep 2017 02:41:23 +0200
|
||||
Subject: d3d11: Implement DrawInstanced for deferred contexts.
|
||||
Subject: [PATCH] d3d11: Implement DrawInstanced for deferred contexts.
|
||||
|
||||
---
|
||||
dlls/d3d11/device.c | 37 +++++++++++++++++++++++++++++++++++--
|
||||
1 file changed, 35 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
|
||||
index 04e02376f54..2b3b3cf37af 100644
|
||||
index 57149f5..7992e39 100644
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -80,6 +80,7 @@ enum deferred_cmd
|
||||
@ -19,20 +19,20 @@ index 04e02376f54..2b3b3cf37af 100644
|
||||
|
||||
DEFERRED_MAP, /* map_info */
|
||||
DEFERRED_DISPATCH, /* dispatch_info */
|
||||
@@ -256,6 +257,13 @@ struct deferred_call
|
||||
UINT start_instance;
|
||||
@@ -257,6 +258,13 @@ struct deferred_call
|
||||
} draw_indexed_inst_info;
|
||||
struct
|
||||
+ {
|
||||
{
|
||||
+ UINT instance_vertex_count;
|
||||
+ UINT instance_count;
|
||||
+ UINT start_vertex_location;
|
||||
+ UINT start_instance_location;
|
||||
+ } draw_instanced_info;
|
||||
+ struct
|
||||
{
|
||||
+ {
|
||||
ID3D11Resource *resource;
|
||||
UINT subresource_idx;
|
||||
D3D11_MAP map_type;
|
||||
@@ -593,6 +601,10 @@ static void free_deferred_calls(struct list *commands)
|
||||
{
|
||||
break; /* nothing to do */
|
||||
@ -44,13 +44,13 @@ index 04e02376f54..2b3b3cf37af 100644
|
||||
case DEFERRED_MAP:
|
||||
{
|
||||
ID3D11Resource_Release(call->map_info.resource);
|
||||
@@ -909,6 +921,15 @@ static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *command
|
||||
ID3D11DeviceContext_DrawAuto(iface);
|
||||
@@ -909,6 +921,15 @@ static void exec_deferred_calls(ID3D11DeviceContext1 *iface, struct list *comman
|
||||
ID3D11DeviceContext1_DrawAuto(iface);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_DRAWINSTANCED:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_DrawInstanced(iface,
|
||||
+ ID3D11DeviceContext1_DrawInstanced(iface,
|
||||
+ call->draw_instanced_info.instance_vertex_count,
|
||||
+ call->draw_instanced_info.instance_count,
|
||||
+ call->draw_instanced_info.start_vertex_location,
|
||||
@ -60,7 +60,7 @@ index 04e02376f54..2b3b3cf37af 100644
|
||||
case DEFERRED_MAP:
|
||||
{
|
||||
D3D11_MAPPED_SUBRESOURCE mapped;
|
||||
@@ -4153,10 +4174,22 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_DrawIndexedInstanced(ID3D11
|
||||
@@ -4333,10 +4354,22 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_DrawIndexedInstanced(ID3D11
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_DrawInstanced(ID3D11DeviceContext *iface,
|
||||
UINT instance_vertex_count, UINT instance_count, UINT start_vertex_location, UINT start_instance_location)
|
||||
{
|
||||
@ -86,5 +86,5 @@ index 04e02376f54..2b3b3cf37af 100644
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_GSSetConstantBuffers(ID3D11DeviceContext *iface,
|
||||
--
|
||||
2.14.1
|
||||
1.9.1
|
||||
|
||||
|
@ -1,14 +1,14 @@
|
||||
From a285bbb03bf2763611274915eb86f32567a70388 Mon Sep 17 00:00:00 2001
|
||||
From 7943656bfca79d996af984a1a8f9dadaf63aa079 Mon Sep 17 00:00:00 2001
|
||||
From: Johannes Specht <jojos_band@gmx.net>
|
||||
Date: Mon, 4 Sep 2017 02:44:05 +0200
|
||||
Subject: d3d11: Implement DrawInstancedIndirect for deferred contexts.
|
||||
Subject: [PATCH] d3d11: Implement DrawInstancedIndirect for deferred contexts.
|
||||
|
||||
---
|
||||
dlls/d3d11/device.c | 32 +++++++++++++++++++++++++++++++-
|
||||
1 file changed, 31 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
|
||||
index 2b3b3cf37af..9a78856f577 100644
|
||||
index 7992e39..047b38f 100644
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -81,6 +81,7 @@ enum deferred_cmd
|
||||
@ -19,18 +19,18 @@ index 2b3b3cf37af..9a78856f577 100644
|
||||
|
||||
DEFERRED_MAP, /* map_info */
|
||||
DEFERRED_DISPATCH, /* dispatch_info */
|
||||
@@ -264,6 +265,11 @@ struct deferred_call
|
||||
UINT start_instance_location;
|
||||
@@ -265,6 +266,11 @@ struct deferred_call
|
||||
} draw_instanced_info;
|
||||
struct
|
||||
+ {
|
||||
{
|
||||
+ ID3D11Buffer *buffer;
|
||||
+ UINT offset;
|
||||
+ } draw_instanced_indirect_info;
|
||||
+ struct
|
||||
{
|
||||
+ {
|
||||
ID3D11Resource *resource;
|
||||
UINT subresource_idx;
|
||||
D3D11_MAP map_type;
|
||||
@@ -605,6 +611,12 @@ static void free_deferred_calls(struct list *commands)
|
||||
{
|
||||
break; /* nothing to do */
|
||||
@ -44,13 +44,13 @@ index 2b3b3cf37af..9a78856f577 100644
|
||||
case DEFERRED_MAP:
|
||||
{
|
||||
ID3D11Resource_Release(call->map_info.resource);
|
||||
@@ -930,6 +942,13 @@ static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *command
|
||||
@@ -930,6 +942,13 @@ static void exec_deferred_calls(ID3D11DeviceContext1 *iface, struct list *comman
|
||||
call->draw_instanced_info.start_instance_location);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_DRAWINSTANCEDINDIRECT:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_DrawInstancedIndirect(iface,
|
||||
+ ID3D11DeviceContext1_DrawInstancedIndirect(iface,
|
||||
+ call->draw_instanced_indirect_info.buffer,
|
||||
+ call->draw_instanced_indirect_info.offset);
|
||||
+ break;
|
||||
@ -58,7 +58,7 @@ index 2b3b3cf37af..9a78856f577 100644
|
||||
case DEFERRED_MAP:
|
||||
{
|
||||
D3D11_MAPPED_SUBRESOURCE mapped;
|
||||
@@ -4439,7 +4458,18 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_DrawIndexedInstancedIndirec
|
||||
@@ -4619,7 +4638,18 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_DrawIndexedInstancedIndirec
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_DrawInstancedIndirect(ID3D11DeviceContext *iface,
|
||||
ID3D11Buffer *buffer, UINT offset)
|
||||
{
|
||||
@ -79,5 +79,5 @@ index 2b3b3cf37af..9a78856f577 100644
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_Dispatch(ID3D11DeviceContext *iface,
|
||||
--
|
||||
2.14.1
|
||||
1.9.1
|
||||
|
||||
|
@ -1,14 +1,15 @@
|
||||
From 5a2a795e07aad217abddabd31e05f72e5267334d Mon Sep 17 00:00:00 2001
|
||||
From 8ad3ec7108bae678a090ae8daee13ccc6f3e581d Mon Sep 17 00:00:00 2001
|
||||
From: Johannes Specht <jojos_band@gmx.net>
|
||||
Date: Mon, 4 Sep 2017 02:49:31 +0200
|
||||
Subject: d3d11: Implement DrawIndexedInstancedIndirect for deferred contexts.
|
||||
Subject: [PATCH] d3d11: Implement DrawIndexedInstancedIndirect for deferred
|
||||
contexts.
|
||||
|
||||
---
|
||||
dlls/d3d11/device.c | 22 +++++++++++++++++++++-
|
||||
1 file changed, 21 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
|
||||
index 9a78856f577..fc7423d3dda 100644
|
||||
index 047b38f..d2ac3a8 100644
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -82,6 +82,7 @@ enum deferred_cmd
|
||||
@ -27,13 +28,13 @@ index 9a78856f577..fc7423d3dda 100644
|
||||
{
|
||||
if (call->draw_instanced_indirect_info.buffer)
|
||||
ID3D11Buffer_Release(call->draw_instanced_indirect_info.buffer);
|
||||
@@ -949,6 +951,13 @@ static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *command
|
||||
@@ -949,6 +951,13 @@ static void exec_deferred_calls(ID3D11DeviceContext1 *iface, struct list *comman
|
||||
call->draw_instanced_indirect_info.offset);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_DRAWINDEXEDINSTANCEDINDIRECT:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_DrawIndexedInstancedIndirect(iface,
|
||||
+ ID3D11DeviceContext1_DrawIndexedInstancedIndirect(iface,
|
||||
+ call->draw_instanced_indirect_info.buffer,
|
||||
+ call->draw_instanced_indirect_info.offset);
|
||||
+ break;
|
||||
@ -41,7 +42,7 @@ index 9a78856f577..fc7423d3dda 100644
|
||||
case DEFERRED_MAP:
|
||||
{
|
||||
D3D11_MAPPED_SUBRESOURCE mapped;
|
||||
@@ -4452,7 +4461,18 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_DrawAuto(ID3D11DeviceContex
|
||||
@@ -4632,7 +4641,18 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_DrawAuto(ID3D11DeviceContex
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_DrawIndexedInstancedIndirect(ID3D11DeviceContext *iface,
|
||||
ID3D11Buffer *buffer, UINT offset)
|
||||
{
|
||||
@ -62,5 +63,5 @@ index 9a78856f577..fc7423d3dda 100644
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_DrawInstancedIndirect(ID3D11DeviceContext *iface,
|
||||
--
|
||||
2.14.1
|
||||
1.9.1
|
||||
|
||||
|
@ -1,14 +1,15 @@
|
||||
From 55943ff7d7ed4c29c3202f0f22c2fd5d0ee29830 Mon Sep 17 00:00:00 2001
|
||||
From 957497472a02cda0e6af687ce7eb4e30dee724f9 Mon Sep 17 00:00:00 2001
|
||||
From: Johannes Specht <jojos_band@gmx.net>
|
||||
Date: Thu, 31 Aug 2017 20:49:47 +0200
|
||||
Subject: d3d11: Implement ClearUnorderedAccessViewUint for deferred contexts.
|
||||
Subject: [PATCH] d3d11: Implement ClearUnorderedAccessViewUint for deferred
|
||||
contexts.
|
||||
|
||||
---
|
||||
dlls/d3d11/device.c | 34 +++++++++++++++++++++++++++++++++-
|
||||
1 file changed, 33 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
|
||||
index fc7423d3dda..50f56fad7f7 100644
|
||||
index d2ac3a8..c1a3ab2 100644
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -90,6 +90,7 @@ enum deferred_cmd
|
||||
@ -19,18 +20,18 @@ index fc7423d3dda..50f56fad7f7 100644
|
||||
|
||||
DEFERRED_BEGIN, /* async_info */
|
||||
DEFERRED_END, /* async_info */
|
||||
@@ -298,6 +299,11 @@ struct deferred_call
|
||||
UINT8 stencil;
|
||||
@@ -299,6 +300,11 @@ struct deferred_call
|
||||
} clear_depth_info;
|
||||
struct
|
||||
+ {
|
||||
{
|
||||
+ ID3D11UnorderedAccessView *unordered_access_view;
|
||||
+ UINT values[4];
|
||||
+ } clear_unordered_access_view_uint;
|
||||
+ struct
|
||||
{
|
||||
+ {
|
||||
ID3D11Asynchronous *asynchronous;
|
||||
} async_info;
|
||||
};
|
||||
@@ -644,6 +650,12 @@ static void free_deferred_calls(struct list *commands)
|
||||
ID3D11DepthStencilView_Release(call->clear_depth_info.view);
|
||||
break;
|
||||
@ -44,21 +45,21 @@ index fc7423d3dda..50f56fad7f7 100644
|
||||
case DEFERRED_BEGIN:
|
||||
case DEFERRED_END:
|
||||
{
|
||||
@@ -999,6 +1011,13 @@ static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *command
|
||||
@@ -999,6 +1011,13 @@ static void exec_deferred_calls(ID3D11DeviceContext1 *iface, struct list *comman
|
||||
call->clear_depth_info.stencil);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_CLEARUNORDEREDACCESSVIEWUINT:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_ClearUnorderedAccessViewUint(iface,
|
||||
+ ID3D11DeviceContext1_ClearUnorderedAccessViewUint(iface,
|
||||
+ call->clear_unordered_access_view_uint.unordered_access_view,
|
||||
+ call->clear_unordered_access_view_uint.values);
|
||||
+ break;
|
||||
+ }
|
||||
case DEFERRED_BEGIN:
|
||||
{
|
||||
ID3D11DeviceContext_Begin(iface, call->async_info.asynchronous);
|
||||
@@ -4663,8 +4682,21 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_ClearRenderTargetView(ID3D1
|
||||
ID3D11DeviceContext1_Begin(iface, call->async_info.asynchronous);
|
||||
@@ -4843,8 +4862,21 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_ClearRenderTargetView(ID3D1
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_ClearUnorderedAccessViewUint(ID3D11DeviceContext *iface,
|
||||
ID3D11UnorderedAccessView *unordered_access_view, const UINT values[4])
|
||||
{
|
||||
@ -82,5 +83,5 @@ index fc7423d3dda..50f56fad7f7 100644
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_ClearUnorderedAccessViewFloat(ID3D11DeviceContext *iface,
|
||||
--
|
||||
2.14.1
|
||||
1.9.1
|
||||
|
||||
|
@ -1,14 +1,15 @@
|
||||
From 527fe98683420cd9a7f8277d4042a9d8473571c2 Mon Sep 17 00:00:00 2001
|
||||
From 4aea5432ad3d6d7ee7770b166ade51dcd0835704 Mon Sep 17 00:00:00 2001
|
||||
From: Johannes Specht <jojos_band@gmx.net>
|
||||
Date: Mon, 4 Sep 2017 02:56:57 +0200
|
||||
Subject: d3d11: Implement ClearUnorderedAccessViewFloat for deferred contexts.
|
||||
Subject: [PATCH] d3d11: Implement ClearUnorderedAccessViewFloat for deferred
|
||||
contexts.
|
||||
|
||||
---
|
||||
dlls/d3d11/device.c | 34 +++++++++++++++++++++++++++++++++-
|
||||
1 file changed, 33 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
|
||||
index 50f56fad7f7..d676b0c3f8e 100644
|
||||
index c1a3ab2..5753855 100644
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -91,6 +91,7 @@ enum deferred_cmd
|
||||
@ -19,18 +20,18 @@ index 50f56fad7f7..d676b0c3f8e 100644
|
||||
|
||||
DEFERRED_BEGIN, /* async_info */
|
||||
DEFERRED_END, /* async_info */
|
||||
@@ -304,6 +305,11 @@ struct deferred_call
|
||||
UINT values[4];
|
||||
@@ -305,6 +306,11 @@ struct deferred_call
|
||||
} clear_unordered_access_view_uint;
|
||||
struct
|
||||
+ {
|
||||
{
|
||||
+ ID3D11UnorderedAccessView *unordered_access_view;
|
||||
+ float values[4];
|
||||
+ } clear_unordered_access_view_float;
|
||||
+ struct
|
||||
{
|
||||
+ {
|
||||
ID3D11Asynchronous *asynchronous;
|
||||
} async_info;
|
||||
};
|
||||
@@ -656,6 +662,12 @@ static void free_deferred_calls(struct list *commands)
|
||||
ID3D11UnorderedAccessView_Release(call->clear_unordered_access_view_uint.unordered_access_view);
|
||||
break;
|
||||
@ -44,21 +45,21 @@ index 50f56fad7f7..d676b0c3f8e 100644
|
||||
case DEFERRED_BEGIN:
|
||||
case DEFERRED_END:
|
||||
{
|
||||
@@ -1018,6 +1030,13 @@ static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *command
|
||||
@@ -1018,6 +1030,13 @@ static void exec_deferred_calls(ID3D11DeviceContext1 *iface, struct list *comman
|
||||
call->clear_unordered_access_view_uint.values);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_CLEARUNORDEREDACCESSVIEWFLOAT:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_ClearUnorderedAccessViewFloat(iface,
|
||||
+ ID3D11DeviceContext1_ClearUnorderedAccessViewFloat(iface,
|
||||
+ call->clear_unordered_access_view_float.unordered_access_view,
|
||||
+ call->clear_unordered_access_view_float.values);
|
||||
+ break;
|
||||
+ }
|
||||
case DEFERRED_BEGIN:
|
||||
{
|
||||
ID3D11DeviceContext_Begin(iface, call->async_info.asynchronous);
|
||||
@@ -4702,8 +4721,21 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_ClearUnorderedAccessViewUin
|
||||
ID3D11DeviceContext1_Begin(iface, call->async_info.asynchronous);
|
||||
@@ -4882,8 +4901,21 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_ClearUnorderedAccessViewUin
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_ClearUnorderedAccessViewFloat(ID3D11DeviceContext *iface,
|
||||
ID3D11UnorderedAccessView *unordered_access_view, const float values[4])
|
||||
{
|
||||
@ -82,5 +83,5 @@ index 50f56fad7f7..d676b0c3f8e 100644
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_ClearDepthStencilView(ID3D11DeviceContext *iface,
|
||||
--
|
||||
2.14.1
|
||||
1.9.1
|
||||
|
||||
|
@ -1,14 +1,14 @@
|
||||
From 26bfdd29ea248ac066174096d8879545429a6e89 Mon Sep 17 00:00:00 2001
|
||||
From d527ab4f6f5a9b027b6693eb1db71aa3390fed20 Mon Sep 17 00:00:00 2001
|
||||
From: Johannes Specht <jojos_band@gmx.net>
|
||||
Date: Thu, 31 Aug 2017 20:57:55 +0200
|
||||
Subject: d3d11: Implement RsSetScissorRects for deferred contexts.
|
||||
Subject: [PATCH] d3d11: Implement RsSetScissorRects for deferred contexts.
|
||||
|
||||
---
|
||||
dlls/d3d11/device.c | 30 +++++++++++++++++++++++++++++-
|
||||
1 file changed, 29 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
|
||||
index d676b0c3f8e..4a159a2ff7b 100644
|
||||
index 5753855..b63f344 100644
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -35,6 +35,7 @@ enum deferred_cmd
|
||||
@ -19,18 +19,18 @@ index d676b0c3f8e..4a159a2ff7b 100644
|
||||
|
||||
DEFERRED_OMSETDEPTHSTENCILSTATE, /* stencil_state_info */
|
||||
DEFERRED_OMSETBLENDSTATE, /* blend_state_info */
|
||||
@@ -130,6 +131,11 @@ struct deferred_call
|
||||
ID3D11RasterizerState *state;
|
||||
@@ -131,6 +132,11 @@ struct deferred_call
|
||||
} rstate_info;
|
||||
struct
|
||||
+ {
|
||||
{
|
||||
+ UINT rect_count;
|
||||
+ D3D11_RECT *rects;
|
||||
+ } rs_set_scissor_rects_info;
|
||||
+ struct
|
||||
{
|
||||
+ {
|
||||
UINT num_viewports;
|
||||
D3D11_VIEWPORT *viewports;
|
||||
} viewport_info;
|
||||
@@ -462,6 +468,10 @@ static void free_deferred_calls(struct list *commands)
|
||||
{
|
||||
break; /* nothing to do */
|
||||
@ -42,21 +42,21 @@ index d676b0c3f8e..4a159a2ff7b 100644
|
||||
case DEFERRED_OMSETDEPTHSTENCILSTATE:
|
||||
{
|
||||
if (call->stencil_state_info.state)
|
||||
@@ -729,6 +739,13 @@ static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *command
|
||||
@@ -729,6 +739,13 @@ static void exec_deferred_calls(ID3D11DeviceContext1 *iface, struct list *comman
|
||||
call->viewport_info.viewports);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_RSSETSCISSORRECTS:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_RSSetScissorRects(iface,
|
||||
+ ID3D11DeviceContext1_RSSetScissorRects(iface,
|
||||
+ call->rs_set_scissor_rects_info.rect_count,
|
||||
+ call->rs_set_scissor_rects_info.rects);
|
||||
+ break;
|
||||
+ }
|
||||
case DEFERRED_OMSETDEPTHSTENCILSTATE:
|
||||
{
|
||||
ID3D11DeviceContext_OMSetDepthStencilState(iface, call->stencil_state_info.state,
|
||||
@@ -4590,7 +4607,18 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_RSSetViewports(ID3D11Device
|
||||
ID3D11DeviceContext1_OMSetDepthStencilState(iface, call->stencil_state_info.state,
|
||||
@@ -4770,7 +4787,18 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_RSSetViewports(ID3D11Device
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_RSSetScissorRects(ID3D11DeviceContext *iface,
|
||||
UINT rect_count, const D3D11_RECT *rects)
|
||||
{
|
||||
@ -77,5 +77,5 @@ index d676b0c3f8e..4a159a2ff7b 100644
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_CopySubresourceRegion(ID3D11DeviceContext *iface,
|
||||
--
|
||||
2.14.1
|
||||
1.9.1
|
||||
|
||||
|
@ -1,15 +1,15 @@
|
||||
From bce549e905b052637153e5846491626083d3fac2 Mon Sep 17 00:00:00 2001
|
||||
From 3842fc233f25fb4aa07f142ca2a13a40979560fe Mon Sep 17 00:00:00 2001
|
||||
From: Johannes Specht <jojos_band@gmx.net>
|
||||
Date: Mon, 4 Sep 2017 03:07:13 +0200
|
||||
Subject: d3d11: Implement OMSetRenderTargetsAndUnorderedAccessViews for
|
||||
deferred contexts.
|
||||
Subject: [PATCH] d3d11: Implement OMSetRenderTargetsAndUnorderedAccessViews
|
||||
for deferred contexts.
|
||||
|
||||
---
|
||||
dlls/d3d11/device.c | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++--
|
||||
1 file changed, 75 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
|
||||
index 2aec0dde260..b513bda5ad3 100644
|
||||
index b63f344..96dd4e1 100644
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -40,6 +40,7 @@ enum deferred_cmd
|
||||
@ -20,11 +20,10 @@ index 2aec0dde260..b513bda5ad3 100644
|
||||
|
||||
DEFERRED_COPYRESOURCE, /* copy_resource_info */
|
||||
DEFERRED_SETRESOURCEMINLOD, /* set_resource_min_lod_info */
|
||||
@@ -193,6 +194,16 @@ struct deferred_call
|
||||
ID3D11UnorderedAccessView *src_view;
|
||||
@@ -194,6 +195,16 @@ struct deferred_call
|
||||
} copy_structure_count_info;
|
||||
struct
|
||||
+ {
|
||||
{
|
||||
+ UINT render_target_view_count;
|
||||
+ ID3D11RenderTargetView **render_target_views;
|
||||
+ ID3D11DepthStencilView *depth_stencil_view;
|
||||
@ -34,9 +33,10 @@ index 2aec0dde260..b513bda5ad3 100644
|
||||
+ UINT *initial_counts;
|
||||
+ } render_targets_and_unordered_access_views_info;
|
||||
+ struct
|
||||
{
|
||||
+ {
|
||||
ID3D11ComputeShader *shader;
|
||||
/* FIXME: add class instances */
|
||||
} cs_info;
|
||||
@@ -495,6 +506,22 @@ static void free_deferred_calls(struct list *commands)
|
||||
ID3D11DepthStencilView_Release(call->render_target_info.depth_stencil);
|
||||
break;
|
||||
@ -60,13 +60,13 @@ index 2aec0dde260..b513bda5ad3 100644
|
||||
case DEFERRED_COPYRESOURCE:
|
||||
{
|
||||
if (call->copy_resource_info.dst_resource)
|
||||
@@ -764,6 +791,18 @@ static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *command
|
||||
@@ -764,6 +791,18 @@ static void exec_deferred_calls(ID3D11DeviceContext1 *iface, struct list *comman
|
||||
call->render_target_info.render_targets, call->render_target_info.depth_stencil);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_OMSETRENDERTARGETSANDUNORDEREDACCESVIEWS:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_OMSetRenderTargetsAndUnorderedAccessViews(iface,
|
||||
+ ID3D11DeviceContext1_OMSetRenderTargetsAndUnorderedAccessViews(iface,
|
||||
+ call->render_targets_and_unordered_access_views_info.render_target_view_count,
|
||||
+ call->render_targets_and_unordered_access_views_info.render_target_views,
|
||||
+ call->render_targets_and_unordered_access_views_info.depth_stencil_view,
|
||||
@ -78,8 +78,8 @@ index 2aec0dde260..b513bda5ad3 100644
|
||||
+ }
|
||||
case DEFERRED_COPYRESOURCE:
|
||||
{
|
||||
ID3D11DeviceContext_CopyResource(iface,
|
||||
@@ -4397,12 +4436,46 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_OMSetRenderTargetsAndUnorde
|
||||
ID3D11DeviceContext1_CopyResource(iface,
|
||||
@@ -4623,12 +4662,46 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_OMSetRenderTargetsAndUnorde
|
||||
UINT unordered_access_view_start_slot, UINT unordered_access_view_count,
|
||||
ID3D11UnorderedAccessView *const *unordered_access_views, const UINT *initial_counts)
|
||||
{
|
||||
@ -129,5 +129,5 @@ index 2aec0dde260..b513bda5ad3 100644
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_OMSetBlendState(ID3D11DeviceContext *iface,
|
||||
--
|
||||
2.14.1
|
||||
1.9.1
|
||||
|
||||
|
@ -1,14 +1,14 @@
|
||||
From 9226f60a95137ba34ae9060c79f5ffd3dee4763e Mon Sep 17 00:00:00 2001
|
||||
From bc87e99378af8515cfd0a409cb209d33a82ea9ae Mon Sep 17 00:00:00 2001
|
||||
From: Johannes Specht <jojos_band@gmx.net>
|
||||
Date: Mon, 4 Sep 2017 04:15:31 +0200
|
||||
Subject: d3d11: Implement SOSetTargets for deferred contexts.
|
||||
Subject: [PATCH] d3d11: Implement SOSetTargets for deferred contexts.
|
||||
|
||||
---
|
||||
dlls/d3d11/device.c | 49 ++++++++++++++++++++++++++++++++++++++++++++++---
|
||||
1 file changed, 46 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
|
||||
index c60daf5620..ab7eb4654a 100644
|
||||
index 96dd4e1..728a90b 100644
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -77,6 +77,7 @@ enum deferred_cmd
|
||||
@ -19,19 +19,19 @@ index c60daf5620..ab7eb4654a 100644
|
||||
|
||||
DEFERRED_DRAW, /* draw_info */
|
||||
DEFERRED_DRAWINDEXED, /* draw_indexed_info */
|
||||
@@ -204,6 +205,12 @@ struct deferred_call
|
||||
UINT *initial_counts;
|
||||
@@ -205,6 +206,12 @@ struct deferred_call
|
||||
} render_targets_and_unordered_access_views_info;
|
||||
struct
|
||||
+ {
|
||||
{
|
||||
+ UINT buffer_count;
|
||||
+ ID3D11Buffer **buffers;
|
||||
+ UINT *offsets;
|
||||
+ } so_set_targets_info;
|
||||
+ struct
|
||||
{
|
||||
+ {
|
||||
ID3D11ComputeShader *shader;
|
||||
/* FIXME: add class instances */
|
||||
} cs_info;
|
||||
@@ -647,6 +654,15 @@ static void free_deferred_calls(struct list *commands)
|
||||
}
|
||||
break;
|
||||
@ -48,13 +48,13 @@ index c60daf5620..ab7eb4654a 100644
|
||||
case DEFERRED_DRAW:
|
||||
case DEFERRED_DRAWINDEXED:
|
||||
case DEFERRED_DRAWINDEXEDINSTANCED:
|
||||
@@ -992,6 +1008,14 @@ static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *command
|
||||
@@ -992,6 +1008,14 @@ static void exec_deferred_calls(ID3D11DeviceContext1 *iface, struct list *comman
|
||||
call->unordered_view.num_views, call->unordered_view.views, call->unordered_view.initial_counts);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_SOSETTARGETS:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_SOSetTargets(iface,
|
||||
+ ID3D11DeviceContext1_SOSetTargets(iface,
|
||||
+ call->so_set_targets_info.buffer_count,
|
||||
+ call->so_set_targets_info.buffers,
|
||||
+ call->so_set_targets_info.offsets);
|
||||
@ -62,8 +62,8 @@ index c60daf5620..ab7eb4654a 100644
|
||||
+ }
|
||||
case DEFERRED_DRAW:
|
||||
{
|
||||
ID3D11DeviceContext_Draw(iface, call->draw_info.count, call->draw_info.start);
|
||||
@@ -4585,10 +4609,29 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_OMSetDepthStencilState(ID3D
|
||||
ID3D11DeviceContext1_Draw(iface, call->draw_info.count, call->draw_info.start);
|
||||
@@ -4747,10 +4771,29 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_OMSetDepthStencilState(ID3D
|
||||
call->stencil_state_info.stencil_ref = stencil_ref;
|
||||
}
|
||||
|
||||
@ -97,5 +97,5 @@ index c60daf5620..ab7eb4654a 100644
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_DrawAuto(ID3D11DeviceContext *iface)
|
||||
--
|
||||
2.15.1
|
||||
1.9.1
|
||||
|
||||
|
@ -1,14 +1,14 @@
|
||||
From 1d3919ae00962c215562a5f37033d87b461c33bd Mon Sep 17 00:00:00 2001
|
||||
From 046d182f348f916b9e1531a14380420944b714a3 Mon Sep 17 00:00:00 2001
|
||||
From: Johannes Specht <jojos_band@gmx.net>
|
||||
Date: Mon, 4 Sep 2017 04:19:55 +0200
|
||||
Subject: d3d11: Implement GenerateMips for deferred contexts.
|
||||
Subject: [PATCH] d3d11: Implement GenerateMips for deferred contexts.
|
||||
|
||||
---
|
||||
dlls/d3d11/device.c | 29 ++++++++++++++++++++++++++++-
|
||||
1 file changed, 28 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
|
||||
index 24761aab105..e0a65d5fc60 100644
|
||||
index 728a90b..1ed5010 100644
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -78,6 +78,7 @@ enum deferred_cmd
|
||||
@ -19,17 +19,17 @@ index 24761aab105..e0a65d5fc60 100644
|
||||
|
||||
DEFERRED_DRAW, /* draw_info */
|
||||
DEFERRED_DRAWINDEXED, /* draw_indexed_info */
|
||||
@@ -312,6 +313,10 @@ struct deferred_call
|
||||
UINT count_z;
|
||||
@@ -313,6 +314,10 @@ struct deferred_call
|
||||
} dispatch_info;
|
||||
struct
|
||||
+ {
|
||||
{
|
||||
+ ID3D11ShaderResourceView *view;
|
||||
+ } generate_mips_info;
|
||||
+ struct
|
||||
{
|
||||
+ {
|
||||
ID3D11RenderTargetView *rtv;
|
||||
float color[4];
|
||||
} clear_rtv_info;
|
||||
@@ -663,6 +668,12 @@ static void free_deferred_calls(struct list *commands)
|
||||
}
|
||||
break;
|
||||
@ -43,20 +43,20 @@ index 24761aab105..e0a65d5fc60 100644
|
||||
case DEFERRED_DRAW:
|
||||
case DEFERRED_DRAWINDEXED:
|
||||
case DEFERRED_DRAWINDEXEDINSTANCED:
|
||||
@@ -1016,6 +1027,12 @@ static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *command
|
||||
@@ -1016,6 +1027,12 @@ static void exec_deferred_calls(ID3D11DeviceContext1 *iface, struct list *comman
|
||||
call->so_set_targets_info.offsets);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_GENERATEMIPS:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_GenerateMips(iface,
|
||||
+ ID3D11DeviceContext1_GenerateMips(iface,
|
||||
+ call->generate_mips_info.view);
|
||||
+ break;
|
||||
+ }
|
||||
case DEFERRED_DRAW:
|
||||
{
|
||||
ID3D11DeviceContext_Draw(iface, call->draw_info.count, call->draw_info.start);
|
||||
@@ -4904,7 +4921,17 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_ClearDepthStencilView(ID3D1
|
||||
ID3D11DeviceContext1_Draw(iface, call->draw_info.count, call->draw_info.start);
|
||||
@@ -5085,7 +5102,17 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_ClearDepthStencilView(ID3D1
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_GenerateMips(ID3D11DeviceContext *iface,
|
||||
ID3D11ShaderResourceView *view)
|
||||
{
|
||||
@ -76,5 +76,5 @@ index 24761aab105..e0a65d5fc60 100644
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_SetResourceMinLOD(ID3D11DeviceContext *iface,
|
||||
--
|
||||
2.14.1
|
||||
1.9.1
|
||||
|
||||
|
@ -1,14 +1,14 @@
|
||||
From f35990fe3eaccfbccf458b79f814018e126a46c5 Mon Sep 17 00:00:00 2001
|
||||
From bcf5cc6f8d056a6406dccc301ce301ab8e063f56 Mon Sep 17 00:00:00 2001
|
||||
From: Johannes Specht <jojos_band@gmx.net>
|
||||
Date: Mon, 4 Sep 2017 04:22:04 +0200
|
||||
Subject: d3d11: Implement DispatchIndirect for deferred contexts.
|
||||
Subject: [PATCH] d3d11: Implement DispatchIndirect for deferred contexts.
|
||||
|
||||
---
|
||||
dlls/d3d11/device.c | 32 +++++++++++++++++++++++++++++++-
|
||||
1 file changed, 31 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
|
||||
index e0a65d5fc60..5a4fd13d611 100644
|
||||
index 1ed5010..0f710a4 100644
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -90,6 +90,7 @@ enum deferred_cmd
|
||||
@ -19,18 +19,18 @@ index e0a65d5fc60..5a4fd13d611 100644
|
||||
|
||||
DEFERRED_CLEARSTATE,
|
||||
DEFERRED_CLEARRENDERTARGETVIEW, /* clear_rtv_info */
|
||||
@@ -313,6 +314,11 @@ struct deferred_call
|
||||
UINT count_z;
|
||||
@@ -314,6 +315,11 @@ struct deferred_call
|
||||
} dispatch_info;
|
||||
struct
|
||||
+ {
|
||||
{
|
||||
+ ID3D11Buffer *buffer;
|
||||
+ UINT offset;
|
||||
+ } dispatch_indirect_info;
|
||||
+ struct
|
||||
{
|
||||
+ {
|
||||
ID3D11ShaderResourceView *view;
|
||||
} generate_mips_info;
|
||||
struct
|
||||
@@ -704,6 +710,12 @@ static void free_deferred_calls(struct list *commands)
|
||||
{
|
||||
break; /* nothing to do */
|
||||
@ -44,21 +44,21 @@ index e0a65d5fc60..5a4fd13d611 100644
|
||||
case DEFERRED_CLEARSTATE:
|
||||
{
|
||||
break; /* nothing to do */
|
||||
@@ -1102,6 +1114,13 @@ static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *command
|
||||
@@ -1102,6 +1114,13 @@ static void exec_deferred_calls(ID3D11DeviceContext1 *iface, struct list *comman
|
||||
call->dispatch_info.count_y, call->dispatch_info.count_z);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_DISPATCHINDIRECT:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_DispatchIndirect(iface,
|
||||
+ ID3D11DeviceContext1_DispatchIndirect(iface,
|
||||
+ call->dispatch_indirect_info.buffer,
|
||||
+ call->dispatch_indirect_info.offset);
|
||||
+ break;
|
||||
+ }
|
||||
case DEFERRED_CLEARSTATE:
|
||||
{
|
||||
ID3D11DeviceContext_ClearState(iface);
|
||||
@@ -4700,7 +4719,18 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_Dispatch(ID3D11DeviceContex
|
||||
ID3D11DeviceContext1_ClearState(iface);
|
||||
@@ -4881,7 +4900,18 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_Dispatch(ID3D11DeviceContex
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_DispatchIndirect(ID3D11DeviceContext *iface,
|
||||
ID3D11Buffer *buffer, UINT offset)
|
||||
{
|
||||
@ -79,5 +79,5 @@ index e0a65d5fc60..5a4fd13d611 100644
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_RSSetState(ID3D11DeviceContext *iface,
|
||||
--
|
||||
2.14.1
|
||||
1.9.1
|
||||
|
||||
|
@ -1,14 +1,14 @@
|
||||
From 28981beff516369645e80375e6e29b4a6d806dcb Mon Sep 17 00:00:00 2001
|
||||
From 26b4142fd0a343616a72ddc01595ec66195fa11a Mon Sep 17 00:00:00 2001
|
||||
From: Johannes Specht <jojos_band@gmx.net>
|
||||
Date: Mon, 4 Sep 2017 04:24:37 +0200
|
||||
Subject: d3d11: Implement SetPredication for deferred contexts.
|
||||
Subject: [PATCH] d3d11: Implement SetPredication for deferred contexts.
|
||||
|
||||
---
|
||||
dlls/d3d11/device.c | 32 +++++++++++++++++++++++++++++++-
|
||||
1 file changed, 31 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
|
||||
index 5a4fd13d611..eb32c50ea8b 100644
|
||||
index 0f710a4..c83d6a0 100644
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -91,6 +91,7 @@ enum deferred_cmd
|
||||
@ -19,18 +19,18 @@ index 5a4fd13d611..eb32c50ea8b 100644
|
||||
|
||||
DEFERRED_CLEARSTATE,
|
||||
DEFERRED_CLEARRENDERTARGETVIEW, /* clear_rtv_info */
|
||||
@@ -319,6 +320,11 @@ struct deferred_call
|
||||
UINT offset;
|
||||
@@ -320,6 +321,11 @@ struct deferred_call
|
||||
} dispatch_indirect_info;
|
||||
struct
|
||||
+ {
|
||||
{
|
||||
+ ID3D11Predicate *predicate;
|
||||
+ BOOL value;
|
||||
+ } set_predication_info;
|
||||
+ struct
|
||||
{
|
||||
+ {
|
||||
ID3D11ShaderResourceView *view;
|
||||
} generate_mips_info;
|
||||
struct
|
||||
@@ -716,6 +722,12 @@ static void free_deferred_calls(struct list *commands)
|
||||
ID3D11Buffer_Release(call->dispatch_indirect_info.buffer);
|
||||
break;
|
||||
@ -44,21 +44,21 @@ index 5a4fd13d611..eb32c50ea8b 100644
|
||||
case DEFERRED_CLEARSTATE:
|
||||
{
|
||||
break; /* nothing to do */
|
||||
@@ -1121,6 +1133,13 @@ static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *command
|
||||
@@ -1121,6 +1133,13 @@ static void exec_deferred_calls(ID3D11DeviceContext1 *iface, struct list *comman
|
||||
call->dispatch_indirect_info.offset);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_SETPREDICATION:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_SetPredication(iface,
|
||||
+ ID3D11DeviceContext1_SetPredication(iface,
|
||||
+ call->set_predication_info.predicate,
|
||||
+ call->set_predication_info.value);
|
||||
+ break;
|
||||
+ }
|
||||
case DEFERRED_CLEARSTATE:
|
||||
{
|
||||
ID3D11DeviceContext_ClearState(iface);
|
||||
@@ -4483,7 +4502,18 @@ static HRESULT STDMETHODCALLTYPE d3d11_deferred_context_GetData(ID3D11DeviceCont
|
||||
ID3D11DeviceContext1_ClearState(iface);
|
||||
@@ -4663,7 +4682,18 @@ static HRESULT STDMETHODCALLTYPE d3d11_deferred_context_GetData(ID3D11DeviceCont
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_SetPredication(ID3D11DeviceContext *iface,
|
||||
ID3D11Predicate *predicate, BOOL value)
|
||||
{
|
||||
@ -79,5 +79,5 @@ index 5a4fd13d611..eb32c50ea8b 100644
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_GSSetShaderResources(ID3D11DeviceContext *iface,
|
||||
--
|
||||
2.14.1
|
||||
1.9.1
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From c252dab70a66866545221059544881116b49cd08 Mon Sep 17 00:00:00 2001
|
||||
From 2aca1492440a076d00c910b6479b76fe69c1b2ee Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Thu, 31 Aug 2017 05:04:15 +0200
|
||||
Subject: d3d11: Implement d3d11_deferred_context_UpdateSubresource.
|
||||
Subject: [PATCH] d3d11: Implement d3d11_deferred_context_UpdateSubresource.
|
||||
|
||||
---
|
||||
dlls/d3d11/device.c | 75 +++++++++++++++++++++++++++++++++++++-
|
||||
@ -11,7 +11,7 @@ Subject: d3d11: Implement d3d11_deferred_context_UpdateSubresource.
|
||||
4 files changed, 170 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
|
||||
index eb32c50ea8b..6812a608856 100644
|
||||
index c83d6a0..4f3700d 100644
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -45,6 +45,7 @@ enum deferred_cmd
|
||||
@ -22,11 +22,10 @@ index eb32c50ea8b..6812a608856 100644
|
||||
DEFERRED_RESOLVESUBRESOURCE, /* resolve_subresource_info */
|
||||
DEFERRED_COPYSTRUCTURECOUNT, /* copy_structure_count_info */
|
||||
|
||||
@@ -184,6 +185,15 @@ struct deferred_call
|
||||
D3D11_BOX *src_box;
|
||||
@@ -185,6 +186,15 @@ struct deferred_call
|
||||
} copy_subresource_region_info;
|
||||
struct
|
||||
+ {
|
||||
{
|
||||
+ ID3D11Resource *resource;
|
||||
+ UINT subresource_idx;
|
||||
+ D3D11_BOX *box;
|
||||
@ -35,9 +34,10 @@ index eb32c50ea8b..6812a608856 100644
|
||||
+ UINT depth_pitch;
|
||||
+ } update_subresource_info;
|
||||
+ struct
|
||||
{
|
||||
+ {
|
||||
ID3D11Resource *dst_resource;
|
||||
UINT dst_subresource_idx;
|
||||
ID3D11Resource *src_resource;
|
||||
@@ -568,6 +578,12 @@ static void free_deferred_calls(struct list *commands)
|
||||
ID3D11Resource_Release(call->copy_subresource_region_info.src_resource);
|
||||
break;
|
||||
@ -51,13 +51,13 @@ index eb32c50ea8b..6812a608856 100644
|
||||
case DEFERRED_RESOLVESUBRESOURCE:
|
||||
{
|
||||
if (call->resolve_subresource_info.dst_resource)
|
||||
@@ -899,6 +915,17 @@ static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *command
|
||||
@@ -899,6 +915,17 @@ static void exec_deferred_calls(ID3D11DeviceContext1 *iface, struct list *comman
|
||||
call->copy_structure_count_info.src_view);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_UPDATESUBRESOURCE:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_UpdateSubresource(iface,
|
||||
+ ID3D11DeviceContext1_UpdateSubresource(iface,
|
||||
+ call->update_subresource_info.resource,
|
||||
+ call->update_subresource_info.subresource_idx,
|
||||
+ call->update_subresource_info.box,
|
||||
@ -68,8 +68,8 @@ index eb32c50ea8b..6812a608856 100644
|
||||
+ }
|
||||
case DEFERRED_CSSETSHADER:
|
||||
{
|
||||
ID3D11DeviceContext_CSSetShader(iface, call->cs_info.shader, NULL, 0);
|
||||
@@ -4873,8 +4900,54 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_UpdateSubresource(ID3D11Dev
|
||||
ID3D11DeviceContext1_CSSetShader(iface, call->cs_info.shader, NULL, 0);
|
||||
@@ -5054,8 +5081,54 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_UpdateSubresource(ID3D11Dev
|
||||
ID3D11Resource *resource, UINT subresource_idx, const D3D11_BOX *box,
|
||||
const void *data, UINT row_pitch, UINT depth_pitch)
|
||||
{
|
||||
@ -126,10 +126,10 @@ index eb32c50ea8b..6812a608856 100644
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_CopyStructureCount(ID3D11DeviceContext *iface,
|
||||
diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c
|
||||
index ce522ddc944..78deb5078b1 100644
|
||||
index 28581a1..c2a9933 100644
|
||||
--- a/dlls/wined3d/resource.c
|
||||
+++ b/dlls/wined3d/resource.c
|
||||
@@ -382,6 +382,99 @@ HRESULT CDECL wined3d_resource_unmap(struct wined3d_resource *resource, unsigned
|
||||
@@ -373,6 +373,99 @@ HRESULT CDECL wined3d_resource_unmap(struct wined3d_resource *resource, unsigned
|
||||
return wined3d_cs_unmap(resource->device->cs, resource, sub_resource_idx);
|
||||
}
|
||||
|
||||
@ -230,10 +230,10 @@ index ce522ddc944..78deb5078b1 100644
|
||||
{
|
||||
wined3d_cs_emit_preload_resource(resource->device->cs, resource);
|
||||
diff --git a/dlls/wined3d/wined3d.spec b/dlls/wined3d/wined3d.spec
|
||||
index e8e96bdedb6..e4d5f2ed9ac 100644
|
||||
index 58dc0a9..fe6e0af 100644
|
||||
--- a/dlls/wined3d/wined3d.spec
|
||||
+++ b/dlls/wined3d/wined3d.spec
|
||||
@@ -226,6 +226,7 @@
|
||||
@@ -234,6 +234,7 @@
|
||||
@ cdecl wined3d_resource_set_parent(ptr ptr)
|
||||
@ cdecl wined3d_resource_set_priority(ptr long)
|
||||
@ cdecl wined3d_resource_unmap(ptr long)
|
||||
@ -242,10 +242,10 @@ index e8e96bdedb6..e4d5f2ed9ac 100644
|
||||
@ cdecl wined3d_rendertarget_view_create(ptr ptr ptr ptr ptr)
|
||||
@ cdecl wined3d_rendertarget_view_create_from_sub_resource(ptr long ptr ptr ptr)
|
||||
diff --git a/include/wine/wined3d.h b/include/wine/wined3d.h
|
||||
index df587733b20..905f43dbc5a 100644
|
||||
index fa929e5..0adb891 100644
|
||||
--- a/include/wine/wined3d.h
|
||||
+++ b/include/wine/wined3d.h
|
||||
@@ -2591,6 +2591,8 @@ void __cdecl wined3d_resource_preload(struct wined3d_resource *resource);
|
||||
@@ -2597,6 +2597,8 @@ void __cdecl wined3d_resource_preload(struct wined3d_resource *resource);
|
||||
void __cdecl wined3d_resource_set_parent(struct wined3d_resource *resource, void *parent);
|
||||
DWORD __cdecl wined3d_resource_set_priority(struct wined3d_resource *resource, DWORD priority);
|
||||
HRESULT __cdecl wined3d_resource_unmap(struct wined3d_resource *resource, unsigned int sub_resource_idx);
|
||||
@ -255,5 +255,5 @@ index df587733b20..905f43dbc5a 100644
|
||||
HRESULT __cdecl wined3d_rendertarget_view_create(const struct wined3d_view_desc *desc,
|
||||
struct wined3d_resource *resource, void *parent, const struct wined3d_parent_ops *parent_ops,
|
||||
--
|
||||
2.14.1
|
||||
1.9.1
|
||||
|
||||
|
@ -1,14 +1,15 @@
|
||||
From e6c5265728682dbbe6f860e1dcc5df44f4b31757 Mon Sep 17 00:00:00 2001
|
||||
From d6805cde0e8f01e672f17fb03af947e7d2f83dde Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Sun, 1 Oct 2017 04:43:22 +0200
|
||||
Subject: d3d11: Implement restoring of state after executing a command list.
|
||||
Subject: [PATCH] d3d11: Implement restoring of state after executing a command
|
||||
list.
|
||||
|
||||
---
|
||||
dlls/d3d11/device.c | 233 +++++++++++++++++++++++++++++++++++++++++++++++++++-
|
||||
1 file changed, 229 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
|
||||
index fe2f408c205..d111b6775e4 100644
|
||||
index 4f3700d..e214202 100644
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -367,6 +367,62 @@ struct deferred_call
|
||||
@ -74,13 +75,13 @@ index fe2f408c205..d111b6775e4 100644
|
||||
/* ID3D11CommandList - command list */
|
||||
struct d3d11_command_list
|
||||
{
|
||||
@@ -2515,22 +2571,191 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_ResolveSubresource(ID3D11D
|
||||
@@ -2513,22 +2569,191 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_ResolveSubresource(ID3D11D
|
||||
wined3d_mutex_unlock();
|
||||
}
|
||||
|
||||
+static struct d3d11_state *state_capture(ID3D11DeviceContext *context)
|
||||
+static struct d3d11_state *state_capture(ID3D11DeviceContext1 *context)
|
||||
+{
|
||||
+ struct d3d_device *device = device_from_immediate_ID3D11DeviceContext(context);
|
||||
+ struct d3d_device *device = device_from_immediate_ID3D11DeviceContext1(context);
|
||||
+ unsigned int vp_count = D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE;
|
||||
+ struct d3d11_state *stateblock;
|
||||
+ int i;
|
||||
@ -88,55 +89,55 @@ index fe2f408c205..d111b6775e4 100644
|
||||
+ if (!(stateblock = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*stateblock))))
|
||||
+ return NULL;
|
||||
+
|
||||
+ ID3D11DeviceContext_VSGetShader(context, &stateblock->vs, NULL, 0);
|
||||
+ ID3D11DeviceContext_VSGetSamplers(context, 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT, stateblock->vs_samplers);
|
||||
+ ID3D11DeviceContext_VSGetShaderResources(context, 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT, stateblock->vs_resources);
|
||||
+ ID3D11DeviceContext_VSGetConstantBuffers(context, 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT, stateblock->vs_cbs);
|
||||
+ ID3D11DeviceContext1_VSGetShader(context, &stateblock->vs, NULL, 0);
|
||||
+ ID3D11DeviceContext1_VSGetSamplers(context, 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT, stateblock->vs_samplers);
|
||||
+ ID3D11DeviceContext1_VSGetShaderResources(context, 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT, stateblock->vs_resources);
|
||||
+ ID3D11DeviceContext1_VSGetConstantBuffers(context, 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT, stateblock->vs_cbs);
|
||||
+
|
||||
+ ID3D11DeviceContext_GSGetShader(context, &stateblock->gs, NULL, 0);
|
||||
+ ID3D11DeviceContext_GSGetSamplers(context, 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT, stateblock->gs_samplers);
|
||||
+ ID3D11DeviceContext_GSGetShaderResources(context, 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT, stateblock->gs_resources);
|
||||
+ ID3D11DeviceContext_GSGetConstantBuffers(context, 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT, stateblock->gs_cbs);
|
||||
+ ID3D11DeviceContext1_GSGetShader(context, &stateblock->gs, NULL, 0);
|
||||
+ ID3D11DeviceContext1_GSGetSamplers(context, 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT, stateblock->gs_samplers);
|
||||
+ ID3D11DeviceContext1_GSGetShaderResources(context, 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT, stateblock->gs_resources);
|
||||
+ ID3D11DeviceContext1_GSGetConstantBuffers(context, 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT, stateblock->gs_cbs);
|
||||
+
|
||||
+ ID3D11DeviceContext_PSGetShader(context, &stateblock->ps, NULL, 0);
|
||||
+ ID3D11DeviceContext_PSGetSamplers(context, 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT, stateblock->ps_samplers);
|
||||
+ ID3D11DeviceContext_PSGetShaderResources(context, 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT, stateblock->ps_resources);
|
||||
+ ID3D11DeviceContext_PSGetConstantBuffers(context, 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT, stateblock->ps_cbs);
|
||||
+ ID3D11DeviceContext1_PSGetShader(context, &stateblock->ps, NULL, 0);
|
||||
+ ID3D11DeviceContext1_PSGetSamplers(context, 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT, stateblock->ps_samplers);
|
||||
+ ID3D11DeviceContext1_PSGetShaderResources(context, 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT, stateblock->ps_resources);
|
||||
+ ID3D11DeviceContext1_PSGetConstantBuffers(context, 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT, stateblock->ps_cbs);
|
||||
+
|
||||
+ ID3D11DeviceContext_HSGetShader(context, &stateblock->hs, NULL, 0);
|
||||
+ ID3D11DeviceContext_HSGetSamplers(context, 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT, stateblock->hs_samplers);
|
||||
+ ID3D11DeviceContext_HSGetShaderResources(context, 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT, stateblock->hs_resources);
|
||||
+ ID3D11DeviceContext_HSGetConstantBuffers(context, 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT, stateblock->hs_cbs);
|
||||
+ ID3D11DeviceContext1_HSGetShader(context, &stateblock->hs, NULL, 0);
|
||||
+ ID3D11DeviceContext1_HSGetSamplers(context, 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT, stateblock->hs_samplers);
|
||||
+ ID3D11DeviceContext1_HSGetShaderResources(context, 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT, stateblock->hs_resources);
|
||||
+ ID3D11DeviceContext1_HSGetConstantBuffers(context, 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT, stateblock->hs_cbs);
|
||||
+
|
||||
+ ID3D11DeviceContext_DSGetShader(context, &stateblock->ds, NULL, 0);
|
||||
+ ID3D11DeviceContext_DSGetSamplers(context, 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT, stateblock->ds_samplers);
|
||||
+ ID3D11DeviceContext_DSGetShaderResources(context, 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT, stateblock->ds_resources);
|
||||
+ ID3D11DeviceContext_DSGetConstantBuffers(context, 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT, stateblock->ds_cbs);
|
||||
+ ID3D11DeviceContext1_DSGetShader(context, &stateblock->ds, NULL, 0);
|
||||
+ ID3D11DeviceContext1_DSGetSamplers(context, 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT, stateblock->ds_samplers);
|
||||
+ ID3D11DeviceContext1_DSGetShaderResources(context, 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT, stateblock->ds_resources);
|
||||
+ ID3D11DeviceContext1_DSGetConstantBuffers(context, 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT, stateblock->ds_cbs);
|
||||
+
|
||||
+ ID3D11DeviceContext_IAGetVertexBuffers(context, 0, MAX_WINED3D_STREAMS, stateblock->vbs, stateblock->vb_strides, stateblock->vb_offsets);
|
||||
+ ID3D11DeviceContext_IAGetIndexBuffer(context, &stateblock->ib, &stateblock->ib_format, &stateblock->ib_offset);
|
||||
+ ID3D11DeviceContext_IAGetInputLayout(context, &stateblock->il);
|
||||
+ ID3D11DeviceContext_IAGetPrimitiveTopology(context, &stateblock->topology);
|
||||
+ ID3D11DeviceContext1_IAGetVertexBuffers(context, 0, MAX_WINED3D_STREAMS, stateblock->vbs, stateblock->vb_strides, stateblock->vb_offsets);
|
||||
+ ID3D11DeviceContext1_IAGetIndexBuffer(context, &stateblock->ib, &stateblock->ib_format, &stateblock->ib_offset);
|
||||
+ ID3D11DeviceContext1_IAGetInputLayout(context, &stateblock->il);
|
||||
+ ID3D11DeviceContext1_IAGetPrimitiveTopology(context, &stateblock->topology);
|
||||
+
|
||||
+ ID3D11DeviceContext_OMGetRenderTargets(context, D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT, stateblock->rtvs, &stateblock->dsv);
|
||||
+ ID3D11DeviceContext_OMGetDepthStencilState(context, &stateblock->dss, &stateblock->stencil_ref);
|
||||
+ ID3D11DeviceContext_OMGetBlendState(context, &stateblock->bs, stateblock->blend_factor, &stateblock->sample_mask);
|
||||
+ ID3D11DeviceContext1_OMGetRenderTargets(context, D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT, stateblock->rtvs, &stateblock->dsv);
|
||||
+ ID3D11DeviceContext1_OMGetDepthStencilState(context, &stateblock->dss, &stateblock->stencil_ref);
|
||||
+ ID3D11DeviceContext1_OMGetBlendState(context, &stateblock->bs, stateblock->blend_factor, &stateblock->sample_mask);
|
||||
+
|
||||
+ ID3D11DeviceContext_RSGetViewports(context, &vp_count, stateblock->vps);
|
||||
+ ID3D11DeviceContext_RSGetScissorRects(context, &vp_count, stateblock->scissor_rects);
|
||||
+ ID3D11DeviceContext_RSGetState(context, &stateblock->rs);
|
||||
+ ID3D11DeviceContext1_RSGetViewports(context, &vp_count, stateblock->vps);
|
||||
+ ID3D11DeviceContext1_RSGetScissorRects(context, &vp_count, stateblock->scissor_rects);
|
||||
+ ID3D11DeviceContext1_RSGetState(context, &stateblock->rs);
|
||||
+
|
||||
+ ID3D11DeviceContext_SOGetTargets(context, D3D11_SO_BUFFER_SLOT_COUNT, stateblock->so_buffers);
|
||||
+ ID3D11DeviceContext1_SOGetTargets(context, D3D11_SO_BUFFER_SLOT_COUNT, stateblock->so_buffers);
|
||||
+ /* For some reason the d3d11 get function is missing the offset parameter */
|
||||
+ for (i = 0; i < D3D11_SO_BUFFER_SLOT_COUNT; i++)
|
||||
+ wined3d_device_get_stream_output(device->wined3d_device, i, &stateblock->so_offsets[i]);
|
||||
+
|
||||
+ ID3D11DeviceContext_GetPredication(context, &stateblock->predicate, &stateblock->predicate_value);
|
||||
+ ID3D11DeviceContext1_GetPredication(context, &stateblock->predicate, &stateblock->predicate_value);
|
||||
+
|
||||
+ return stateblock;
|
||||
+}
|
||||
+
|
||||
+static void state_apply(ID3D11DeviceContext *context, struct d3d11_state *stateblock)
|
||||
+static void state_apply(ID3D11DeviceContext1 *context, struct d3d11_state *stateblock)
|
||||
+{
|
||||
+ static DWORD warn_once;
|
||||
+ int i;
|
||||
@ -146,10 +147,10 @@ index fe2f408c205..d111b6775e4 100644
|
||||
+
|
||||
+ if (!warn_once++) FIXME("restoring state is potentially slow and incomplete!\n");
|
||||
+
|
||||
+ ID3D11DeviceContext_VSSetShader(context, stateblock->vs, NULL, 0);
|
||||
+ ID3D11DeviceContext_VSSetSamplers(context, 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT, stateblock->vs_samplers);
|
||||
+ ID3D11DeviceContext_VSSetShaderResources(context, 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT, stateblock->vs_resources);
|
||||
+ ID3D11DeviceContext_VSSetConstantBuffers(context, 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT, stateblock->vs_cbs);
|
||||
+ ID3D11DeviceContext1_VSSetShader(context, stateblock->vs, NULL, 0);
|
||||
+ ID3D11DeviceContext1_VSSetSamplers(context, 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT, stateblock->vs_samplers);
|
||||
+ ID3D11DeviceContext1_VSSetShaderResources(context, 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT, stateblock->vs_resources);
|
||||
+ ID3D11DeviceContext1_VSSetConstantBuffers(context, 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT, stateblock->vs_cbs);
|
||||
+
|
||||
+ if (stateblock->vs) ID3D11VertexShader_Release(stateblock->vs);
|
||||
+ for (i = 0; i < D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT; i++)
|
||||
@ -159,10 +160,10 @@ index fe2f408c205..d111b6775e4 100644
|
||||
+ for (i = 0; i < D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT; i++)
|
||||
+ if (stateblock->vs_cbs[i]) ID3D11Buffer_Release(stateblock->vs_cbs[i]);
|
||||
+
|
||||
+ ID3D11DeviceContext_GSSetShader(context, stateblock->gs, NULL, 0);
|
||||
+ ID3D11DeviceContext_GSSetSamplers(context, 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT, stateblock->gs_samplers);
|
||||
+ ID3D11DeviceContext_GSSetShaderResources(context, 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT, stateblock->gs_resources);
|
||||
+ ID3D11DeviceContext_GSSetConstantBuffers(context, 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT, stateblock->gs_cbs);
|
||||
+ ID3D11DeviceContext1_GSSetShader(context, stateblock->gs, NULL, 0);
|
||||
+ ID3D11DeviceContext1_GSSetSamplers(context, 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT, stateblock->gs_samplers);
|
||||
+ ID3D11DeviceContext1_GSSetShaderResources(context, 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT, stateblock->gs_resources);
|
||||
+ ID3D11DeviceContext1_GSSetConstantBuffers(context, 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT, stateblock->gs_cbs);
|
||||
+
|
||||
+ if (stateblock->gs) ID3D11GeometryShader_Release(stateblock->gs);
|
||||
+ for (i = 0; i < D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT; i++)
|
||||
@ -172,10 +173,10 @@ index fe2f408c205..d111b6775e4 100644
|
||||
+ for (i = 0; i < D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT; i++)
|
||||
+ if (stateblock->gs_cbs[i]) ID3D11Buffer_Release(stateblock->gs_cbs[i]);
|
||||
+
|
||||
+ ID3D11DeviceContext_PSSetShader(context, stateblock->ps, NULL, 0);
|
||||
+ ID3D11DeviceContext_PSSetSamplers(context, 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT, stateblock->ps_samplers);
|
||||
+ ID3D11DeviceContext_PSSetShaderResources(context, 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT, stateblock->ps_resources);
|
||||
+ ID3D11DeviceContext_PSSetConstantBuffers(context, 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT, stateblock->ps_cbs);
|
||||
+ ID3D11DeviceContext1_PSSetShader(context, stateblock->ps, NULL, 0);
|
||||
+ ID3D11DeviceContext1_PSSetSamplers(context, 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT, stateblock->ps_samplers);
|
||||
+ ID3D11DeviceContext1_PSSetShaderResources(context, 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT, stateblock->ps_resources);
|
||||
+ ID3D11DeviceContext1_PSSetConstantBuffers(context, 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT, stateblock->ps_cbs);
|
||||
+
|
||||
+ if (stateblock->ps) ID3D11PixelShader_Release(stateblock->ps);
|
||||
+ for (i = 0; i < D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT; i++)
|
||||
@ -185,10 +186,10 @@ index fe2f408c205..d111b6775e4 100644
|
||||
+ for (i = 0; i < D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT; i++)
|
||||
+ if (stateblock->ps_cbs[i]) ID3D11Buffer_Release(stateblock->ps_cbs[i]);
|
||||
+
|
||||
+ ID3D11DeviceContext_HSSetShader(context, stateblock->hs, NULL, 0);
|
||||
+ ID3D11DeviceContext_HSSetSamplers(context, 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT, stateblock->hs_samplers);
|
||||
+ ID3D11DeviceContext_HSSetShaderResources(context, 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT, stateblock->hs_resources);
|
||||
+ ID3D11DeviceContext_HSSetConstantBuffers(context, 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT, stateblock->hs_cbs);
|
||||
+ ID3D11DeviceContext1_HSSetShader(context, stateblock->hs, NULL, 0);
|
||||
+ ID3D11DeviceContext1_HSSetSamplers(context, 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT, stateblock->hs_samplers);
|
||||
+ ID3D11DeviceContext1_HSSetShaderResources(context, 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT, stateblock->hs_resources);
|
||||
+ ID3D11DeviceContext1_HSSetConstantBuffers(context, 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT, stateblock->hs_cbs);
|
||||
+
|
||||
+ if (stateblock->hs) ID3D11HullShader_Release(stateblock->hs);
|
||||
+ for (i = 0; i < D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT; i++)
|
||||
@ -198,10 +199,10 @@ index fe2f408c205..d111b6775e4 100644
|
||||
+ for (i = 0; i < D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT; i++)
|
||||
+ if (stateblock->hs_cbs[i]) ID3D11Buffer_Release(stateblock->hs_cbs[i]);
|
||||
+
|
||||
+ ID3D11DeviceContext_DSSetShader(context, stateblock->ds, NULL, 0);
|
||||
+ ID3D11DeviceContext_DSSetSamplers(context, 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT, stateblock->ds_samplers);
|
||||
+ ID3D11DeviceContext_DSSetShaderResources(context, 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT, stateblock->ds_resources);
|
||||
+ ID3D11DeviceContext_DSSetConstantBuffers(context, 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT, stateblock->ds_cbs);
|
||||
+ ID3D11DeviceContext1_DSSetShader(context, stateblock->ds, NULL, 0);
|
||||
+ ID3D11DeviceContext1_DSSetSamplers(context, 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT, stateblock->ds_samplers);
|
||||
+ ID3D11DeviceContext1_DSSetShaderResources(context, 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT, stateblock->ds_resources);
|
||||
+ ID3D11DeviceContext1_DSSetConstantBuffers(context, 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT, stateblock->ds_cbs);
|
||||
+
|
||||
+ if (stateblock->ds) ID3D11DomainShader_Release(stateblock->ds);
|
||||
+ for (i = 0; i < D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT; i++)
|
||||
@ -211,19 +212,19 @@ index fe2f408c205..d111b6775e4 100644
|
||||
+ for (i = 0; i < D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT; i++)
|
||||
+ if (stateblock->ds_cbs[i]) ID3D11Buffer_Release(stateblock->ds_cbs[i]);
|
||||
+
|
||||
+ ID3D11DeviceContext_IASetVertexBuffers(context, 0, MAX_WINED3D_STREAMS, stateblock->vbs, stateblock->vb_strides, stateblock->vb_offsets);
|
||||
+ ID3D11DeviceContext_IASetIndexBuffer(context, stateblock->ib, stateblock->ib_format, stateblock->ib_offset);
|
||||
+ ID3D11DeviceContext_IASetInputLayout(context, stateblock->il);
|
||||
+ ID3D11DeviceContext_IASetPrimitiveTopology(context, stateblock->topology);
|
||||
+ ID3D11DeviceContext1_IASetVertexBuffers(context, 0, MAX_WINED3D_STREAMS, stateblock->vbs, stateblock->vb_strides, stateblock->vb_offsets);
|
||||
+ ID3D11DeviceContext1_IASetIndexBuffer(context, stateblock->ib, stateblock->ib_format, stateblock->ib_offset);
|
||||
+ ID3D11DeviceContext1_IASetInputLayout(context, stateblock->il);
|
||||
+ ID3D11DeviceContext1_IASetPrimitiveTopology(context, stateblock->topology);
|
||||
+
|
||||
+ for (i = 0; i < MAX_WINED3D_STREAMS; i++)
|
||||
+ if (stateblock->vbs[i]) ID3D11Buffer_Release(stateblock->vbs[i]);
|
||||
+ if (stateblock->ib) ID3D11Buffer_Release(stateblock->ib);
|
||||
+ if (stateblock->il) ID3D11InputLayout_Release(stateblock->il);
|
||||
+
|
||||
+ ID3D11DeviceContext_OMSetRenderTargets(context, D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT, stateblock->rtvs, stateblock->dsv);
|
||||
+ ID3D11DeviceContext_OMSetDepthStencilState(context, stateblock->dss, stateblock->stencil_ref);
|
||||
+ ID3D11DeviceContext_OMSetBlendState(context, stateblock->bs, stateblock->blend_factor, stateblock->sample_mask);
|
||||
+ ID3D11DeviceContext1_OMSetRenderTargets(context, D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT, stateblock->rtvs, stateblock->dsv);
|
||||
+ ID3D11DeviceContext1_OMSetDepthStencilState(context, stateblock->dss, stateblock->stencil_ref);
|
||||
+ ID3D11DeviceContext1_OMSetBlendState(context, stateblock->bs, stateblock->blend_factor, stateblock->sample_mask);
|
||||
+
|
||||
+ for (i = 0; i < D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT; i++)
|
||||
+ if (stateblock->rtvs[i]) ID3D11RenderTargetView_Release(stateblock->rtvs[i]);
|
||||
@ -231,14 +232,14 @@ index fe2f408c205..d111b6775e4 100644
|
||||
+ if (stateblock->dss) ID3D11DepthStencilState_Release(stateblock->dss);
|
||||
+ if (stateblock->bs) ID3D11BlendState_Release(stateblock->bs);
|
||||
+
|
||||
+ ID3D11DeviceContext_RSSetViewports(context, D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE, stateblock->vps);
|
||||
+ ID3D11DeviceContext_RSSetScissorRects(context, D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE, stateblock->scissor_rects);
|
||||
+ ID3D11DeviceContext_RSSetState(context, stateblock->rs);
|
||||
+ ID3D11DeviceContext1_RSSetViewports(context, D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE, stateblock->vps);
|
||||
+ ID3D11DeviceContext1_RSSetScissorRects(context, D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE, stateblock->scissor_rects);
|
||||
+ ID3D11DeviceContext1_RSSetState(context, stateblock->rs);
|
||||
+
|
||||
+ if (stateblock->rs) ID3D11RasterizerState_Release(stateblock->rs);
|
||||
+
|
||||
+ ID3D11DeviceContext_SOSetTargets(context, D3D11_SO_BUFFER_SLOT_COUNT, stateblock->so_buffers, stateblock->so_offsets);
|
||||
+ ID3D11DeviceContext_SetPredication(context, stateblock->predicate, stateblock->predicate_value);
|
||||
+ ID3D11DeviceContext1_SOSetTargets(context, D3D11_SO_BUFFER_SLOT_COUNT, stateblock->so_buffers, stateblock->so_offsets);
|
||||
+ ID3D11DeviceContext1_SetPredication(context, stateblock->predicate, stateblock->predicate_value);
|
||||
+
|
||||
+ for (i = 0; i < D3D11_SO_BUFFER_SLOT_COUNT; i++)
|
||||
+ if (stateblock->so_buffers[i]) ID3D11Buffer_Release(stateblock->so_buffers[i]);
|
||||
@ -247,7 +248,7 @@ index fe2f408c205..d111b6775e4 100644
|
||||
+ HeapFree(GetProcessHeap(), 0, stateblock);
|
||||
+}
|
||||
+
|
||||
static void STDMETHODCALLTYPE d3d11_immediate_context_ExecuteCommandList(ID3D11DeviceContext *iface,
|
||||
static void STDMETHODCALLTYPE d3d11_immediate_context_ExecuteCommandList(ID3D11DeviceContext1 *iface,
|
||||
ID3D11CommandList *command_list, BOOL restore_state)
|
||||
{
|
||||
struct d3d11_command_list *cmdlist = unsafe_impl_from_ID3D11CommandList(command_list);
|
||||
@ -264,12 +265,12 @@ index fe2f408c205..d111b6775e4 100644
|
||||
wined3d_mutex_lock();
|
||||
+ if (restore_state) stateblock = state_capture(iface);
|
||||
exec_deferred_calls(iface, &cmdlist->commands);
|
||||
- ID3D11DeviceContext_ClearState(iface);
|
||||
- ID3D11DeviceContext1_ClearState(iface);
|
||||
+ if (restore_state) state_apply(iface, stateblock);
|
||||
+ else ID3D11DeviceContext_ClearState(iface);
|
||||
+ else ID3D11DeviceContext1_ClearState(iface);
|
||||
wined3d_mutex_unlock();
|
||||
}
|
||||
|
||||
--
|
||||
2.14.1
|
||||
1.9.1
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From e1467653758c0df73b894029c82b2d8f0d7223ba Mon Sep 17 00:00:00 2001
|
||||
From a8a3e227939cb3463553c9857d051133820ae011 Mon Sep 17 00:00:00 2001
|
||||
From: Steve Melenchuk <smelenchuk@gmail.com>
|
||||
Date: Sat, 7 Oct 2017 18:33:16 -0600
|
||||
Subject: d3d11: Allow NULL pointer for initial count in
|
||||
Subject: [PATCH] d3d11: Allow NULL pointer for initial count in
|
||||
d3d11_deferred_context_CSSetUnorderedAccessViews.
|
||||
|
||||
---
|
||||
@ -9,10 +9,10 @@ Subject: d3d11: Allow NULL pointer for initial count in
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
|
||||
index 8812c90f140..f0f9d2b6e10 100644
|
||||
index e214202..a011114 100644
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -5444,12 +5444,13 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_CSSetUnorderedAccessViews(I
|
||||
@@ -5659,12 +5659,13 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_CSSetUnorderedAccessViews(I
|
||||
call->unordered_view.start_slot = start_slot;
|
||||
call->unordered_view.num_views = view_count;
|
||||
call->unordered_view.views = (void *)(call + 1);
|
||||
@ -29,5 +29,5 @@ index 8812c90f140..f0f9d2b6e10 100644
|
||||
}
|
||||
|
||||
--
|
||||
2.14.1
|
||||
1.9.1
|
||||
|
||||
|
@ -1,39 +0,0 @@
|
||||
From 4447aeae75be2479c1008d05367eb3f7422d0c09 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Thu, 31 Aug 2017 01:32:46 +0200
|
||||
Subject: mfplat: Return S_OK from MFStartup stub.
|
||||
|
||||
---
|
||||
dlls/mfplat/main.c | 2 +-
|
||||
dlls/mfplat/tests/mfplat.c | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/mfplat/main.c b/dlls/mfplat/main.c
|
||||
index e6616c81024..6864079d9d8 100644
|
||||
--- a/dlls/mfplat/main.c
|
||||
+++ b/dlls/mfplat/main.c
|
||||
@@ -405,7 +405,7 @@ HRESULT WINAPI MFTUnregister(CLSID clsid)
|
||||
HRESULT WINAPI MFStartup(ULONG version, DWORD flags)
|
||||
{
|
||||
FIXME("(%u, %u): stub\n", version, flags);
|
||||
- return MF_E_BAD_STARTUP_VERSION;
|
||||
+ return S_OK;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
diff --git a/dlls/mfplat/tests/mfplat.c b/dlls/mfplat/tests/mfplat.c
|
||||
index 13853c5fb5b..fcf92f30d07 100644
|
||||
--- a/dlls/mfplat/tests/mfplat.c
|
||||
+++ b/dlls/mfplat/tests/mfplat.c
|
||||
@@ -200,7 +200,7 @@ static void test_MFCreateMediaType(void)
|
||||
IMFMediaType *mediatype;
|
||||
|
||||
hr = MFStartup(MF_VERSION, MFSTARTUP_FULL);
|
||||
- todo_wine ok(hr == S_OK, "got 0x%08x\n", hr);
|
||||
+ ok(hr == S_OK, "got 0x%08x\n", hr);
|
||||
|
||||
if(0)
|
||||
{
|
||||
--
|
||||
2.14.1
|
||||
|
@ -1 +0,0 @@
|
||||
Fixes: [43607] Return S_OK from MFStartup stub
|
@ -1,7 +1,7 @@
|
||||
From 03ef8b6a13aa0d5b59da879d19585d4e1d64eb2d Mon Sep 17 00:00:00 2001
|
||||
From ddb398fc71e14607ecc400f049b04a93181f4987 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Fri, 7 Jul 2017 23:56:16 +0200
|
||||
Subject: nvapi: Implement NvAPI_D3D11_SetDepthBoundsTest. (v2)
|
||||
Subject: [PATCH] nvapi: Implement NvAPI_D3D11_SetDepthBoundsTest. (v2)
|
||||
|
||||
---
|
||||
dlls/d3d11/device.c | 12 ++++++++++++
|
||||
@ -11,22 +11,19 @@ Subject: nvapi: Implement NvAPI_D3D11_SetDepthBoundsTest. (v2)
|
||||
4 files changed, 60 insertions(+)
|
||||
|
||||
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
|
||||
index 421af5a0449..d3660a12e50 100644
|
||||
index d8059e5..497ed9b 100644
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -981,16 +981,23 @@ static inline struct d3d_device *device_from_immediate_ID3D11DeviceContext(ID3D1
|
||||
static HRESULT STDMETHODCALLTYPE d3d11_immediate_context_QueryInterface(ID3D11DeviceContext *iface,
|
||||
@@ -4453,6 +4453,8 @@ static inline struct d3d11_deferred_context *impl_from_deferred_ID3D11DeviceCont
|
||||
static HRESULT STDMETHODCALLTYPE d3d11_deferred_context_QueryInterface(ID3D11DeviceContext *iface,
|
||||
REFIID riid, void **out)
|
||||
{
|
||||
+ struct d3d_device *device = device_from_immediate_ID3D11DeviceContext(iface);
|
||||
+ struct d3d_device *device = device_from_immediate_ID3D11DeviceContext1( (ID3D11DeviceContext1*)iface);
|
||||
+
|
||||
TRACE("iface %p, riid %s, out %p.\n", iface, debugstr_guid(riid), out);
|
||||
|
||||
if (IsEqualGUID(riid, &IID_ID3D11DeviceContext)
|
||||
|| IsEqualGUID(riid, &IID_ID3D11DeviceChild)
|
||||
|| IsEqualGUID(riid, &IID_IUnknown))
|
||||
{
|
||||
ID3D11DeviceContext_AddRef(iface);
|
||||
@@ -4463,6 +4465,11 @@ static HRESULT STDMETHODCALLTYPE d3d11_deferred_context_QueryInterface(ID3D11Dev
|
||||
*out = iface;
|
||||
return S_OK;
|
||||
}
|
||||
@ -38,7 +35,7 @@ index 421af5a0449..d3660a12e50 100644
|
||||
|
||||
WARN("%s not implemented, returning E_NOINTERFACE.\n", debugstr_guid(riid));
|
||||
*out = NULL;
|
||||
@@ -5951,6 +5958,11 @@ static HRESULT STDMETHODCALLTYPE d3d_device_inner_QueryInterface(IUnknown *iface
|
||||
@@ -7148,6 +7155,11 @@ static HRESULT STDMETHODCALLTYPE d3d_device_inner_QueryInterface(IUnknown *iface
|
||||
{
|
||||
*out = &device->IWineDXGIDeviceParent_iface;
|
||||
}
|
||||
@ -51,7 +48,7 @@ index 421af5a0449..d3660a12e50 100644
|
||||
{
|
||||
WARN("%s not implemented, returning E_NOINTERFACE.\n", debugstr_guid(riid));
|
||||
diff --git a/dlls/nvapi/nvapi.c b/dlls/nvapi/nvapi.c
|
||||
index 12ddb0d871f..22894d6a093 100644
|
||||
index 12ddb0d..22894d6 100644
|
||||
--- a/dlls/nvapi/nvapi.c
|
||||
+++ b/dlls/nvapi/nvapi.c
|
||||
@@ -22,6 +22,7 @@
|
||||
@ -105,7 +102,7 @@ index 12ddb0d871f..22894d6a093 100644
|
||||
unsigned int i;
|
||||
TRACE("(%x)\n", offset);
|
||||
diff --git a/dlls/nvapi/tests/nvapi.c b/dlls/nvapi/tests/nvapi.c
|
||||
index c8b66ac2fa3..87327c0e79b 100644
|
||||
index c8b66ac..87327c0 100644
|
||||
--- a/dlls/nvapi/tests/nvapi.c
|
||||
+++ b/dlls/nvapi/tests/nvapi.c
|
||||
@@ -45,6 +45,7 @@ static NvAPI_Status (CDECL* pNvAPI_EnumNvidiaDisplayHandle)(NvU32 thisEnum, NvDi
|
||||
@ -154,7 +151,7 @@ index c8b66ac2fa3..87327c0e79b 100644
|
||||
/* d3d9 tests */
|
||||
wc.lpfnWndProc = DefWindowProcA;
|
||||
diff --git a/include/wine/wined3d.h b/include/wine/wined3d.h
|
||||
index 8b014db9b92..b8fb5503e53 100644
|
||||
index 37d5770..6772524 100644
|
||||
--- a/include/wine/wined3d.h
|
||||
+++ b/include/wine/wined3d.h
|
||||
@@ -32,6 +32,8 @@
|
||||
@ -167,5 +164,5 @@ index 8b014db9b92..b8fb5503e53 100644
|
||||
|
||||
#define _FACWINED3D 0x876
|
||||
--
|
||||
2.13.1
|
||||
1.9.1
|
||||
|
||||
|
@ -52,13 +52,13 @@ usage()
|
||||
# Get the upstream commit sha
|
||||
upstream_commit()
|
||||
{
|
||||
echo "9fecb7499531ddbcde7970b4d98df92dbc1bc010"
|
||||
echo "784b617ae936f97118e18624da85cc9de900e3a7"
|
||||
}
|
||||
|
||||
# Show version information
|
||||
version()
|
||||
{
|
||||
echo "Wine Staging 3.7"
|
||||
echo "Wine Staging 3.8 (Unreleased)"
|
||||
echo "Copyright (C) 2014-2018 the Wine Staging project authors."
|
||||
echo "Copyright (C) 2018 Alistair Leslie-Hughes"
|
||||
echo ""
|
||||
@ -190,7 +190,6 @@ patch_enable_all ()
|
||||
enable_libs_Debug_Channel="$1"
|
||||
enable_libs_Unicode_Collation="$1"
|
||||
enable_loader_OSX_Preloader="$1"
|
||||
enable_mfplat_MFStartup="$1"
|
||||
enable_mmsystem_dll16_MIDIHDR_Refcount="$1"
|
||||
enable_mountmgr_DosDevices="$1"
|
||||
enable_mscoree_CorValidateImage="$1"
|
||||
@ -758,9 +757,6 @@ patch_enable ()
|
||||
loader-OSX_Preloader)
|
||||
enable_loader_OSX_Preloader="$2"
|
||||
;;
|
||||
mfplat-MFStartup)
|
||||
enable_mfplat_MFStartup="$2"
|
||||
;;
|
||||
mmsystem.dll16-MIDIHDR_Refcount)
|
||||
enable_mmsystem_dll16_MIDIHDR_Refcount="$2"
|
||||
;;
|
||||
@ -4496,21 +4492,6 @@ if test "$enable_loader_OSX_Preloader" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset mfplat-MFStartup
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#43607] Return S_OK from MFStartup stub
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/mfplat/main.c, dlls/mfplat/tests/mfplat.c
|
||||
# |
|
||||
if test "$enable_mfplat_MFStartup" -eq 1; then
|
||||
patch_apply mfplat-MFStartup/0001-mfplat-Return-S_OK-from-MFStartup-stub.patch
|
||||
(
|
||||
printf '%s\n' '+ { "Sebastian Lackner", "mfplat: Return S_OK from MFStartup stub.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset mmsystem.dll16-MIDIHDR_Refcount
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
|
@ -1 +1 @@
|
||||
Wine Staging 3.7
|
||||
Wine Staging 3.8 (Unreleased)
|
||||
|
Loading…
Reference in New Issue
Block a user