The MR adds implementations (+ a few tests) for the following methods in `bluetoothapis.h`:
* `BluetoothSdpEnumAttributes`
* `BluetoothSdpGetContainerElementData`
* `BluetoothSdpGetElementData`
* `BluetoothSdpGetAttributeValue`
--
v11: bluetoothapis/tests: Add test for BluetoothSdpEnumAttributes and BluetoothSdpGetAttributeValue.
bluetoothapis: Implement BluetoothSdpGetAttributeValue.
bluetoothapis/tests: Add unit tests for BluetoothSdpGetContainerElementData and BluetoothSdpGetElementData.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6402
The MR adds implementations (+ a few tests) for the following methods in `bluetoothapis.h`:
* `BluetoothSdpEnumAttributes`
* `BluetoothSdpGetContainerElementData`
* `BluetoothSdpGetElementData`
* `BluetoothSdpGetAttributeValue`
--
v8: bluetoothapis/tests: Add test for BluetoothSdpGetAttributeValue.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6402
The MR adds implementations (+ a few tests) for the following methods in `bluetoothapis.h`:
* `BluetoothSdpEnumAttributes`
* `BluetoothSdpGetContainerElementData`
* `BluetoothSdpGetElementData`
* `BluetoothSdpGetAttributeValue`
--
v7: bluetoothapis/tests: Add test for BluetoothSdpGetAttributeValue.
bluetoothapis: Implement BluetoothSdpGetAttributeValue.
bluetoothapis/tests: Add unit tests for BluetoothSdpEnumAttributes, BluetoothSdpGetContainerElementData, and BluetoothSdpGetElementData.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6402
The MR adds implementations (+ a few tests) for the following methods in `bluetoothapis.h`:
* `BluetoothSdpEnumAttributes`
* `BluetoothSdpGetContainerElementData`
* `BluetoothSdpGetElementData`
* `BluetoothSdpGetAttributeValue`
--
v6: bluetoothapis/tests: Add test for BluetoothSdpGetAttributeValue.
bluetoothapis: Implement BluetoothSdpGetAttributeValue.
bluetoothapis/tests: Add unit tests for BluetoothSdpEnumAttributes, BluetoothSdpGetContainerElementData, and BluetoothSdpGetElementData.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6402
This fixes one of the regression with ShellExecute when using a full patch and an executable without an extension.
--
v2: shell32: Allow FindExecutables to find unix files.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6285
Thanks, LGTM!
Note that with this MR we can sometimes get artifacts in GL applications such as:

