This series begins the process of moving GL format detection code to a separate
file, for reasons described in 1/6 and [1].
Still, if this is deemed undesirable or not worthwhile, I don't particularly
mind dropping this and/or further refactoring work. At this point my initial
goal, viz. to find all of the code in wined3d that implicitly assumes it's
running under the GL backend, has basically been accomplished.
[1] https://gitlab.winehq.org/wine/wine/-/merge_requests/3238
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4858
This is required to avoid silencing (potentially fatal) exceptions from timer procedures.
--
v5: win32u: Ignore unhandled info index in NtUserSetObjectInformation.
win32u/tests: Add tests for NtUserSetObjectInformation.
user32: Implement UOI_TIMERPROC_EXCEPTION_SUPPRESSION.
user32/tests: Add tests for UOI_TIMERPROC_EXCEPTION_SUPPRESSION.
include: Add definition for UOI_TIMERPROC_EXCEPTION_SUPPRESSION
user32/tests: Make test_unicode_wm_char robust against superfluous messages.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3454
On Fri Jan 19 04:03:14 2024 +0000, Zhiyi Zhang wrote:
> Why enum_adapters_2_desc.NumAdapters + 1 and not
> enum_adapters_2_desc.NumAdapters? I don't think it's necessary to check
> buffer that is out of range.
Sure, will remove.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4857#note_58258
> This is wrong. adapters in sysparams.c are GDI adapters, they are not the same adapter in D3DKMT terms. Adapters in D3DKMT terms mean GPUs. So you need to add a list of GPUs to the cache and then do enumeration from that.
Ah, okay, I see. I was unaware of GDI having a different concept of adapters than D3D(KMT), my bad there :sweat_smile:
> You should do the initialization from the SetupAPI registry data. For example, basically with the following code. However, since you're in win32u. You can't use SetupAPI directly and you need to convert these to NT registry calls instead. See prepare_devices() for some example code for how to do it.
Thanks, I'll see if I can figure this out.
> Then `NumOfSources` is the number of GDI adapters with the same GPU LUID.
Okay. From what I've observed, on Windows (checking 2 separate machines), it seems to be constant 4 for adapters that represent physical GPUs and 0 for adapter that seems to represent Microsoft's Basic Render thingy.
> As for bPrecisePresentRegionsPreferred, I guess you can just return TRUE.
For what it's worth, I haven't seen any adapter to report `TRUE` here on Windows. So it might be safer to default to `FALSE` instead.
> The GPU list construction can be done in update_display_cache_from_registry().
Got it, thanks.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4857#note_58257