From c8299873fb3db05e78d9792aa21a65c59ecf187c Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Fri, 24 Jun 2016 04:32:06 +0200 Subject: [PATCH] wined3d-CSMT_Main: Remove patches with unnecessary 'Waiting for cs' warning. --- patches/patchinstall.sh | 14 +---- ...for-the-cs-before-destroying-objects.patch | 54 ++++--------------- ...t-for-the-CS-before-destroying-views.patch | 42 --------------- ...wined3d-Destroy-views-through-the-CS.patch | 30 ----------- ...y-vertex-declarations-through-the-CS.patch | 28 ---------- ...ned3d-Destroy-shaders-through-the-CS.patch | 28 ---------- ...shader-resource-views-through-the-CS.patch | 29 ---------- 7 files changed, 12 insertions(+), 213 deletions(-) delete mode 100644 patches/wined3d-CSMT_Main/0013-wined3d-Wait-for-the-CS-before-destroying-views.patch delete mode 100644 patches/wined3d-CSMT_Main/0089-wined3d-Destroy-views-through-the-CS.patch delete mode 100644 patches/wined3d-CSMT_Main/0091-wined3d-Destroy-vertex-declarations-through-the-CS.patch delete mode 100644 patches/wined3d-CSMT_Main/0092-wined3d-Destroy-shaders-through-the-CS.patch delete mode 100644 patches/wined3d-CSMT_Main/0116-wined3d-Destroy-shader-resource-views-through-the-CS.patch diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 830e4a7b..4ddf0063 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -7331,8 +7331,8 @@ fi # | dlls/wined3d/context.c, dlls/wined3d/cs.c, dlls/wined3d/device.c, dlls/wined3d/drawprim.c, dlls/wined3d/glsl_shader.c, # | dlls/wined3d/query.c, dlls/wined3d/resource.c, dlls/wined3d/sampler.c, dlls/wined3d/shader.c, dlls/wined3d/state.c, # | dlls/wined3d/stateblock.c, dlls/wined3d/surface.c, dlls/wined3d/swapchain.c, dlls/wined3d/texture.c, -# | dlls/wined3d/utils.c, dlls/wined3d/vertexdeclaration.c, dlls/wined3d/view.c, dlls/wined3d/volume.c, -# | dlls/wined3d/wined3d_main.c, dlls/wined3d/wined3d_private.h, dlls/winex11.drv/opengl.c +# | dlls/wined3d/utils.c, dlls/wined3d/volume.c, dlls/wined3d/wined3d_main.c, dlls/wined3d/wined3d_private.h, +# | dlls/winex11.drv/opengl.c # | if test "$enable_wined3d_CSMT_Main" -eq 1; then patch_apply wined3d-CSMT_Main/0000-Revert-wined3d-Send-shader-constant-updates-through-.patch @@ -7347,7 +7347,6 @@ if test "$enable_wined3d_CSMT_Main" -eq 1; then patch_apply wined3d-CSMT_Main/0010-wined3d-Hackily-introduce-a-multithreaded-command-st.patch patch_apply wined3d-CSMT_Main/0011-wined3d-Wait-for-resource-updates-to-finish-when-usi.patch patch_apply wined3d-CSMT_Main/0012-wined3d-Wait-for-the-cs-before-destroying-objects.patch - patch_apply wined3d-CSMT_Main/0013-wined3d-Wait-for-the-CS-before-destroying-views.patch patch_apply wined3d-CSMT_Main/0014-wined3d-Give-the-cs-its-own-state.patch patch_apply wined3d-CSMT_Main/0015-wined3d-Send-float-constant-updates-through-the-comm.patch patch_apply wined3d-CSMT_Main/0016-wined3d-Request-a-glFinish-before-modifying-resource.patch @@ -7423,10 +7422,7 @@ if test "$enable_wined3d_CSMT_Main" -eq 1; then patch_apply wined3d-CSMT_Main/0086-wined3d-Use-glBufferSubData-instead-of-glMapBufferRa.patch patch_apply wined3d-CSMT_Main/0087-wined3d-Separate-GL-buffer-discard-control-from-igno.patch patch_apply wined3d-CSMT_Main/0088-wined3d-Create-buffers-before-mapping-them.patch - patch_apply wined3d-CSMT_Main/0089-wined3d-Destroy-views-through-the-CS.patch patch_apply wined3d-CSMT_Main/0090-wined3d-Remove-another-glFinish.patch - patch_apply wined3d-CSMT_Main/0091-wined3d-Destroy-vertex-declarations-through-the-CS.patch - patch_apply wined3d-CSMT_Main/0092-wined3d-Destroy-shaders-through-the-CS.patch patch_apply wined3d-CSMT_Main/0093-wined3d-Create-VBOs-through-the-command-stream.patch patch_apply wined3d-CSMT_Main/0094-wined3d-Clean-up-resource-data-through-the-CS.patch patch_apply wined3d-CSMT_Main/0095-wined3d-Clean-up-buffer-resource-data-through-the-CS.patch @@ -7449,7 +7445,6 @@ if test "$enable_wined3d_CSMT_Main" -eq 1; then patch_apply wined3d-CSMT_Main/0112-wined3d-Don-t-discard-new-buffers.patch patch_apply wined3d-CSMT_Main/0113-wined3d-Don-t-try-to-sync-VBOs-manually-on-OSX-with-.patch patch_apply wined3d-CSMT_Main/0114-wined3d-Only-discard-buffers-that-are-in-use.patch - patch_apply wined3d-CSMT_Main/0116-wined3d-Destroy-shader-resource-views-through-the-CS.patch patch_apply wined3d-CSMT_Main/0117-wined3d-Send-getdc-and-releasedc-through-the-command.patch patch_apply wined3d-CSMT_Main/0118-wined3d-Ignore-WINED3D_MAP_NO_DIRTY_UPDATE-in-resour.patch patch_apply wined3d-CSMT_Main/0119-d3d8-tests-D3DLOCK_NO_DIRTY_UPDATE-on-managed-textur.patch @@ -7481,7 +7476,6 @@ if test "$enable_wined3d_CSMT_Main" -eq 1; then echo '+ { "Stefan Dösinger", "wined3d: Hackily introduce a multithreaded command stream.", 1 },'; echo '+ { "Henri Verbeet", "wined3d: Wait for resource updates to finish when using the multithreaded command stream.", 1 },'; echo '+ { "Stefan Dösinger", "wined3d: Wait for the cs before destroying objects.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Wait for the CS before destroying views.", 1 },'; echo '+ { "Stefan Dösinger", "wined3d: Give the cs its own state.", 1 },'; echo '+ { "Stefan Dösinger", "wined3d: Send float constant updates through the command stream.", 1 },'; echo '+ { "Stefan Dösinger", "wined3d: Request a glFinish before modifying resources outside the cs.", 1 },'; @@ -7557,10 +7551,7 @@ if test "$enable_wined3d_CSMT_Main" -eq 1; then echo '+ { "Stefan Dösinger", "wined3d: Use glBufferSubData instead of glMapBufferRange.", 1 },'; echo '+ { "Stefan Dösinger", "wined3d: Separate GL buffer discard control from ignoring MAP_DISCARD.", 1 },'; echo '+ { "Stefan Dösinger", "wined3d: Create buffers before mapping them.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Destroy views through the CS.", 1 },'; echo '+ { "Stefan Dösinger", "wined3d: Remove another glFinish.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Destroy vertex declarations through the CS.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Destroy shaders through the CS.", 1 },'; echo '+ { "Stefan Dösinger", "wined3d: Create VBOs through the command stream.", 1 },'; echo '+ { "Stefan Dösinger", "wined3d: Clean up resource data through the CS.", 1 },'; echo '+ { "Stefan Dösinger", "wined3d: Clean up buffer resource data through the CS.", 1 },'; @@ -7583,7 +7574,6 @@ if test "$enable_wined3d_CSMT_Main" -eq 1; then echo '+ { "Stefan Dösinger", "wined3d: Don'\''t discard new buffers.", 1 },'; echo '+ { "Stefan Dösinger", "wined3d: Don'\''t try to sync VBOs manually on OSX with CSMT.", 1 },'; echo '+ { "Stefan Dösinger", "wined3d: Only discard buffers that are in use.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Destroy shader resource views through the CS.", 1 },'; echo '+ { "Stefan Dösinger", "wined3d: Send getdc and releasedc through the command stream.", 1 },'; echo '+ { "Stefan Dösinger", "wined3d: Ignore WINED3D_MAP_NO_DIRTY_UPDATE in resource_map.", 1 },'; echo '+ { "Stefan Dösinger", "d3d8/tests: D3DLOCK_NO_DIRTY_UPDATE on managed textures is temporarily broken.", 1 },'; diff --git a/patches/wined3d-CSMT_Main/0012-wined3d-Wait-for-the-cs-before-destroying-objects.patch b/patches/wined3d-CSMT_Main/0012-wined3d-Wait-for-the-cs-before-destroying-objects.patch index 5df615f5..640c68a0 100644 --- a/patches/wined3d-CSMT_Main/0012-wined3d-Wait-for-the-cs-before-destroying-objects.patch +++ b/patches/wined3d-CSMT_Main/0012-wined3d-Wait-for-the-cs-before-destroying-objects.patch @@ -1,4 +1,4 @@ -From 9c7a85f85462a459d1a4aad3b97bd0542acc9f83 Mon Sep 17 00:00:00 2001 +From 46b7d05ee6b1ff14469c78be3f2b9c1fd0192996 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20D=C3=B6singer?= Date: Wed, 3 Apr 2013 18:01:34 +0200 Subject: wined3d: Wait for the cs before destroying objects @@ -7,19 +7,17 @@ This is to avoid destroying objects that are still referenced in commands in the cs. Later patches will migrate resource destruction to the CS. --- - dlls/wined3d/buffer.c | 6 ++++++ - dlls/wined3d/cs.c | 2 ++ - dlls/wined3d/shader.c | 5 +++++ - dlls/wined3d/texture.c | 6 ++++++ - dlls/wined3d/vertexdeclaration.c | 5 +++++ - dlls/wined3d/wined3d_private.h | 1 + - 6 files changed, 25 insertions(+) + dlls/wined3d/buffer.c | 6 ++++++ + dlls/wined3d/cs.c | 2 ++ + dlls/wined3d/texture.c | 6 ++++++ + dlls/wined3d/wined3d_private.h | 1 + + 4 files changed, 15 insertions(+) diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c -index e851ec9..e99e66d 100644 +index edecdbe..66e13cb 100644 --- a/dlls/wined3d/buffer.c +++ b/dlls/wined3d/buffer.c -@@ -549,6 +549,12 @@ ULONG CDECL wined3d_buffer_decref(struct wined3d_buffer *buffer) +@@ -565,6 +565,12 @@ ULONG CDECL wined3d_buffer_decref(struct wined3d_buffer *buffer) if (!refcount) { @@ -51,22 +49,6 @@ index 3bcbf19..185def9 100644 }; /* FIXME: wined3d_device_uninit_3d() should either flush and wait, or be an -diff --git a/dlls/wined3d/shader.c b/dlls/wined3d/shader.c -index 05eae08..975a927 100644 ---- a/dlls/wined3d/shader.c -+++ b/dlls/wined3d/shader.c -@@ -2664,6 +2664,11 @@ ULONG CDECL wined3d_shader_decref(struct wined3d_shader *shader) - - if (!refcount) - { -+ if (wined3d_settings.cs_multithreaded) -+ { -+ FIXME("Waiting for cs.\n"); -+ shader->device->cs->ops->finish(shader->device->cs); -+ } - shader->parent_ops->wined3d_object_destroyed(shader->parent); - wined3d_cs_emit_destroy_object(shader->device->cs, wined3d_shader_destroy_object, shader); - } diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c index cdb7636..ecabc60 100644 --- a/dlls/wined3d/texture.c @@ -84,27 +66,11 @@ index cdb7636..ecabc60 100644 for (i = 0; i < sub_count; ++i) { if (!(buffer_object = texture->sub_resources[i].buffer_object)) -diff --git a/dlls/wined3d/vertexdeclaration.c b/dlls/wined3d/vertexdeclaration.c -index c8704e9..fcd637d 100644 ---- a/dlls/wined3d/vertexdeclaration.c -+++ b/dlls/wined3d/vertexdeclaration.c -@@ -66,6 +66,11 @@ ULONG CDECL wined3d_vertex_declaration_decref(struct wined3d_vertex_declaration - - if (!refcount) - { -+ if (wined3d_settings.cs_multithreaded) -+ { -+ FIXME("Waiting for cs.\n"); -+ declaration->device->cs->ops->finish(declaration->device->cs); -+ } - declaration->parent_ops->wined3d_object_destroyed(declaration->parent); - wined3d_cs_emit_destroy_object(declaration->device->cs, - wined3d_vertex_declaration_destroy_object, declaration); diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h -index 29f218e..00b4db7 100644 +index 1b6077d..dfb3cca 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h -@@ -2938,6 +2938,7 @@ struct wined3d_cs_ops +@@ -2969,6 +2969,7 @@ struct wined3d_cs_ops { void *(*require_space)(struct wined3d_cs *cs, size_t size); void (*submit)(struct wined3d_cs *cs); diff --git a/patches/wined3d-CSMT_Main/0013-wined3d-Wait-for-the-CS-before-destroying-views.patch b/patches/wined3d-CSMT_Main/0013-wined3d-Wait-for-the-CS-before-destroying-views.patch deleted file mode 100644 index 28f98e42..00000000 --- a/patches/wined3d-CSMT_Main/0013-wined3d-Wait-for-the-CS-before-destroying-views.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 2172828bc75b410e54530ced4d11bbf8aaf41ba3 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Stefan=20D=C3=B6singer?= -Date: Sun, 24 Apr 2016 13:51:03 +0100 -Subject: wined3d: Wait for the CS before destroying views. - ---- - dlls/wined3d/view.c | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - -diff --git a/dlls/wined3d/view.c b/dlls/wined3d/view.c -index e9e62d1..b4bc771 100644 ---- a/dlls/wined3d/view.c -+++ b/dlls/wined3d/view.c -@@ -48,6 +48,12 @@ ULONG CDECL wined3d_rendertarget_view_decref(struct wined3d_rendertarget_view *v - { - struct wined3d_device *device = view->resource->device; - -+ if (wined3d_settings.cs_multithreaded) -+ { -+ FIXME("Waiting for cs.\n"); -+ device->cs->ops->finish(device->cs); -+ } -+ - /* Call wined3d_object_destroyed() before releasing the resource, - * since releasing the resource may end up destroying the parent. */ - view->parent_ops->wined3d_object_destroyed(view->parent); -@@ -230,6 +236,12 @@ ULONG CDECL wined3d_shader_resource_view_decref(struct wined3d_shader_resource_v - { - struct wined3d_device *device = view->resource->device; - -+ if (wined3d_settings.cs_multithreaded) -+ { -+ FIXME("Waiting for cs.\n"); -+ device->cs->ops->finish(device->cs); -+ } -+ - /* Call wined3d_object_destroyed() before releasing the resource, - * since releasing the resource may end up destroying the parent. */ - view->parent_ops->wined3d_object_destroyed(view->parent); --- -2.8.0 - diff --git a/patches/wined3d-CSMT_Main/0089-wined3d-Destroy-views-through-the-CS.patch b/patches/wined3d-CSMT_Main/0089-wined3d-Destroy-views-through-the-CS.patch deleted file mode 100644 index 932566e8..00000000 --- a/patches/wined3d-CSMT_Main/0089-wined3d-Destroy-views-through-the-CS.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 21fc0b94f7981bc3bc1450835abd5534723072c1 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Stefan=20D=C3=B6singer?= -Date: Thu, 21 Aug 2014 22:47:58 +0200 -Subject: wined3d: Destroy views through the CS. - -Move this ahead. This has caused sporadic test failures ever since blits were moved to the CS. ---- - dlls/wined3d/view.c | 6 ------ - 1 file changed, 6 deletions(-) - -diff --git a/dlls/wined3d/view.c b/dlls/wined3d/view.c -index b4bc771..2147cc7 100644 ---- a/dlls/wined3d/view.c -+++ b/dlls/wined3d/view.c -@@ -48,12 +48,6 @@ ULONG CDECL wined3d_rendertarget_view_decref(struct wined3d_rendertarget_view *v - { - struct wined3d_device *device = view->resource->device; - -- if (wined3d_settings.cs_multithreaded) -- { -- FIXME("Waiting for cs.\n"); -- device->cs->ops->finish(device->cs); -- } -- - /* Call wined3d_object_destroyed() before releasing the resource, - * since releasing the resource may end up destroying the parent. */ - view->parent_ops->wined3d_object_destroyed(view->parent); --- -2.8.0 - diff --git a/patches/wined3d-CSMT_Main/0091-wined3d-Destroy-vertex-declarations-through-the-CS.patch b/patches/wined3d-CSMT_Main/0091-wined3d-Destroy-vertex-declarations-through-the-CS.patch deleted file mode 100644 index 43da82ca..00000000 --- a/patches/wined3d-CSMT_Main/0091-wined3d-Destroy-vertex-declarations-through-the-CS.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 8c808d86f613798096da3f113415f2358c63d6bc Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Stefan=20D=C3=B6singer?= -Date: Wed, 31 Jul 2013 23:06:27 +0200 -Subject: wined3d: Destroy vertex declarations through the CS - ---- - dlls/wined3d/vertexdeclaration.c | 5 ----- - 1 file changed, 5 deletions(-) - -diff --git a/dlls/wined3d/vertexdeclaration.c b/dlls/wined3d/vertexdeclaration.c -index fcd637d..c8704e9 100644 ---- a/dlls/wined3d/vertexdeclaration.c -+++ b/dlls/wined3d/vertexdeclaration.c -@@ -66,11 +66,6 @@ ULONG CDECL wined3d_vertex_declaration_decref(struct wined3d_vertex_declaration - - if (!refcount) - { -- if (wined3d_settings.cs_multithreaded) -- { -- FIXME("Waiting for cs.\n"); -- declaration->device->cs->ops->finish(declaration->device->cs); -- } - declaration->parent_ops->wined3d_object_destroyed(declaration->parent); - wined3d_cs_emit_destroy_object(declaration->device->cs, - wined3d_vertex_declaration_destroy_object, declaration); --- -2.8.0 - diff --git a/patches/wined3d-CSMT_Main/0092-wined3d-Destroy-shaders-through-the-CS.patch b/patches/wined3d-CSMT_Main/0092-wined3d-Destroy-shaders-through-the-CS.patch deleted file mode 100644 index 96014e37..00000000 --- a/patches/wined3d-CSMT_Main/0092-wined3d-Destroy-shaders-through-the-CS.patch +++ /dev/null @@ -1,28 +0,0 @@ -From df9cd44711651586d8aeabd4f4dde47f5bd1801b Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Stefan=20D=C3=B6singer?= -Date: Wed, 31 Jul 2013 23:18:28 +0200 -Subject: wined3d: Destroy shaders through the CS - ---- - dlls/wined3d/shader.c | 5 ----- - 1 file changed, 5 deletions(-) - -diff --git a/dlls/wined3d/shader.c b/dlls/wined3d/shader.c -index 975a927..05eae08 100644 ---- a/dlls/wined3d/shader.c -+++ b/dlls/wined3d/shader.c -@@ -2664,11 +2664,6 @@ ULONG CDECL wined3d_shader_decref(struct wined3d_shader *shader) - - if (!refcount) - { -- if (wined3d_settings.cs_multithreaded) -- { -- FIXME("Waiting for cs.\n"); -- shader->device->cs->ops->finish(shader->device->cs); -- } - shader->parent_ops->wined3d_object_destroyed(shader->parent); - wined3d_cs_emit_destroy_object(shader->device->cs, wined3d_shader_destroy_object, shader); - } --- -2.8.0 - diff --git a/patches/wined3d-CSMT_Main/0116-wined3d-Destroy-shader-resource-views-through-the-CS.patch b/patches/wined3d-CSMT_Main/0116-wined3d-Destroy-shader-resource-views-through-the-CS.patch deleted file mode 100644 index d22d80d6..00000000 --- a/patches/wined3d-CSMT_Main/0116-wined3d-Destroy-shader-resource-views-through-the-CS.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 44d9ed38c0388ba76f6bcfa79f003754564c5ed4 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Stefan=20D=C3=B6singer?= -Date: Thu, 5 Nov 2015 16:39:01 +0100 -Subject: wined3d: Destroy shader resource views through the CS. - ---- - dlls/wined3d/view.c | 6 ------ - 1 file changed, 6 deletions(-) - -diff --git a/dlls/wined3d/view.c b/dlls/wined3d/view.c -index dc68687..6dd7ae2 100644 ---- a/dlls/wined3d/view.c -+++ b/dlls/wined3d/view.c -@@ -236,12 +236,6 @@ ULONG CDECL wined3d_shader_resource_view_decref(struct wined3d_shader_resource_v - { - struct wined3d_device *device = view->resource->device; - -- if (wined3d_settings.cs_multithreaded) -- { -- FIXME("Waiting for cs.\n"); -- device->cs->ops->finish(device->cs); -- } -- - /* Call wined3d_object_destroyed() before releasing the resource, - * since releasing the resource may end up destroying the parent. */ - view->parent_ops->wined3d_object_destroyed(view->parent); --- -2.8.0 -