This is the current proton thread priority implementation by @rbernon rebased for upstream with a few `#ifdef`s added since AFAIK Linux is the only operating system where threads have a unique PID which can be used to set niceness on.
I also ran `./tools/make_requests` on https://gitlab.winehq.org/mzent/wine/-/commit/6705d3481be0409f7e971c1d2c7a3… as well and `autoconf` on https://gitlab.winehq.org/mzent/wine/-/commit/d7bafe40c411753662b2ad97148a6… (which does blow up the line count a bit).
A few tiny changes (with the ready variable for example) are in anticipation for Part 2, which also adds Mach thread priorities and recalculates thread priorities on process priority change.
Since this is a rather large MR, I hope the split here is appropriate (with the second part being slightly smaller), but I think logically it makes the most sense here.
--
v3: server: Check wineserver privileges on init with -20
server: Use setpriority to update thread niceness when safe.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4551
--
v4: wined3d: Set d3d 1-9 textures in the state as SRVs.
d3d9: Use wined3d_texture_acquire_identity_srv().
wined3d: Introduce an API for creating an identity SRV on a texture.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4436
The tests show that the first argument must not be null, that the handle
returned via the fourth argument is not an HTHEME, and that that handle
can be passed to CloseThemeFile without error.
--
v2: uxtheme/tests: Add some tests for OpenThemeFile.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4531