nine7nine / Wine-NSPA

Wine-NSPA: Proaudio & RT focused builds of Wine(-TKG)... WARNING: Forced Pushes && Resets..
26 stars 2 forks source link

Wine-NSPA-8.x Rebase - TODO / Priority #5

Closed nine7nine closed 1 year ago

nine7nine commented 1 year ago

https://github.com/ValveSoftware/wine

Given that much of the patchwork that I use loosely depends on some of Valve's patchwork, it's not time to actually look at rebasing Wine-NSPA on Wine-devel / Wine-Proton 8.x

So i will rebase to latest Wine-TKG and merge any needed/wanted changes from Proton-8.0 branch.

https://github.com/openglfreak/wine-tkg-userpatches

all of my core patchwork has already been rebased on Wine-8.0, so mostly trivial changes will be required. However, there are a number of patches that i want to pick up (out of tree), so that's going to be a bit more work...

nine7nine commented 1 year ago

the largest chunk of work is done here: https://github.com/nine7nine/Wine-NSPA/commit/16b2ded862c2a0a4d88f4fd015881dc456721ba5

however, it's a bit glitchy / needs work. patchwork is missing and generally, not there yet..

nine7nine commented 1 year ago

Picked up / updated more patchwork. still lots to do.

172fc745daf047c3a5aed20980f9201f0cdf9462 f1d132db60c719319e2919411f4a2ffdb9d291f2 e5bd744440358bc9d43d843fb5bf90007fee344a

getting better, but still glitchy / stuttery. ~ I'm going to have to take a very close look at all of the server and ntdll code, assuming that is the source of stalling/stuttering. Performance / cpu usage is generally higher too, still. However, if i get the stalling/stuttering sorted out, the higher cpu usage is manageable and will be improved through the wine-8.x development cycle.

nine7nine commented 1 year ago

Smacked a bunch more off of the list of TODO: 4a1e21fc483c7ffdd3fe6598d8e7d1d93d84aabe

still haven't resolved that, or the performance degradation. ~ I need to update the vdso patchwork, as something could be out-of-whack with that... Same goes with integrating the SYSCALL conversion patchwork.

this is all a bit tricky to figure out. but I'll get it eventually.

WIP - WIP -WIP!

nine7nine commented 1 year ago

picked up the SYSCALL stuff: 97f0ac1cc09bc7049a6cb35f02ca4530c95710f0

nine7nine commented 1 year ago

I believe I may have found the source of xruns / synchronization issues with Wine-8.x+

Valve/CodeWeavers added a patch for fsync called: fsync: "Use CLOCK_MONOTONIC for relative timeouts", through some initial tests, if i replace CLOCK_MONOTONIC in the function get_wait_end_time() with CLOCK_MONOTONIC_RAW ~ i no longer get any stalls / xruns...

CLOCK_MONOTONIC can be influenced by time changes (such as NTP), while the _RAW variant can NOT... I'm not sure what else has changed in Wine-7.5+ that causes this to be an issue: as i was using the same fsync code in wine-NSPA-7.5, but it didn't exhibit this issue -> so I'm at a loss here!! ... With that said, I think switching to CLOCK_MONOTONIC_RAW will fix the stalling/sync/xrun issue, I'll just need to test a bit more / longer.

note: if this fixes the stability issues, then I can promote Wine-NSPA-8.7 as a new stable branch - it still has some issues, in particular with higher CPU usage than 7Wine-NSPA-7.5 ~ but it's good enough, imo, for now.

that aside, I have largely finished rebasing now. - I'll close this if the above works.

nine7nine commented 1 year ago

8.x builds are rebased, not promoted yet -- but working reasonably well, as of my last 2 builds.

closing.