mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-01-28 22:04:43 -08:00
Added patches to implement various deferred context methods.
This commit is contained in:
parent
a59a69804a
commit
0211a4935e
@ -0,0 +1,81 @@
|
||||
From 848ac26c5b1e6551639fbef1a03e93ca14d934a2 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.
|
||||
|
||||
---
|
||||
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 8642bf50fb1..98aa5ef6a77 100644
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -42,6 +42,7 @@ enum deferred_cmd
|
||||
|
||||
DEFERRED_CSSETSHADER, /* cs_info */
|
||||
DEFERRED_DSSETSHADER, /* ds_info */
|
||||
+ DEFERRED_GSSETSHADER, /* gs_info */
|
||||
DEFERRED_HSSETSHADER, /* hs_info */
|
||||
DEFERRED_PSSETSHADER, /* ps_info */
|
||||
DEFERRED_VSSETSHADER, /* vs_info */
|
||||
@@ -138,6 +139,11 @@ struct deferred_call
|
||||
} ds_info;
|
||||
struct
|
||||
{
|
||||
+ ID3D11GeometryShader *shader;
|
||||
+ /* FIXME: add class instances */
|
||||
+ } gs_info;
|
||||
+ struct
|
||||
+ {
|
||||
ID3D11HullShader *shader;
|
||||
/* FIXME: add class instances */
|
||||
} hs_info;
|
||||
@@ -404,6 +410,12 @@ static void free_deferred_calls(struct list *commands)
|
||||
ID3D11DomainShader_Release(call->ds_info.shader);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_GSSETSHADER:
|
||||
+ {
|
||||
+ if (call->gs_info.shader)
|
||||
+ ID3D11GeometryShader_Release(call->gs_info.shader);
|
||||
+ break;
|
||||
+ }
|
||||
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);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_GSSETSHADER:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_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
|
||||
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",
|
||||
+ struct d3d11_deferred_context *context = impl_from_deferred_ID3D11DeviceContext(iface);
|
||||
+ struct deferred_call *call;
|
||||
+
|
||||
+ TRACE("iface %p, shader %p, class_instances %p, class_instance_count %u.\n",
|
||||
iface, shader, class_instances, class_instance_count);
|
||||
+
|
||||
+ if (!(call = add_deferred_call(context, 0)))
|
||||
+ return;
|
||||
+
|
||||
+ call->cmd = DEFERRED_GSSETSHADER;
|
||||
+ if (shader) ID3D11GeometryShader_AddRef(shader);
|
||||
+ call->gs_info.shader = shader;
|
||||
}
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_IASetPrimitiveTopology(ID3D11DeviceContext *iface,
|
||||
--
|
||||
2.13.1
|
||||
|
@ -0,0 +1,70 @@
|
||||
From 4e7076c5cc9806ce0e0218588ea587cfe3db8951 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.
|
||||
|
||||
---
|
||||
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
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -55,6 +55,7 @@ enum deferred_cmd
|
||||
|
||||
DEFERRED_CSSETCONSTANTBUFFERS, /* constant_buffers_info */
|
||||
DEFERRED_DSSETCONSTANTBUFFERS, /* constant_buffers_info */
|
||||
+ DEFERRED_GSSETCONSTANTBUFFERS, /* constant_buffers_info */
|
||||
DEFERRED_HSSETCONSTANTBUFFERS, /* constant_buffers_info */
|
||||
DEFERRED_PSSETCONSTANTBUFFERS, /* constant_buffers_info */
|
||||
DEFERRED_VSSETCONSTANTBUFFERS, /* constant_buffers_info */
|
||||
@@ -309,8 +310,8 @@ static void add_deferred_set_samplers(struct d3d11_deferred_context *context, en
|
||||
}
|
||||
}
|
||||
|
||||
-/* for DEFERRED_CSSETCONSTANTBUFFERS. DEFERRED_DSSETCONSTANTBUFFERS, DEFERRED_HSSETCONSTANTBUFFERS,
|
||||
- * DEFERRED_PSSETCONSTANTBUFFERS and DEFERRED_VSSETCONSTANTBUFFERS */
|
||||
+/* for DEFERRED_CSSETCONSTANTBUFFERS. DEFERRED_DSSETCONSTANTBUFFERS, DEFERRED_GSSETCONSTANTBUFFERS,
|
||||
+ * DEFERRED_HSSETCONSTANTBUFFERS, DEFERRED_PSSETCONSTANTBUFFERS and DEFERRED_VSSETCONSTANTBUFFERS */
|
||||
static void add_deferred_set_constant_buffers(struct d3d11_deferred_context *context, enum deferred_cmd cmd,
|
||||
UINT start_slot, UINT buffer_count, ID3D11Buffer *const *buffers)
|
||||
{
|
||||
@@ -456,6 +457,7 @@ static void free_deferred_calls(struct list *commands)
|
||||
}
|
||||
case DEFERRED_CSSETCONSTANTBUFFERS:
|
||||
case DEFERRED_DSSETCONSTANTBUFFERS:
|
||||
+ case DEFERRED_GSSETCONSTANTBUFFERS:
|
||||
case DEFERRED_HSSETCONSTANTBUFFERS:
|
||||
case DEFERRED_PSSETCONSTANTBUFFERS:
|
||||
case DEFERRED_VSSETCONSTANTBUFFERS:
|
||||
@@ -645,6 +647,12 @@ static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *command
|
||||
call->constant_buffers_info.num_buffers, call->constant_buffers_info.buffers);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_GSSETCONSTANTBUFFERS:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_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
|
||||
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",
|
||||
+ struct d3d11_deferred_context *context = impl_from_deferred_ID3D11DeviceContext(iface);
|
||||
+
|
||||
+ TRACE("iface %p, start_slot %u, buffer_count %u, buffers %p.\n",
|
||||
iface, start_slot, buffer_count, buffers);
|
||||
+
|
||||
+ add_deferred_set_constant_buffers(context, DEFERRED_GSSETCONSTANTBUFFERS, start_slot, buffer_count, buffers);
|
||||
}
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_GSSetShader(ID3D11DeviceContext *iface,
|
||||
--
|
||||
2.13.1
|
||||
|
@ -0,0 +1,68 @@
|
||||
From bde4fe1e674ff4dc32e9417b3ef020eb96cf6700 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.
|
||||
|
||||
---
|
||||
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
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -47,6 +47,7 @@ enum deferred_cmd
|
||||
DEFERRED_PSSETSHADER, /* ps_info */
|
||||
DEFERRED_VSSETSHADER, /* vs_info */
|
||||
|
||||
+ DEFERRED_CSSETSHADERRESOURCES, /* res_info */
|
||||
DEFERRED_DSSETSHADERRESOURCES, /* res_info */
|
||||
DEFERRED_PSSETSHADERRESOURCES, /* res_info */
|
||||
|
||||
@@ -268,7 +269,7 @@ static struct deferred_call *add_deferred_call(struct d3d11_deferred_context *co
|
||||
return call;
|
||||
}
|
||||
|
||||
-/* for DEFERRED_DSSETSHADERRESOURCES and DEFERRED_PSSETSHADERRESOURCES */
|
||||
+/* for DEFERRED_CSSETSHADERRESOURCES, DEFERRED_DSSETSHADERRESOURCES and DEFERRED_PSSETSHADERRESOURCES */
|
||||
static void add_deferred_set_shader_resources(struct d3d11_deferred_context *context, enum deferred_cmd cmd,
|
||||
UINT start_slot, UINT view_count, ID3D11ShaderResourceView *const *views)
|
||||
{
|
||||
@@ -435,6 +436,7 @@ static void free_deferred_calls(struct list *commands)
|
||||
ID3D11VertexShader_Release(call->vs_info.shader);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_CSSETSHADERRESOURCES:
|
||||
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);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_CSSETSHADERRESOURCES:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_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
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_CSSetShaderResources(ID3D11DeviceContext *iface,
|
||||
UINT start_slot, UINT view_count, ID3D11ShaderResourceView *const *views)
|
||||
{
|
||||
- FIXME("iface %p, start_slot %u, view_count %u, views %p stub!\n",
|
||||
+ struct d3d11_deferred_context *context = impl_from_deferred_ID3D11DeviceContext(iface);
|
||||
+
|
||||
+ TRACE("iface %p, start_slot %u, view_count %u, views %p.\n",
|
||||
iface, start_slot, view_count, views);
|
||||
+
|
||||
+ add_deferred_set_shader_resources(context, DEFERRED_CSSETSHADERRESOURCES, start_slot, view_count, views);
|
||||
}
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_CSSetUnorderedAccessViews(ID3D11DeviceContext *iface,
|
||||
--
|
||||
2.13.1
|
||||
|
@ -0,0 +1,69 @@
|
||||
From d55adbf05b349aa1cd3b6134cd5d9b4c211ff6db 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.
|
||||
|
||||
---
|
||||
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
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -49,6 +49,7 @@ enum deferred_cmd
|
||||
|
||||
DEFERRED_CSSETSHADERRESOURCES, /* res_info */
|
||||
DEFERRED_DSSETSHADERRESOURCES, /* res_info */
|
||||
+ DEFERRED_GSSETSHADERRESOURCES, /* res_info */
|
||||
DEFERRED_PSSETSHADERRESOURCES, /* res_info */
|
||||
|
||||
DEFERRED_DSSETSAMPLERS, /* samplers_info */
|
||||
@@ -269,7 +270,8 @@ static struct deferred_call *add_deferred_call(struct d3d11_deferred_context *co
|
||||
return call;
|
||||
}
|
||||
|
||||
-/* for DEFERRED_CSSETSHADERRESOURCES, DEFERRED_DSSETSHADERRESOURCES and DEFERRED_PSSETSHADERRESOURCES */
|
||||
+/* for DEFERRED_CSSETSHADERRESOURCES, DEFERRED_DSSETSHADERRESOURCES, DEFERRED_GSSETSHADERRESOURCES,
|
||||
+ * and DEFERRED_PSSETSHADERRESOURCES */
|
||||
static void add_deferred_set_shader_resources(struct d3d11_deferred_context *context, enum deferred_cmd cmd,
|
||||
UINT start_slot, UINT view_count, ID3D11ShaderResourceView *const *views)
|
||||
{
|
||||
@@ -438,6 +440,7 @@ static void free_deferred_calls(struct list *commands)
|
||||
}
|
||||
case DEFERRED_CSSETSHADERRESOURCES:
|
||||
case DEFERRED_DSSETSHADERRESOURCES:
|
||||
+ case DEFERRED_GSSETSHADERRESOURCES:
|
||||
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
|
||||
call->res_info.num_views, call->res_info.views);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_GSSETSHADERRESOURCES:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_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
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_GSSetShaderResources(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);
|
||||
+ struct d3d11_deferred_context *context = impl_from_deferred_ID3D11DeviceContext(iface);
|
||||
+
|
||||
+ TRACE("iface %p, start_slot %u, view_count %u, views %p.\n",
|
||||
+ iface, start_slot, view_count, views);
|
||||
+
|
||||
+ add_deferred_set_shader_resources(context, DEFERRED_GSSETSHADERRESOURCES, start_slot, view_count, views);
|
||||
}
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_GSSetSamplers(ID3D11DeviceContext *iface,
|
||||
--
|
||||
2.13.1
|
||||
|
@ -0,0 +1,68 @@
|
||||
From 47adec4e3c5117ac8c2a9c5c48659298aff77003 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.
|
||||
|
||||
---
|
||||
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
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -50,6 +50,7 @@ enum deferred_cmd
|
||||
DEFERRED_CSSETSHADERRESOURCES, /* res_info */
|
||||
DEFERRED_DSSETSHADERRESOURCES, /* res_info */
|
||||
DEFERRED_GSSETSHADERRESOURCES, /* res_info */
|
||||
+ DEFERRED_HSSETSHADERRESOURCES, /* res_info */
|
||||
DEFERRED_PSSETSHADERRESOURCES, /* res_info */
|
||||
|
||||
DEFERRED_DSSETSAMPLERS, /* samplers_info */
|
||||
@@ -271,7 +272,7 @@ static struct deferred_call *add_deferred_call(struct d3d11_deferred_context *co
|
||||
}
|
||||
|
||||
/* for DEFERRED_CSSETSHADERRESOURCES, DEFERRED_DSSETSHADERRESOURCES, DEFERRED_GSSETSHADERRESOURCES,
|
||||
- * and DEFERRED_PSSETSHADERRESOURCES */
|
||||
+ * DEFERRED_HSSETSHADERRESOURCES and DEFERRED_PSSETSHADERRESOURCES */
|
||||
static void add_deferred_set_shader_resources(struct d3d11_deferred_context *context, enum deferred_cmd cmd,
|
||||
UINT start_slot, UINT view_count, ID3D11ShaderResourceView *const *views)
|
||||
{
|
||||
@@ -441,6 +442,7 @@ static void free_deferred_calls(struct list *commands)
|
||||
case DEFERRED_CSSETSHADERRESOURCES:
|
||||
case DEFERRED_DSSETSHADERRESOURCES:
|
||||
case DEFERRED_GSSETSHADERRESOURCES:
|
||||
+ case DEFERRED_HSSETSHADERRESOURCES:
|
||||
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
|
||||
call->res_info.num_views, call->res_info.views);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_HSSETSHADERRESOURCES:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_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
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_HSSetShaderResources(ID3D11DeviceContext *iface,
|
||||
UINT start_slot, UINT view_count, ID3D11ShaderResourceView *const *views)
|
||||
{
|
||||
- FIXME("iface %p, start_slot %u, view_count %u, views %p stub!\n",
|
||||
+ struct d3d11_deferred_context *context = impl_from_deferred_ID3D11DeviceContext(iface);
|
||||
+
|
||||
+ TRACE("iface %p, start_slot %u, view_count %u, views %p.\n",
|
||||
iface, start_slot, view_count, views);
|
||||
+
|
||||
+ add_deferred_set_shader_resources(context, DEFERRED_HSSETSHADERRESOURCES, start_slot, view_count, views);
|
||||
}
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_HSSetShader(ID3D11DeviceContext *iface,
|
||||
--
|
||||
2.13.1
|
||||
|
@ -0,0 +1,68 @@
|
||||
From 5fb7380f08a868c176d6c369e9390ff64274aa6e 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.
|
||||
|
||||
---
|
||||
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
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -52,6 +52,7 @@ enum deferred_cmd
|
||||
DEFERRED_GSSETSHADERRESOURCES, /* res_info */
|
||||
DEFERRED_HSSETSHADERRESOURCES, /* res_info */
|
||||
DEFERRED_PSSETSHADERRESOURCES, /* res_info */
|
||||
+ DEFERRED_VSSETSHADERRESOURCES, /* res_info */
|
||||
|
||||
DEFERRED_DSSETSAMPLERS, /* samplers_info */
|
||||
DEFERRED_PSSETSAMPLERS, /* samplers_info */
|
||||
@@ -272,7 +273,7 @@ static struct deferred_call *add_deferred_call(struct d3d11_deferred_context *co
|
||||
}
|
||||
|
||||
/* for DEFERRED_CSSETSHADERRESOURCES, DEFERRED_DSSETSHADERRESOURCES, DEFERRED_GSSETSHADERRESOURCES,
|
||||
- * DEFERRED_HSSETSHADERRESOURCES and DEFERRED_PSSETSHADERRESOURCES */
|
||||
+ * DEFERRED_HSSETSHADERRESOURCES, DEFERRED_PSSETSHADERRESOURCES and DEFERRED_VSSETSHADERRESOURCES */
|
||||
static void add_deferred_set_shader_resources(struct d3d11_deferred_context *context, enum deferred_cmd cmd,
|
||||
UINT start_slot, UINT view_count, ID3D11ShaderResourceView *const *views)
|
||||
{
|
||||
@@ -444,6 +445,7 @@ static void free_deferred_calls(struct list *commands)
|
||||
case DEFERRED_GSSETSHADERRESOURCES:
|
||||
case DEFERRED_HSSETSHADERRESOURCES:
|
||||
case DEFERRED_PSSETSHADERRESOURCES:
|
||||
+ case DEFERRED_VSSETSHADERRESOURCES:
|
||||
{
|
||||
for (i = 0; i < call->res_info.num_views; i++)
|
||||
{
|
||||
@@ -648,6 +650,12 @@ static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *command
|
||||
call->res_info.num_views, call->res_info.views);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_VSSETSHADERRESOURCES:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_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
|
||||
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);
|
||||
+ struct d3d11_deferred_context *context = impl_from_deferred_ID3D11DeviceContext(iface);
|
||||
+
|
||||
+ TRACE("iface %p, start_slot %u, view_count %u, views %p.\n",
|
||||
+ iface, start_slot, view_count, views);
|
||||
+
|
||||
+ add_deferred_set_shader_resources(context, DEFERRED_VSSETSHADERRESOURCES, start_slot, view_count, views);
|
||||
}
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_VSSetSamplers(ID3D11DeviceContext *iface,
|
||||
--
|
||||
2.13.1
|
||||
|
@ -0,0 +1,68 @@
|
||||
From ebe0004e3acb6b89d649756bc27b32b92ee3d540 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.
|
||||
|
||||
---
|
||||
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
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -54,6 +54,7 @@ enum deferred_cmd
|
||||
DEFERRED_PSSETSHADERRESOURCES, /* res_info */
|
||||
DEFERRED_VSSETSHADERRESOURCES, /* res_info */
|
||||
|
||||
+ DEFERRED_CSSETSAMPLERS, /* samplers_info */
|
||||
DEFERRED_DSSETSAMPLERS, /* samplers_info */
|
||||
DEFERRED_PSSETSAMPLERS, /* samplers_info */
|
||||
|
||||
@@ -294,7 +295,7 @@ static void add_deferred_set_shader_resources(struct d3d11_deferred_context *con
|
||||
}
|
||||
}
|
||||
|
||||
-/* for DEFERRED_DSSETSAMPLERS and DEFERRED_PSSETSAMPLERS */
|
||||
+/* for DEFERRED_CSSETSAMPLERS, DEFERRED_DSSETSAMPLERS and DEFERRED_PSSETSAMPLERS */
|
||||
static void add_deferred_set_samplers(struct d3d11_deferred_context *context, enum deferred_cmd cmd,
|
||||
UINT start_slot, UINT sampler_count, ID3D11SamplerState *const *samplers)
|
||||
{
|
||||
@@ -454,6 +455,7 @@ static void free_deferred_calls(struct list *commands)
|
||||
}
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_CSSETSAMPLERS:
|
||||
case DEFERRED_DSSETSAMPLERS:
|
||||
case DEFERRED_PSSETSAMPLERS:
|
||||
{
|
||||
@@ -656,6 +658,12 @@ static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *command
|
||||
call->res_info.num_views, call->res_info.views);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_CSSETSAMPLERS:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_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
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_CSSetSamplers(ID3D11DeviceContext *iface,
|
||||
UINT start_slot, UINT sampler_count, ID3D11SamplerState *const *samplers)
|
||||
{
|
||||
- FIXME("iface %p, start_slot %u, sampler_count %u, samplers %p stub!\n",
|
||||
+ struct d3d11_deferred_context *context = impl_from_deferred_ID3D11DeviceContext(iface);
|
||||
+
|
||||
+ TRACE("iface %p, start_slot %u, sampler_count %u, samplers %p.\n",
|
||||
iface, start_slot, sampler_count, samplers);
|
||||
+
|
||||
+ add_deferred_set_samplers(context, DEFERRED_CSSETSAMPLERS, start_slot, sampler_count, samplers);
|
||||
}
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_CSSetConstantBuffers(ID3D11DeviceContext *iface,
|
||||
--
|
||||
2.13.1
|
||||
|
@ -0,0 +1,69 @@
|
||||
From 68c90b8a153575c328197c9d18dfee3a8f88fb37 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.
|
||||
|
||||
---
|
||||
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
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -56,6 +56,7 @@ enum deferred_cmd
|
||||
|
||||
DEFERRED_CSSETSAMPLERS, /* samplers_info */
|
||||
DEFERRED_DSSETSAMPLERS, /* samplers_info */
|
||||
+ DEFERRED_GSSETSAMPLERS, /* samplers_info */
|
||||
DEFERRED_PSSETSAMPLERS, /* samplers_info */
|
||||
|
||||
DEFERRED_CSSETCONSTANTBUFFERS, /* constant_buffers_info */
|
||||
@@ -295,7 +296,8 @@ static void add_deferred_set_shader_resources(struct d3d11_deferred_context *con
|
||||
}
|
||||
}
|
||||
|
||||
-/* for DEFERRED_CSSETSAMPLERS, DEFERRED_DSSETSAMPLERS and DEFERRED_PSSETSAMPLERS */
|
||||
+/* for DEFERRED_CSSETSAMPLERS, DEFERRED_DSSETSAMPLERS, DEFERRED_GSSETSAMPLERS and
|
||||
+ * DEFERRED_PSSETSAMPLERS */
|
||||
static void add_deferred_set_samplers(struct d3d11_deferred_context *context, enum deferred_cmd cmd,
|
||||
UINT start_slot, UINT sampler_count, ID3D11SamplerState *const *samplers)
|
||||
{
|
||||
@@ -457,6 +459,7 @@ static void free_deferred_calls(struct list *commands)
|
||||
}
|
||||
case DEFERRED_CSSETSAMPLERS:
|
||||
case DEFERRED_DSSETSAMPLERS:
|
||||
+ case DEFERRED_GSSETSAMPLERS:
|
||||
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
|
||||
call->samplers_info.num_samplers, call->samplers_info.samplers);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_GSSETSAMPLERS:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_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
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_GSSetSamplers(ID3D11DeviceContext *iface,
|
||||
UINT start_slot, UINT sampler_count, ID3D11SamplerState *const *samplers)
|
||||
{
|
||||
- FIXME("iface %p, start_slot %u, sampler_count %u, samplers %p stub!\n",
|
||||
+ struct d3d11_deferred_context *context = impl_from_deferred_ID3D11DeviceContext(iface);
|
||||
+
|
||||
+ TRACE("iface %p, start_slot %u, sampler_count %u, samplers %p.\n",
|
||||
iface, start_slot, sampler_count, samplers);
|
||||
+
|
||||
+ add_deferred_set_samplers(context, DEFERRED_GSSETSAMPLERS, start_slot, sampler_count, samplers);
|
||||
}
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_OMSetRenderTargets(ID3D11DeviceContext *iface,
|
||||
--
|
||||
2.13.1
|
||||
|
@ -0,0 +1,70 @@
|
||||
From 31741559091edb33262d99539c25c8083ec9da7a 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.
|
||||
|
||||
---
|
||||
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
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -57,6 +57,7 @@ enum deferred_cmd
|
||||
DEFERRED_CSSETSAMPLERS, /* samplers_info */
|
||||
DEFERRED_DSSETSAMPLERS, /* samplers_info */
|
||||
DEFERRED_GSSETSAMPLERS, /* samplers_info */
|
||||
+ DEFERRED_HSSETSAMPLERS, /* samplers_info */
|
||||
DEFERRED_PSSETSAMPLERS, /* samplers_info */
|
||||
|
||||
DEFERRED_CSSETCONSTANTBUFFERS, /* constant_buffers_info */
|
||||
@@ -296,8 +297,8 @@ static void add_deferred_set_shader_resources(struct d3d11_deferred_context *con
|
||||
}
|
||||
}
|
||||
|
||||
-/* for DEFERRED_CSSETSAMPLERS, DEFERRED_DSSETSAMPLERS, DEFERRED_GSSETSAMPLERS and
|
||||
- * DEFERRED_PSSETSAMPLERS */
|
||||
+/* for DEFERRED_CSSETSAMPLERS, DEFERRED_DSSETSAMPLERS, DEFERRED_GSSETSAMPLERS,
|
||||
+ * DEFERRED_HSSETSAMPLERS and DEFERRED_PSSETSAMPLERS */
|
||||
static void add_deferred_set_samplers(struct d3d11_deferred_context *context, enum deferred_cmd cmd,
|
||||
UINT start_slot, UINT sampler_count, ID3D11SamplerState *const *samplers)
|
||||
{
|
||||
@@ -460,6 +461,7 @@ static void free_deferred_calls(struct list *commands)
|
||||
case DEFERRED_CSSETSAMPLERS:
|
||||
case DEFERRED_DSSETSAMPLERS:
|
||||
case DEFERRED_GSSETSAMPLERS:
|
||||
+ case DEFERRED_HSSETSAMPLERS:
|
||||
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
|
||||
call->samplers_info.num_samplers, call->samplers_info.samplers);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_HSSETSAMPLERS:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_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
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_HSSetSamplers(ID3D11DeviceContext *iface,
|
||||
UINT start_slot, UINT sampler_count, ID3D11SamplerState *const *samplers)
|
||||
{
|
||||
- FIXME("iface %p, start_slot %u, sampler_count %u, samplers %p stub!\n",
|
||||
+ struct d3d11_deferred_context *context = impl_from_deferred_ID3D11DeviceContext(iface);
|
||||
+
|
||||
+ TRACE("iface %p, start_slot %u, sampler_count %u, samplers %p.\n",
|
||||
iface, start_slot, sampler_count, samplers);
|
||||
+
|
||||
+ add_deferred_set_samplers(context, DEFERRED_HSSETSAMPLERS, start_slot, sampler_count, samplers);
|
||||
}
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_HSSetConstantBuffers(ID3D11DeviceContext *iface,
|
||||
--
|
||||
2.13.1
|
||||
|
@ -0,0 +1,68 @@
|
||||
From 1b768487e7175cc29e2574c4334ee91d0333ce26 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.
|
||||
|
||||
---
|
||||
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
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -59,6 +59,7 @@ enum deferred_cmd
|
||||
DEFERRED_GSSETSAMPLERS, /* samplers_info */
|
||||
DEFERRED_HSSETSAMPLERS, /* samplers_info */
|
||||
DEFERRED_PSSETSAMPLERS, /* samplers_info */
|
||||
+ DEFERRED_VSSETSAMPLERS, /* samplers_info */
|
||||
|
||||
DEFERRED_CSSETCONSTANTBUFFERS, /* constant_buffers_info */
|
||||
DEFERRED_DSSETCONSTANTBUFFERS, /* constant_buffers_info */
|
||||
@@ -298,7 +299,7 @@ static void add_deferred_set_shader_resources(struct d3d11_deferred_context *con
|
||||
}
|
||||
|
||||
/* for DEFERRED_CSSETSAMPLERS, DEFERRED_DSSETSAMPLERS, DEFERRED_GSSETSAMPLERS,
|
||||
- * DEFERRED_HSSETSAMPLERS and DEFERRED_PSSETSAMPLERS */
|
||||
+ * DEFERRED_HSSETSAMPLERS, DEFERRED_PSSETSAMPLERS and DEFERRED_VSSETSAMPLERS */
|
||||
static void add_deferred_set_samplers(struct d3d11_deferred_context *context, enum deferred_cmd cmd,
|
||||
UINT start_slot, UINT sampler_count, ID3D11SamplerState *const *samplers)
|
||||
{
|
||||
@@ -463,6 +464,7 @@ static void free_deferred_calls(struct list *commands)
|
||||
case DEFERRED_GSSETSAMPLERS:
|
||||
case DEFERRED_HSSETSAMPLERS:
|
||||
case DEFERRED_PSSETSAMPLERS:
|
||||
+ case DEFERRED_VSSETSAMPLERS:
|
||||
{
|
||||
for (i = 0; i < call->samplers_info.num_samplers; i++)
|
||||
{
|
||||
@@ -693,6 +695,12 @@ static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *command
|
||||
call->samplers_info.num_samplers, call->samplers_info.samplers);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_VSSETSAMPLERS:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_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
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_VSSetSamplers(ID3D11DeviceContext *iface,
|
||||
UINT start_slot, UINT sampler_count, ID3D11SamplerState *const *samplers)
|
||||
{
|
||||
- FIXME("iface %p, start_slot %u, sampler_count %u, samplers %p stub!\n",
|
||||
+ struct d3d11_deferred_context *context = impl_from_deferred_ID3D11DeviceContext(iface);
|
||||
+
|
||||
+ TRACE("iface %p, start_slot %u, sampler_count %u, samplers %p.\n",
|
||||
iface, start_slot, sampler_count, samplers);
|
||||
+
|
||||
+ add_deferred_set_samplers(context, DEFERRED_VSSETSAMPLERS, start_slot, sampler_count, samplers);
|
||||
}
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_Begin(ID3D11DeviceContext *iface,
|
||||
--
|
||||
2.13.1
|
||||
|
@ -0,0 +1,104 @@
|
||||
From 091d543f73d5c2ec0883bc575c9d1366e61e7d1f 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.
|
||||
|
||||
---
|
||||
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
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -80,6 +80,9 @@ enum deferred_cmd
|
||||
DEFERRED_CLEARSTATE,
|
||||
DEFERRED_CLEARRENDERTARGETVIEW, /* clear_rtv_info */
|
||||
DEFERRED_CLEARDEPTHSTENCILVIEW, /* clear_depth_info */
|
||||
+
|
||||
+ DEFERRED_BEGIN, /* async_info */
|
||||
+ DEFERRED_END, /* async_info */
|
||||
};
|
||||
|
||||
struct deferred_call
|
||||
@@ -237,6 +240,10 @@ struct deferred_call
|
||||
FLOAT depth;
|
||||
UINT8 stencil;
|
||||
} clear_depth_info;
|
||||
+ struct
|
||||
+ {
|
||||
+ ID3D11Asynchronous *asynchronous;
|
||||
+ } async_info;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -527,6 +534,13 @@ static void free_deferred_calls(struct list *commands)
|
||||
ID3D11DepthStencilView_Release(call->clear_depth_info.view);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_BEGIN:
|
||||
+ case DEFERRED_END:
|
||||
+ {
|
||||
+ if (call->async_info.asynchronous)
|
||||
+ ID3D11Asynchronous_Release(call->async_info.asynchronous);
|
||||
+ break;
|
||||
+ }
|
||||
default:
|
||||
{
|
||||
FIXME("Unimplemented command type %u\n", call->cmd);
|
||||
@@ -802,6 +816,16 @@ static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *command
|
||||
call->clear_depth_info.stencil);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_BEGIN:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_Begin(iface, call->async_info.asynchronous);
|
||||
+ break;
|
||||
+ }
|
||||
+ case DEFERRED_END:
|
||||
+ {
|
||||
+ ID3D11DeviceContext_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
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_Begin(ID3D11DeviceContext *iface,
|
||||
ID3D11Asynchronous *asynchronous)
|
||||
{
|
||||
- FIXME("iface %p, asynchronous %p stub!\n", iface, asynchronous);
|
||||
+ struct d3d11_deferred_context *context = impl_from_deferred_ID3D11DeviceContext(iface);
|
||||
+ struct deferred_call *call;
|
||||
+
|
||||
+ TRACE("iface %p, asynchronous %p.\n", iface, asynchronous);
|
||||
+
|
||||
+ if (!(call = add_deferred_call(context, 0)))
|
||||
+ return;
|
||||
+
|
||||
+ call->cmd = DEFERRED_BEGIN;
|
||||
+ if (asynchronous) ID3D11Asynchronous_AddRef(asynchronous);
|
||||
+ call->async_info.asynchronous = asynchronous;
|
||||
}
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_End(ID3D11DeviceContext *iface,
|
||||
ID3D11Asynchronous *asynchronous)
|
||||
{
|
||||
- FIXME("iface %p, asynchronous %p stub!\n", iface, asynchronous);
|
||||
+ struct d3d11_deferred_context *context = impl_from_deferred_ID3D11DeviceContext(iface);
|
||||
+ struct deferred_call *call;
|
||||
+
|
||||
+ TRACE("iface %p, asynchronous %p.\n", iface, asynchronous);
|
||||
+
|
||||
+ if (!(call = add_deferred_call(context, 0)))
|
||||
+ return;
|
||||
+
|
||||
+ call->cmd = DEFERRED_END;
|
||||
+ if (asynchronous) ID3D11Asynchronous_AddRef(asynchronous);
|
||||
+ call->async_info.asynchronous = asynchronous;
|
||||
}
|
||||
|
||||
static HRESULT STDMETHODCALLTYPE d3d11_deferred_context_GetData(ID3D11DeviceContext *iface,
|
||||
--
|
||||
2.13.1
|
||||
|
@ -3410,6 +3410,17 @@ if test "$enable_d3d11_Deferred_Context" -eq 1; then
|
||||
patch_apply d3d11-Deferred_Context/0008-d3d11-Implement-ClearRenderTargetView-for-deferred-c.patch
|
||||
patch_apply d3d11-Deferred_Context/0009-d3d11-Implement-Draw-for-deferred-contexts.patch
|
||||
patch_apply d3d11-Deferred_Context/0010-d3d11-Implement-ClearDepthStencilView-for-deferred-c.patch
|
||||
patch_apply d3d11-Deferred_Context/0011-d3d11-Implement-GSSetShader-for-deferred-contexts.patch
|
||||
patch_apply d3d11-Deferred_Context/0012-d3d11-Implement-GSSetConstantBuffers-for-deferred-co.patch
|
||||
patch_apply d3d11-Deferred_Context/0013-d3d11-Implement-CSSetShaderResources-for-deferred-co.patch
|
||||
patch_apply d3d11-Deferred_Context/0014-d3d11-Implement-GSSetShaderResources-for-deferred-co.patch
|
||||
patch_apply d3d11-Deferred_Context/0015-d3d11-Implement-HSSetShaderResources-for-deferred-co.patch
|
||||
patch_apply d3d11-Deferred_Context/0016-d3d11-Implement-VSSetShaderResources-for-deferred-co.patch
|
||||
patch_apply d3d11-Deferred_Context/0017-d3d11-Implement-CSSetSamplers-for-deferred-contexts.patch
|
||||
patch_apply d3d11-Deferred_Context/0018-d3d11-Implement-GSSetSamplers-for-deferred-contexts.patch
|
||||
patch_apply d3d11-Deferred_Context/0019-d3d11-Implement-HSSetSamplers-for-deferred-contexts.patch
|
||||
patch_apply d3d11-Deferred_Context/0020-d3d11-Implement-VSSetSamplers-for-deferred-contexts.patch
|
||||
patch_apply d3d11-Deferred_Context/0021-d3d11-Implement-Begin-and-End-for-deferred-contexts.patch
|
||||
(
|
||||
printf '%s\n' '+ { "Kimmo Myllyvirta", "d3d11: Add stub deferred rendering context.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "wined3d: Add wined3d_resource_map_info function.", 1 },';
|
||||
@ -3421,6 +3432,17 @@ if test "$enable_d3d11_Deferred_Context" -eq 1; then
|
||||
printf '%s\n' '+ { "Michael Müller", "d3d11: Implement ClearRenderTargetView for deferred contexts.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "d3d11: Implement Draw for deferred contexts.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "d3d11: Implement ClearDepthStencilView for deferred contexts.", 1 },';
|
||||
printf '%s\n' '+ { "Kimmo Myllyvirta", "d3d11: Implement GSSetShader for deferred contexts.", 1 },';
|
||||
printf '%s\n' '+ { "Kimmo Myllyvirta", "d3d11: Implement GSSetConstantBuffers for deferred contexts.", 1 },';
|
||||
printf '%s\n' '+ { "Kimmo Myllyvirta", "d3d11: Implement CSSetShaderResources for deferred contexts.", 1 },';
|
||||
printf '%s\n' '+ { "Kimmo Myllyvirta", "d3d11: Implement GSSetShaderResources for deferred contexts.", 1 },';
|
||||
printf '%s\n' '+ { "Kimmo Myllyvirta", "d3d11: Implement HSSetShaderResources for deferred contexts.", 1 },';
|
||||
printf '%s\n' '+ { "Kimmo Myllyvirta", "d3d11: Implement VSSetShaderResources for deferred contexts.", 1 },';
|
||||
printf '%s\n' '+ { "Kimmo Myllyvirta", "d3d11: Implement CSSetSamplers for deferred contexts.", 1 },';
|
||||
printf '%s\n' '+ { "Kimmo Myllyvirta", "d3d11: Implement GSSetSamplers for deferred contexts.", 1 },';
|
||||
printf '%s\n' '+ { "Kimmo Myllyvirta", "d3d11: Implement HSSetSamplers for deferred contexts.", 1 },';
|
||||
printf '%s\n' '+ { "Kimmo Myllyvirta", "d3d11: Implement VSSetSamplers for deferred contexts.", 1 },';
|
||||
printf '%s\n' '+ { "Kimmo Myllyvirta", "d3d11: Implement Begin and End for deferred contexts.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user