http://bugs.winehq.org/show_bug.cgi?id=59450 --- Comment #34 from Tony Fabris <tfabris@gmail.com> --- Okay, I'm currently trying to do an A/B comparison between having one of these two statements in my launcher script, and seeing if it makes a difference in the frequency of the hangs. Note that I'm also temporarily setting the vkd3d debug text level to its lowest setting, so that the hang should be more likely to occur. export VKD3D_DEBUG=none export MVK_CONFIG_SYNCHRONOUS_QUEUE_SUBMITS=1 export VKD3D_DEBUG=none export MVK_CONFIG_SYNCHRONOUS_QUEUE_SUBMITS=0 So far, setting it to "1" (the supposed default) seems (maybe?) like it might be helpful. Setting it to "0" produced a hang in just a minute or two, and I was able to run it for more than 30 minutes without a hang when it was set to "1". But I need to run it for a longer period of time to be certain, since it was quite intermittent to begin with. Here's something interesting I found when comparing the Crossover version of MoltenVK with the version currently on GitHub: File: Docs/Whats_New.md ----------------------- #### MVK_CONFIG_SYNCHRONOUS_QUEUE_SUBMITS ##### Type: Boolean ##### Default: `1` _(The default value is `0` for OS versions prior to macOS 10.14+/iOS 12+)._ My MacOS version is 12.7.6, so this shouldn't apply to me. (Maybe? Unless the version number detection in their code is broken?) It looks like this is where that's implemented in the code: File: MoltenVK/MoltenVK/Utility/MVKEnvironment.h ------------------------------------------------ Github version: #ifndef MVK_CONFIG_SYNCHRONOUS_QUEUE_SUBMITS # define MVK_CONFIG_SYNCHRONOUS_QUEUE_SUBMITS 1 #endif Crossover version: #ifndef MVK_CONFIG_SYNCHRONOUS_QUEUE_SUBMITS # define MVK_CONFIG_SYNCHRONOUS_QUEUE_SUBMITS mvkOSVersionIsAtLeast(MVK_CONFIG_MTLEVENT_MIN_OS) #endif Note that MVK_CONFIG_MTLEVENT_MIN_OS is set to "10.14" in the code. So the only way that this code could apply to me is if there's a bug in the "mvkOSVersionIsAtLeast()" function and my system is erroneously being detected as lower than 10.14. This is only other code difference I see which is related to synchronousQueueSubmits. I don't know if it's relevant to the issue or not: File: MoltenVK/MoltenVK/GPUObjects/MVKQueue.mm ---------------------------------------------- Crossover Version: if ( !getMVKConfig().synchronousQueueSubmits ) { // Determine the dispatch queue priority dispatch_qos_class_t dqQOS = MVK_DISPATCH_QUEUE_QOS_CLASS; GitHub Version: if ( !getMVKConfig().synchronousQueueSubmits ) { dispatch_qos_class_t dqQOS; switch (_globalPriority) { case VK_QUEUE_GLOBAL_PRIORITY_LOW: dqQOS = QOS_CLASS_UTILITY; break; case VK_QUEUE_GLOBAL_PRIORITY_HIGH: dqQOS = QOS_CLASS_USER_INTERACTIVE; break; case VK_QUEUE_GLOBAL_PRIORITY_MEDIUM: default: // Fall back to default (medium) dqQOS = QOS_CLASS_USER_INITIATED; break; } Anyway, I'm going to do more A/B testing of that environment variable and see if I can get a definitive answer as to whether it helped. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.