Here are 5 more patches on top of !4624, mostly along the same lines. I realize it's super late, no need to rush reviewing :slight_smile:
--
v2: d3d9/tests: Test creating a texture on a NULL HWND device.
d3d9/tests: Don't create a vertex shader in test_desktop_window() when unsupported.
wined3d: Conditionally allow sRGB writes with the 'none' shader backend.
wined3d: Conditionally support WINED3D_FRAGMENT_CAP_SRGB_WRITE on the ffp fragment pipe.
d3d9/tests: Skip test_sample_attached_rendertarget() without pixel shaders support.
wined3d: Don't override texture parameters for COND_NP2 on multisample textures.
wined3d: Don't skip FFP projection transform update.
d3d9: Don't do instanced draws in DrawPrimitive() and DrawPrimitiveUP().
wined3d: Rename WINED3DUSAGE_PRIVATE to WINED3DUSAGE_CS.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4652
--
v6: win32u: Introduce a new add_virtual_modes helper.
winex11: Let win32u decide when to force update the display cache.
win32u: Don't force refresh the display cache on thread desktop change.
winex11: Report all sources as detached in virtual desktop mode.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5422
Growtopia shows a popup when this function call fails, faking success gets rid of it. Unreal Editor also prints a warning message that is silenced through this change.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5530
Previously, `SetupDiGetINFClassW()` read INF files
with `GetPrivateProfileString()`, which does not substitute %strkey%
tokens.
This caused device installation to fail for devices which had driver
INF files using %strkey% tokens in Version section.
An example of such device is Vernier LabQuest Mini (08f7:0008) for
which Vernier's LoggerPro application includes a driver.
The INF file in question adds a new device setup class and has
following entries in Version section:
```
Class = %ClassName%
ClassGuid = %DeviceClassGUID%
```
Strings section includes following entries:
```
DeviceClassGUID = "{6B8429BF-10AD-4b66-9FBA-2FE72B891721}"
ClassName = "VST_WinUSB"
```
Previously, when LoggerPro was installed and LabQuest Mini was
hotplugged, device installation failed with the following error:
```
fixme:setupapi:SetupDiGetINFClassW failed to convert "L"%DeviceClassGUID"" into a guid
```
This caused GUID_NULL to be used and Class was not set to the registry
for the device.
With this commit, correct class GUID and names are set to the device
registry entry.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56579
--
v4: setupapi: use INF parser to read class GUID and class name
setupapi/tests: add tests for reading INF class with %strkey% tokens
https://gitlab.winehq.org/wine/wine/-/merge_requests/5519