https://git.reactos.org/?p=reactos.git;a=commitdiff;h=adfbefde2b237f757d741…
commit adfbefde2b237f757d741e0cf17197e51599d436
Author: Thomas Faber <thomas.faber(a)reactos.org>
AuthorDate: Sun Aug 19 13:27:04 2018 +0200
Commit: Thomas Faber <thomas.faber(a)reactos.org>
CommitDate: Sun Aug 19 13:46:02 2018 +0200
[WINED3D] Avoid spinning in wined3d_cs_run. CORE-14534
Spinning here is supposed to improve performance by avoiding scheduling
overhead, but because ReactOS's Win32 subsystem does not deal with this well,
it causes the system to freeze on ROS.
As a workaround, we disable spinning and jump directly to the wait.
It should become obvious when this starts actually causing performance issues
again and it's time to undo.
---
dll/directx/wine/wined3d/wined3d_private.h | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/dll/directx/wine/wined3d/wined3d_private.h
b/dll/directx/wine/wined3d/wined3d_private.h
index 7b3731c014..3444b52928 100644
--- a/dll/directx/wine/wined3d/wined3d_private.h
+++ b/dll/directx/wine/wined3d/wined3d_private.h
@@ -3544,7 +3544,11 @@ enum wined3d_push_constants
#define WINED3D_CS_QUERY_POLL_INTERVAL 10u
#define WINED3D_CS_QUEUE_SIZE 0x100000u
+#ifdef __REACTOS__
+#define WINED3D_CS_SPIN_COUNT 1u
+#else
#define WINED3D_CS_SPIN_COUNT 10000000u
+#endif
struct wined3d_cs_queue
{