On Tue Jun 17 13:41:22 2025 +0000, Rémi Bernon wrote:
> Hmm, I think it might be needed in theory but I kind of expect apps to
> always call wglSwapBuffer with an active context.
This is not the case in practice, SwapBuffers works with NULL context in WGL and GLX. I recall it is depended on in practice, IIRC the launcher of Black Desert.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8210#note_106850
On Tue Jun 17 13:37:42 2025 +0000, Fabian Maurer wrote:
> The `context` nullcheck is now pointless, since it's dereferenced
> anyways. Is that nullcheck superflous now, or should another nullcheck
> be added?
Hmm, I think it might be needed in theory but I kind of expect apps to always call wglSwapBuffer with an active context.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8210#note_106843
Generic ATTribute Profile (GATT) is a protocol used by BLE devices for data exchange. Broadly, every LE device contains one or more GATT services, with each service having multiple characteristics, which contain the actual piece of data to be exchanged. The Win32 BLE api is defined in [`bluetoothleapis.h`](https://learn.microsoft.com/en-us/windows/win32/api/bluetoothleapis/), and operates on `HANDLE`s to PDOs created by the driver to remote devices and services, using the `GUID_BLUETOOTHLE_DEVICE_INTERFACE` and `GUID_BLUETOOTH_GATT_SERVICE_DEVICE_INTERFACE` class interfaces respectively.
This MR introduces initial support for accessing GATT services on LE devices:
* Create PDOs for remote devices that we discover GATT services on, and enabling `GUID_BLUETOOTHLE_DEVICE_INTERFACE` for them.
* Because the driver also creates PDOs for bluetooth radios, a tagged union is used to distinguish between device extension values to dispatch IOCTL and PnP IRPs appropriately.
* Enumerate through all `org.bluez.GattService1` objects on BlueZ, and store them on the PE driver inside the associated devices.
* Implement IOCTL_WINEBTH_LE_DEVICE_GET_GATT_SERVICES for device PDOs.
* Use the newly added IOCTL to implement [`BluetoothGATTGetServices`](https://learn.microsoft.com/en-us/windows/win32/api/bluetoothleapis/nf-bluetoothleapis-bluetoothgattgetservices).
--
v10: bluetoothapis/tests: Add tests for BluetoothGATTGetServices.
bluetoothapis: Implement BluetoothGATTGetServices.
winebth.sys: Implement IOCTL_WINEBTH_LE_DEVICE_GET_GATT_SERVICES.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8174
Certain games have started using the newest GameInput API and linking to GameInput.dll. Adding a stub library allows these games to launch and enables them to fall back to the DirectInput API if `GameInputCreate` returns an error.
Affected games: Le Mans Ultimate
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8338
For React Native.
--
v2: kernel32/tests: Add tests for RtlActivateActivationContextUnsafe() and RtlDeactivateActivationContextUnsafeFast().
ntdll: Implement RtlDeactivateActivationContextUnsafeFast().
ntdll: Implement RtlActivateActivationContextUnsafeFast().
ntdll: Set and check flags for activation context stack frames.
kernel32/tests: Add tests for normal activation context stack frame flags.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8326