However this is not a problem with the change itself, but rather this change is interacting with two existing deficiencies in the driver:
1. `wayland_window_surface_set_clip()` is not implemented, hence we get such artifacts in our committed window surface buffers.
2. OpenGL surfaces not presented opaquely hence we can actually see the artifacts in the window surface behind the GL subsurface. We might want to revisit using EGL_EXT_present_opaque now that https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28153 has been merged, although this would require a Mesa version check in the Wayland driver to use the feature safely.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6386#note_80510
> @rbernon I'm okay with using reserved as an offset to pass the device path, but we'd still have to pass it for every message for filtering. I didn't want to utilize `reserved` mostly out of caution, if it ever turned out to be that the field did have some undocumented semantics after all.
Maybe we can avoid sending the paths every time by moving the filtering to plugplay, adapting the interface a bit for this. There could be additional methods to register paths / get plugplay handles in return, and later use these handle as device handles.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6315#note_80507
On Thu Aug 29 23:38:23 2024 +0000, Vibhav Pant wrote:
> @zfigura Testing it is tricky. My plan was to utilize it in the
> bluetooth driver by directly calling `plugplay_send_event` from the
> driver code itself, and I'm not sure what the equivalent of that would
> be in Windows.
> @rbernon I'm okay with using reserved as an offset to pass the device
> path, but we'd still have to pass it for every message for filtering. I
> didn't want to utilize `reserved` mostly out of caution, if it ever
> turned out to be that the field did have some undocumented semantics
> after all.
After doing a bit of research, I believe the Windows interface is IoReportTargetDeviceChange(). See [1], which mentions using that function to report the device notification, and that user mode should register for it with RegisterDeviceNotification().
That function is probably only used for DBT_DEVTYP_HANDLE. I suspect there is no public interface for DBT_DEVTYP_DEVICEINTERFACE. The corresponding kernel-mode identifier for that one is EventCategoryDeviceInterfaceChange, but I suspect that IoReportTargetDeviceChange() only deals with EventCategoryTargetDeviceChange. This would make sense since device interface notifications should only be generated by the kernel anyway.
[I have no idea about the other DBT_DEVTYPE_* values. Are they even ever sent in NT?]
[1] https://learn.microsoft.com/en-us/windows-hardware/drivers/kernel/using-pnp…
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6315#note_80501
On Fri Aug 30 02:21:05 2024 +0000, Alexandre Julliard wrote:
> Much better, thanks. Could you please fix the authorship information in
> the commit to use your full name?
My apologies. I thought the authorship name was supposed to match the gitlab username instead of full name. It is corrected now.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6299#note_80500
Using IMF2DBuffer2_Lock2DSize with LockFlags_Write dramatically improves
performance over IMFMediaBuffer_Lock when using a DXGI buffer.
IMFMediaBuffer_Lock does not know that this buffer will not be read and
therefore performs an unnecessary transfer of the texture from GPU to CPU
before it is overwritten.
--
v2: winegstreamer: Optimise copy to DXGI buffer.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5978
The MR adds implementations (+ a few tests) for the following methods in `bluetoothapis.h`:
* `BluetoothSdpEnumAttributes`
* `BluetoothSdpGetContainerElementData`
* `BluetoothSdpGetElementData`
* `BluetoothSdpGetAttributeValue`
--
v5: bluetoothapis/tests: Add test for BluetoothSdpGetAttributeValue.
bluetoothapis: Implement BluetoothSdpGetAttributeValue.
bluetoothapis/tests: Add unit tests for BluetoothSdpEnumAttributes, BluetoothSdpGetContainerElementData, and BluetoothSdpGetElementData.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6402
The MR adds implementations (+ a few tests) for the following methods in `bluetoothapis.h`:
* `BluetoothSdpEnumAttributes`
* `BluetoothSdpGetContainerElementData`
* `BluetoothSdpGetElementData`
* `BluetoothSdpGetAttributeValue`
--
v4: bluetoothapis/tests: Add test for BluetoothSdpGetAttributeValue.
bluetoothapis: Implement BluetoothSdpGetAttributeValue.
bluetoothapis/tests: Add unit tests for BluetoothSdpEnumAttributes, BluetoothSdpGetContainerElementData, and BluetoothSdpGetElementData.
bluetoothapis: Implement BluetoothSdpEnumAttributes.
bluetoothapis: Implement BluetoothSdpGetContainerElementData.
bluetoothapis: Implement BluetoothSdpGetElementData.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6402
The MR adds implementations (+ a few tests) for the following methods in `bluetoothapis.h`:
* `BluetoothSdpEnumAttributes`
* `BluetoothSdpGetContainerElementData`
* `BluetoothSdpGetElementData`
* `BluetoothSdpGetAttributeValue`
--
v3: bluetoothapis/tests: Add test for BluetoothSdpGetAttributeValue.
bluetoothapis: Implement BluetoothSdpGetAttributeValue.
bluetoothapis/tests: Add unit tests for BluetoothSdpEnumAttributes, BluetoothSdpGetContainerElementData, and BluetoothSdpGetElementData.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6402
On Thu Aug 29 16:19:09 2024 +0000, Elizabeth Figura wrote:
> Actually, I'm a bit confused, because now I'm not sure where RPC does do
> that? I was assuming it was a user-marshalled type which implicitly
> calls DuplicateHandle(), but that's not the case.
> The lack of tests in this patch set is a little disturbing. Is it
> possible to test this behaviour? I don't know under what circumstances
> handle events are sent [and I can't easily find anyone successfully
> using DBT_DEVTYP_HANDLE online]. We do have support for testing PnP
> drivers, though, if that's necessary; see dlls/ntoskrnl.exe/tests/driver_pnp.c.
@zfigura Testing it is tricky. My plan was to utilize it in the bluetooth driver by directly calling `plugplay_send_event` from the driver code itself, and I'm not sure what the equivalent of that would be in Windows.
@rbernon I'm okay with using reserved as an offset to pass the device path, but we'd still have to pass it for every message for filtering. I didn't want to utilize `reserved` mostly out of caution, if it ever turned out to be that the field did have some undocumented semantics after all.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6315#note_80493
The macOS Sequoia SDK has "obsoleted" this function: calling it
triggers a build error when targeting macOS Sequoia.
It can still be used though, either by targeting pre-Sequoia or by
getting a pointer to the function through dlsym().
This is intended to be temporary until ScreenCaptureKit.framework or
some other approach can be used (see !5935).
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6403