diff --git a/patches/d3d11-Deferred_Context/0041-d3d11-Allow-NULL-pointer-for-initial-count-in-d3d11_.patch b/patches/d3d11-Deferred_Context/0041-d3d11-Allow-NULL-pointer-for-initial-count-in-d3d11_.patch new file mode 100644 index 00000000..a7a09a38 --- /dev/null +++ b/patches/d3d11-Deferred_Context/0041-d3d11-Allow-NULL-pointer-for-initial-count-in-d3d11_.patch @@ -0,0 +1,33 @@ +From e1467653758c0df73b894029c82b2d8f0d7223ba Mon Sep 17 00:00:00 2001 +From: Steve Melenchuk +Date: Sat, 7 Oct 2017 18:33:16 -0600 +Subject: d3d11: Allow NULL pointer for initial count in + d3d11_deferred_context_CSSetUnorderedAccessViews. + +--- + dlls/d3d11/device.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c +index 8812c90f140..f0f9d2b6e10 100644 +--- a/dlls/d3d11/device.c ++++ b/dlls/d3d11/device.c +@@ -5444,12 +5444,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); +- call->unordered_view.initial_counts = (void *)&call->unordered_view.views[view_count]; ++ call->unordered_view.initial_counts = initial_counts ? ++ (void *)&call->unordered_view.views[view_count] : NULL; + for (i = 0; i < view_count; i++) + { + if (views[i]) ID3D11UnorderedAccessView_AddRef(views[i]); + call->unordered_view.views[i] = views[i]; +- call->unordered_view.initial_counts[i] = initial_counts[i]; ++ if (initial_counts) call->unordered_view.initial_counts[i] = initial_counts[i]; + } + } + +-- +2.14.1 + diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 5964a19e..fe493e55 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -3968,6 +3968,7 @@ if test "$enable_d3d11_Deferred_Context" -eq 1; then patch_apply d3d11-Deferred_Context/0038-d3d11-Implement-SetPredication-for-deferred-contexts.patch patch_apply d3d11-Deferred_Context/0039-d3d11-Implement-d3d11_deferred_context_UpdateSubreso.patch patch_apply d3d11-Deferred_Context/0040-d3d11-Implement-restoring-of-state-after-executing-a.patch + patch_apply d3d11-Deferred_Context/0041-d3d11-Allow-NULL-pointer-for-initial-count-in-d3d11_.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 },'; @@ -4009,6 +4010,7 @@ if test "$enable_d3d11_Deferred_Context" -eq 1; then printf '%s\n' '+ { "Johannes Specht", "d3d11: Implement SetPredication for deferred contexts.", 1 },'; printf '%s\n' '+ { "Michael Müller", "d3d11: Implement d3d11_deferred_context_UpdateSubresource.", 1 },'; printf '%s\n' '+ { "Michael Müller", "d3d11: Implement restoring of state after executing a command list.", 1 },'; + printf '%s\n' '+ { "Steve Melenchuk", "d3d11: Allow NULL pointer for initial count in d3d11_deferred_context_CSSetUnorderedAccessViews.", 1 },'; ) >> "$patchlist" fi