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.
--
v14: server: Check wineserver privileges on init with -20 niceness.
server: Use setpriority to update thread niceness when safe.
ntdll: Set RLIMIT_NICE to its hard limit.
server: Introduce new set_thread_priority helper.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4551
Parse MIDI meta set tempo events, and create a tempotrack for it.
--
v2: dmime: Parse MIDI Set Tempo meta events and generate a tempotrack.
dmime: Implement setting TempoParam for tempotracks.
dmime: Use linked list for tempotrack.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5190
This is the first part of a larger serie to cover module loading and debug
info file lookup in dbghelp.
This first part covers:
- a bunch of new tests
- ensuring correct behavior of native some errors pointed out by tests
(64 bit modules can be loaded on 32 bit programs, and whether the
fullpath is used in some API).
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5204
This MR introduces support for OpenGL in the Wayland driver.
Since the MR started to become somewhat long I have left some things for a subsequent part 13.2:
* wgl(Get)SwapIntervalEXT (which means everything is vsync-ed at the moment)
* wglShareLists
* wglCreateContextAttribsARB
* Fix for some apps appearing translucent in certain compositors (typically when fullscreen).
Missing features not planned to be part of the 13.x MRs:
* Offscreen rendering through pbuffers or pixmaps, since Wayland EGL doesn't support them (perhaps we can simulate with FBOs instead?).
* Front buffer rendering. Again Wayland EGL doesn't support this, and certainly not in the form needed (i.e., the surface should be available for additional rendering with GDI). In the experimental branch I implemented a workaround that seemed to work for many cases, but will need to revisit and reevaluate options. IIRC, the most common case I have seen for this is when using wined3d/gl for older (Direct)2D games, so perhaps we can find a better solution at that layer.
* Child window rendering (this needs infrastructure in Wayland driver core which will enable both GL and Vulkan rendering in child windows).
* Cross-process rendering.
Thanks!
--
v2: winewayland.drv: Handle resizing of OpenGL content.
winewayland.drv: Implement wglSwapBuffers.
winewayland.drv: Implement wglMakeCurrent and wglMakeContextCurrentARB.
winewayland.drv: Implement OpenGL context creation.
winewayland.drv: Implement wglSetPixelFormat(WINE).
winewayland.drv: Implement wglDescribePixelFormat.
winewayland.drv: Implement wglGetProcAddress.
winewayland.drv: Implement wglGetExtensionsString{ARB,EXT}.
winewayland.drv: Initialize core GL functions.
winewayland.drv: Add skeleton OpenGL driver.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5177
--
v4: mfreadwrite/reader: Implement IMFSourceReaderEx_GetTransformForStream.
mfreadwrite/reader: Create and append a converter transform.
mfreadwrite/reader: Keep the stream transforms in a list.
mfreadwrite/reader: Call SetOutputType directly on the decoder transform.
mf/topology_loader: Only propagate some media type attributes.
mfreadwrite/reader: Split source_reader_create_decoder_for_stream helper.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5120
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.
--
v13: server: Check wineserver privileges on init with -20 niceness.
server: Use setpriority to update thread niceness when safe.
ntdll: Set RLIMIT_NICE to its hard limit.
server: Introduce new set_thread_priority helper.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4551
--
v3: mfreadwrite/reader: Implement IMFSourceReaderEx_GetTransformForStream.
mfreadwrite/reader: Create and append a converter transform.
mfreadwrite/reader: Keep the stream transforms in a list.
mfreadwrite/reader: Call SetOutputType directly on the decoder transform.
mf/topology_loader: Only propagate some media type attributes.
mfreadwrite/reader: Split source_reader_create_decoder_for_stream helper.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5120