https://git.reactos.org/?p=reactos.git;a=commitdiff;h=adfbefde2b237f757d741e...
commit adfbefde2b237f757d741e0cf17197e51599d436 Author: Thomas Faber thomas.faber@reactos.org AuthorDate: Sun Aug 19 13:27:04 2018 +0200 Commit: Thomas Faber thomas.faber@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 {