https://git.reactos.org/?p=reactos.git;a=commitdiff;h=adfbefde2b237f757d741e0cf17197e51599d436

commit adfbefde2b237f757d741e0cf17197e51599d436
Author:     Thomas Faber <[email protected]>
AuthorDate: Sun Aug 19 13:27:04 2018 +0200
Commit:     Thomas Faber <[email protected]>
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
 {

Reply via email to