diff --git a/patches/d3d11-Deferred_Context/0011-d3d11-Implement-GSSetShader-for-deferred-contexts.patch b/patches/d3d11-Deferred_Context/0011-d3d11-Implement-GSSetShader-for-deferred-contexts.patch new file mode 100644 index 00000000..ccc94ed7 --- /dev/null +++ b/patches/d3d11-Deferred_Context/0011-d3d11-Implement-GSSetShader-for-deferred-contexts.patch @@ -0,0 +1,81 @@ +From 848ac26c5b1e6551639fbef1a03e93ca14d934a2 Mon Sep 17 00:00:00 2001 +From: Kimmo Myllyvirta +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 + diff --git a/patches/d3d11-Deferred_Context/0012-d3d11-Implement-GSSetConstantBuffers-for-deferred-co.patch b/patches/d3d11-Deferred_Context/0012-d3d11-Implement-GSSetConstantBuffers-for-deferred-co.patch new file mode 100644 index 00000000..2f3c4e78 --- /dev/null +++ b/patches/d3d11-Deferred_Context/0012-d3d11-Implement-GSSetConstantBuffers-for-deferred-co.patch @@ -0,0 +1,70 @@ +From 4e7076c5cc9806ce0e0218588ea587cfe3db8951 Mon Sep 17 00:00:00 2001 +From: Kimmo Myllyvirta +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 + diff --git a/patches/d3d11-Deferred_Context/0013-d3d11-Implement-CSSetShaderResources-for-deferred-co.patch b/patches/d3d11-Deferred_Context/0013-d3d11-Implement-CSSetShaderResources-for-deferred-co.patch new file mode 100644 index 00000000..c112cc51 --- /dev/null +++ b/patches/d3d11-Deferred_Context/0013-d3d11-Implement-CSSetShaderResources-for-deferred-co.patch @@ -0,0 +1,68 @@ +From bde4fe1e674ff4dc32e9417b3ef020eb96cf6700 Mon Sep 17 00:00:00 2001 +From: Kimmo Myllyvirta +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 + diff --git a/patches/d3d11-Deferred_Context/0014-d3d11-Implement-GSSetShaderResources-for-deferred-co.patch b/patches/d3d11-Deferred_Context/0014-d3d11-Implement-GSSetShaderResources-for-deferred-co.patch new file mode 100644 index 00000000..48426de8 --- /dev/null +++ b/patches/d3d11-Deferred_Context/0014-d3d11-Implement-GSSetShaderResources-for-deferred-co.patch @@ -0,0 +1,69 @@ +From d55adbf05b349aa1cd3b6134cd5d9b4c211ff6db Mon Sep 17 00:00:00 2001 +From: Kimmo Myllyvirta +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 + diff --git a/patches/d3d11-Deferred_Context/0015-d3d11-Implement-HSSetShaderResources-for-deferred-co.patch b/patches/d3d11-Deferred_Context/0015-d3d11-Implement-HSSetShaderResources-for-deferred-co.patch new file mode 100644 index 00000000..3a398a1b --- /dev/null +++ b/patches/d3d11-Deferred_Context/0015-d3d11-Implement-HSSetShaderResources-for-deferred-co.patch @@ -0,0 +1,68 @@ +From 47adec4e3c5117ac8c2a9c5c48659298aff77003 Mon Sep 17 00:00:00 2001 +From: Kimmo Myllyvirta +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 + diff --git a/patches/d3d11-Deferred_Context/0016-d3d11-Implement-VSSetShaderResources-for-deferred-co.patch b/patches/d3d11-Deferred_Context/0016-d3d11-Implement-VSSetShaderResources-for-deferred-co.patch new file mode 100644 index 00000000..74e4f18c --- /dev/null +++ b/patches/d3d11-Deferred_Context/0016-d3d11-Implement-VSSetShaderResources-for-deferred-co.patch @@ -0,0 +1,68 @@ +From 5fb7380f08a868c176d6c369e9390ff64274aa6e Mon Sep 17 00:00:00 2001 +From: Kimmo Myllyvirta +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 + diff --git a/patches/d3d11-Deferred_Context/0017-d3d11-Implement-CSSetSamplers-for-deferred-contexts.patch b/patches/d3d11-Deferred_Context/0017-d3d11-Implement-CSSetSamplers-for-deferred-contexts.patch new file mode 100644 index 00000000..0b88a053 --- /dev/null +++ b/patches/d3d11-Deferred_Context/0017-d3d11-Implement-CSSetSamplers-for-deferred-contexts.patch @@ -0,0 +1,68 @@ +From ebe0004e3acb6b89d649756bc27b32b92ee3d540 Mon Sep 17 00:00:00 2001 +From: Kimmo Myllyvirta +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 + diff --git a/patches/d3d11-Deferred_Context/0018-d3d11-Implement-GSSetSamplers-for-deferred-contexts.patch b/patches/d3d11-Deferred_Context/0018-d3d11-Implement-GSSetSamplers-for-deferred-contexts.patch new file mode 100644 index 00000000..1e2973b9 --- /dev/null +++ b/patches/d3d11-Deferred_Context/0018-d3d11-Implement-GSSetSamplers-for-deferred-contexts.patch @@ -0,0 +1,69 @@ +From 68c90b8a153575c328197c9d18dfee3a8f88fb37 Mon Sep 17 00:00:00 2001 +From: Kimmo Myllyvirta +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 + diff --git a/patches/d3d11-Deferred_Context/0019-d3d11-Implement-HSSetSamplers-for-deferred-contexts.patch b/patches/d3d11-Deferred_Context/0019-d3d11-Implement-HSSetSamplers-for-deferred-contexts.patch new file mode 100644 index 00000000..f06b1d05 --- /dev/null +++ b/patches/d3d11-Deferred_Context/0019-d3d11-Implement-HSSetSamplers-for-deferred-contexts.patch @@ -0,0 +1,70 @@ +From 31741559091edb33262d99539c25c8083ec9da7a Mon Sep 17 00:00:00 2001 +From: Kimmo Myllyvirta +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 + diff --git a/patches/d3d11-Deferred_Context/0020-d3d11-Implement-VSSetSamplers-for-deferred-contexts.patch b/patches/d3d11-Deferred_Context/0020-d3d11-Implement-VSSetSamplers-for-deferred-contexts.patch new file mode 100644 index 00000000..2ef5b528 --- /dev/null +++ b/patches/d3d11-Deferred_Context/0020-d3d11-Implement-VSSetSamplers-for-deferred-contexts.patch @@ -0,0 +1,68 @@ +From 1b768487e7175cc29e2574c4334ee91d0333ce26 Mon Sep 17 00:00:00 2001 +From: Kimmo Myllyvirta +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 + diff --git a/patches/d3d11-Deferred_Context/0021-d3d11-Implement-Begin-and-End-for-deferred-contexts.patch b/patches/d3d11-Deferred_Context/0021-d3d11-Implement-Begin-and-End-for-deferred-contexts.patch new file mode 100644 index 00000000..bbdec591 --- /dev/null +++ b/patches/d3d11-Deferred_Context/0021-d3d11-Implement-Begin-and-End-for-deferred-contexts.patch @@ -0,0 +1,104 @@ +From 091d543f73d5c2ec0883bc575c9d1366e61e7d1f Mon Sep 17 00:00:00 2001 +From: Kimmo Myllyvirta +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 + diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index bfcfd2b2..21fd8ae9 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -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