On Tue Sep 24 22:54:03 2024 +0000, Shmerl wrote:
> registry / regedit is a way to handle wine settings. That's not limited
> to winedmo. Though naming could be a bit better. I was trying to dig
> through it using ffmpeg as a filter, while the key is
> DisableGstByteStreamHandler. I.e. may be instead of negative it could be
> positive `UseFfmpeg...` or something..
Yes i know. But they use to make them into "Settings" when they are broadly used (i.e. gamers).
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6442#note_83282
registry / regedit is a way to handle wine settings. That's not limited to winedmo. Though naming could be a bit better. I was trying to dig through it using ffmpeg as a filter, while the key is DisableGstByteStreamHandler. I.e. may be instead of negative it could be positive `UseFfmpeg...` or something..
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6442#note_83281
The current implementation of the GetDriveTypeW/A function relies on native system calls (such as fstatfs() in Linux) to determine the actual type of the drive, disregarding any configuration set through the mounts manager (wincfg). This patch changes the priority, giving precedence to the mounts manager configuration, making the user responsible for mapping drives. System calls will only be used if the drive is not explicitly configured by the user. I acknowledge that this is a breaking change, but I believe it enforces the correct behavior for GetDriveType.
Resolves: https://forum.winehq.org/viewtopic.php?t=38909
--
v3: fix: strlen -> wcslen
https://gitlab.winehq.org/wine/wine/-/merge_requests/6553
The current implementation of the GetDriveTypeW/A function relies on native system calls (such as fstatfs() in Linux) to determine the actual type of the drive, disregarding any configuration set through the mounts manager (wincfg). This patch changes the priority, giving precedence to the mounts manager configuration, making the user responsible for mapping drives. System calls will only be used if the drive is not explicitly configured by the user. I acknowledge that this is a breaking change, but I believe it enforces the correct behavior for GetDriveType.
Resolves: https://forum.winehq.org/viewtopic.php?t=38909
--
v2: fix: passing wrong roots for get_mountmgr_drive_type
https://gitlab.winehq.org/wine/wine/-/merge_requests/6553
The current implementation of the GetDriveTypeW/A function relies on native system calls (such as fstatfs() in Linux) to determine the actual type of the drive, disregarding any configuration set through the mounts manager (wincfg). This patch changes the priority, giving precedence to the mounts manager configuration, making the user responsible for mapping drives. System calls will only be used if the drive is not explicitly configured by the user. I acknowledge that this is a breaking change, but I believe it enforces the correct behavior for GetDriveType.
Resolves: https://forum.winehq.org/viewtopic.php?t=38909
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6553
The WordSmith application downloads an update information file with wininet, but it fails to receive the correct data because the remote HTTP server returns a 503 error page, as it does not tolerate receiving a User-Agent header with a blank value in the request.
Tests show that when a blank user agent string is passed to InternetOpen, a request created from the resulting session handle should not include a User-Agent header at all.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56875
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6541
--
v5: ntdll: Support old parameter layout for NtSetInformationProcess( ProcessInstrumentationCallback ).
ntdll: Call instrumentation callback for KiUserModeCallback on x64.
ntdll: Call instrumentation callback for LdrInitializeThunk on x64.
ntdll: Call instrumentation callback for KiUserExceptionDispatcher on x64.
ntdll: Call instrumentation callback from wine_syscall_dispatcher on x64.
ntdll/tests: Add more tests for process instrumentation callback.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6446
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=57204
--
v2: winedmo: Convert H264 streams to Annex B format.
winedmo: Pass demuxer packets through the bitstream filters.
winedmo: Create bitstream filters for demuxer streams.
winedmo: Move the last packet to the demuxer struct.
winedmo: Allocate a dedicated demuxer structure.
winedmo: Simplify demuxer creation error handling.
winedmo: Hoist the demuxer input format.
mfsrcsnk: Serialize stream sample requests with the state callbacks.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6551
On Tue Sep 24 12:38:50 2024 +0000, Connor McAdams wrote:
> There was a time where I was using it because of floating point error,
> but I've since removed that code and if that was something that needed
> to be addressed again it would probably be better served by a `ulp`
> argument in that structure somewhere. It'd also need a separate path
> instead of just comparing pixels with `memcmp`.
> I can remove this in my next patch series if that would make things
> cleaner. :) Just let me know.
It looks like Alexandre already got rid of `match_count` while merging this :smile: As for `partial_todo`, we can probably drop it next time we touch the test, just to keep it all tidy :slight_smile:
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6360#note_83204
--
v7: winewayland: Let the render threads commit changes to client surfaces.
winewayland: Attach client client surfaces to their toplevel surface.
winewayland: Pass the client surface rect to wayland_surface_reconfigure_client.
winewayland: Split wayland_win_data_update_wayland_surface helper.
winewayland: Update the client separately from the window surface updates.
winewayland: Keep the toplevel hwnd on the wayland_client_surface.
winewayland: Call ensure_window_surface_contents with the toplevel window.
winewayland: Use window DPI for the OpenGL client surface size.
win32u: Notify drivers of the child surfaces state when their ancestor moves.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6323
On Mon Sep 23 21:04:28 2024 +0000, Alexandre Julliard wrote:
> changed this line in [version 6 of the diff](/wine/wine/-/merge_requests/6360/diffs?diff_id=133886&start_sha=f960633327fa75a92f98dd32216545f535666144#d49071753fdf2ab21d518dbd8c720b48c7c732fc_1040_1040)
There was a time where I was using it because of floating point error, but I've since removed that code and if that was something that needed to be addressed again it would probably be better served by a `ulp` argument in that structure somewhere. It'd also need a separate path instead of just comparing pixels with `memcmp`.
I can remove this in my next patch series if that would make things cleaner. :) Just let me know.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6360#note_83167
Currently trying to dlopen winealsa.so, without having the
matching libasound.so.2 installed, fails silently.
This should make users aware of the missing dependency.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=57206
--
v2: mmdevapi: Add error if no driver could be initialized.
ntdll: Add warning if dlopen of unixlib failed.
winecoreaudio.drv: Add warning if loading unixlib failed.
wineoss.drv: Add warning if loading unixlib failed.
winealsa.drv: Add warning if loading unixlib failed.
winepulse.drv: Add warning if loading unixlib failed.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6543
--
v4: ntdll: Support old parameter layout for NtSetInformationProcess( ProcessInstrumentationCallback ).
ntdll: Call instrumentation callback for KiUserModeCallback on x64.
ntdll: Call instrumentation callback for LdrInitializeThunk on x64.
ntdll: Call instrumentation callback for KiUserExceptionDispatcher on x64.
ntdll: Call instrumentation callback from wine_syscall_dispatcher on x64.
ntdll/tests: Add more tests for process instrumentation callback.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6446
If no native ODBC library exists, this can result in a buffer overflow as the error message is (on macOS at least) too long.
The second patch fixes an incorrect return value when `SQLGetDiagRec` is called without a connection being set up.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6546
Test Driver Unlimited Solar Crown depends on that (both calling ProcessTlsInformation and hotpatches the same to fixup the thread local storage allocation from ntdll).
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6549
This is the initial set of patches for handling new pixel format types. I've pushed a branch [here](https://gitlab.winehq.org/cmcadams/wine/-/commits/WIP/d3dx-shared-sou… containing the rest of my current patches if additional context would be useful, the new format handling patches end with `ed7022a0838b346f4fa2b229ce7e8e6b8ebc2244`.
--
v5: d3dx9: Use format_from_d3dx_color() instead of fill_texture().
d3dx9: Add support for D3DFMT_V8U8.
d3dx9: Add support for D3DFMT_Q8W8V8U8.
d3dx9: Store pixel value range alongside pixel values when reading pixels.
d3dx9: Clamp source components to unorm range.
d3dx9/tests: Add format conversion tests for premultiplied alpha DXTn formats.
d3dx9/tests: Add more d3d format conversion tests.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6360
Fixes heap corruption downstream in NsiEnumerateObjectsAllParametersEx.
Fixes regressions from 9085bc7b87f and a3f737f6143.
---
I missed this piece of logic in MR !6399. The original line that implemented it is this:
https://gitlab.winehq.org/wine/wine/-/blob/1d05064e747f9998fd705345659030e6…
--
v3: nsiproxy: Only set the endpoint count from udp_endpoint_enumerate_all when appropriate.
nsiproxy: Only set the connection count from tcp_conns_enumerate_all when appropriate.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6548
--
v6: winewayland: Let the render threads commit changes to client surfaces.
winewayland: Attach client client surfaces to their toplevel surface.
winewayland: Pass the client surface rect to wayland_surface_reconfigure_client.
winewayland: Split wayland_win_data_update_wayland_surface helper.
winewayland: Update the client separately from the window surface updates.
winewayland: Keep the toplevel hwnd on the wayland_client_surface.
winewayland: Call ensure_window_surface_contents with the toplevel window.
winewayland: Use window DPI for the OpenGL client surface size.
win32u: Notify drivers of the child surfaces state when their ancestor moves.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6323
On Mon Sep 23 15:19:03 2024 +0000, Paul Gofman wrote:
> > This breaks `Luna.msstyles`:
> Could you please give the full details how can I reproduce the issue:
> - Wine doesn't have Luna mssstyle, how do you get and install it exactly?
> - What is the exact problem, it is not apparent to me from the screenshot?
Nevermind, I think I reproduced it (downloaded the theme from somewhere and it looks like it is not supposed to be pink). I'll take a look.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6401#note_83038
> This breaks `Luna.msstyles`:
Could you please give the full details how can I reproduce the issue:
- Wine doesn't have Luna mssstyle, how do you get and install it exactly?
- What is the exact problem, it is not apparent to me from the screenshot?
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6401#note_83035
This MR adds a unixlib component to wlanapi containing DBus + NetworkManager implementations for
* WlanEnumInterfaces
* WlanGetAvailableNetworkList
* WlanGetAvailableNetworkList
* WlanGetNetworkBssList
* WlanScan
--
v9: wlanapi/tests: Add unit tests for WlanGetProfileList.
wlanapi: Add stub for WlanGetProfileList.
wlanapi: Add NetworkManager backed implementation for WlanScan.
wlanapi/tests: Add unit tests for WlanScan.
wlanapi: Add NetworkManager backed implementation for WlanGetNetworkBssList.
wlanapi/tests: Add unit test for test_WlanGetNetworkBssList.
wlanapi: Add stub for WlanGetNetworkBssList.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6505
This MR adds a unixlib component to wlanapi containing DBus + NetworkManager implementations for
* WlanEnumInterfaces
* WlanGetAvailableNetworkList
* WlanGetAvailableNetworkList
* WlanGetNetworkBssList
* WlanScan
--
v8: wlanapi: Add stub for WlanGetProfileList.
wlanapi: Add NetworkManager backed implementation for WlanScan.
wlanapi/tests: Add unit tests for WlanScan.
wlanapi: Add NetworkManager backed implementation for WlanGetNetworkBssList.
wlanapi/tests: Add unit test for test_WlanGetNetworkBssList.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6505
--
v3: server: Eliminate async_alerted() helper function.
server: Eliminate async_unknown_status() helper function.
server: Remove "unknown_status" field from struct async.
server: Remove "alerted" field from struct async.
server: Remove "terminated" field from struct async.
server: Remove "signaled" field from struct async.
server: Remove "direct_result" field from struct async.
server: Signal async unconditionally in async_set_result().
server: Introduce a new async state enum.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6369
This MR adds a unixlib component to wlanapi containing DBus + NetworkManager implementations for
* WlanEnumInterfaces
* WlanGetAvailableNetworkList
* WlanGetAvailableNetworkList
* WlanGetNetworkBssList
* WlanScan
--
v6: wlanapi: Add NetworkManager backed implementation for WlanScan.
wlanapi/tests: Add unit tests for WlanScan.
wlanapi: Add NetworkManager backed implementation for WlanGetNetworkBssList.
wlanapi/tests: Add unit test for test_WlanGetNetworkBssList.
wlanapi: Add NetworkManager backed implementation for WlanGetAvailableNetworkList.
wlanapi/tests: Add unit test for WlanGetAvailableNetworkList.
wlanapi: Add NetworkManager backed implementation for WlanEnumInterfaces.
wlanapi: Add a basic unixlib implementation.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6505
The MR adds implementations (+ a few tests) for the following methods in `bluetoothapis.h`:
* `BluetoothSdpEnumAttributes`
* `BluetoothSdpGetContainerElementData`
* `BluetoothSdpGetElementData`
* `BluetoothSdpGetAttributeValue`
--
v23: bluetoothapis: Implement BluetoothSdpGetAttributeValue.
bluetoothapis/tests: Add tests for BluetoothSdpGetAttributeValue.
bluetoothapis: Add stub for BluetoothSdpGetAttributeValue.
bluetoothapis: Implement BluetoothSdpEnumAttributes.
bluetoothapis/tests: Add tests for BluetoothSdpEnumAttributes.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6402
On Wed Sep 18 15:58:22 2024 +0000, Nikolay Sivov wrote:
> I think it is, because it will produce incorrect rendering. First
> priority is to have it working correctly, then we can deal with possible duplication.
TBH, I do not really know what to make of this assessment. Looking at the d2d1 tests it feels like, correctness is at best achieved approximately, and then the question arises what is the metric in which "correctness" is assessed? Unarguably, the tests as a metric are a moving target, depending on when which tests are added, thus making it a subjective choice at times.
In my book, the patch at hand makes the rendering more correct in many cases. To be precise in all cases in which the individual geometries in the geometry group do not intersect, and thus the fill mode does not matter. Would you consider the patch sufficient, if it would (approximately) check for intersections and only copy if there are none, and falling back to old behavior (rendering just nothing) in case there are any (potentially false-positive) intersections?
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6492#note_82945
--
v2: server: Eliminate async_alerted() helper function.
server: Eliminate async_unknown_status() helper function.
server: Remove "unknown_status" field from struct async.
server: Remove "alerted" field from struct async.
server: Remove "terminated" field from struct async.
server: Remove "signaled" field from struct async.
server: Remove "direct_result" field from struct async.
server: Signal async unconditionally in async_set_result().
server: Introduce a new async state enum.
server: Introduce async_unknown_status() helper to compute the 'unknown_status' flag.
server: Introduce async_alerted() helper to compute the 'alerted' flag.
server: Introduce async_terminated() helper to compute the 'terminated' flag.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6369
Calls to `CreateProcessW` where the current directory is a path that exceeds `MAX_PATH` can result in `Length` exceeding `MaximumLength`, causing corruption in `alloc_process_params` when `append_unicode_string` copies the string according to `Length`, but only allocates `MaximumLength` of storage.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6535
--
v2: propsys: Initially implement PropVariantToVariant.
propsys: Support converting clsid to string for PropVariant.
propsys/tests: Test converting clsid to string.
propsys/tests: Add tests for PropVariantToVariant.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6526
The MR adds implementations (+ a few tests) for the following methods in `bluetoothapis.h`:
* `BluetoothSdpEnumAttributes`
* `BluetoothSdpGetContainerElementData`
* `BluetoothSdpGetElementData`
* `BluetoothSdpGetAttributeValue`
--
v15: bluetoothapis/tests: Add tests for BluetoothSdpEnumAttributes and BluetoothSdpGetAttributeValue.
bluetoothapis: Implement BluetoothSdpGetAttributeValue.
bluetoothapis/tests: Add unit tests for BluetoothSdpGetContainerElementData and BluetoothSdpGetElementData.
bluetoothapis: Implement BluetoothSdpEnumAttributes.
bluetoothapis: Implement BluetoothSdpGetContainerElementData.
bluetoothapis: Implement BluetoothSdpGetElementData.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6402
--
v5: mf: Shutdown all used topologies by media session.
mf/tests: Test how session releases not queued topologies.
mf: Only shutdown current topology when session is shutdown.
mf/tests: Test for topology reuse after session ends.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4443
This is part XXV of command engine rewrite.
This MR tackles three items:
- fixing some corner cases in variable expansion. Note, there's
still todo_wine in the non regression tests, but I don't feel
like fixing them for now (like an un-paired ! within double quotes
when delayed expansion is enabled - which behaves differently
then not within double quotes)
- breaking out of FOR loops with 'EXIT /B'. I'm damn sure I
dealt with this earlier on, it likely fails into the cracks
during some rebase.
- somme builtin commands behave differently when run from .BAT
or .CMD files.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6537
On Wed Sep 18 13:32:52 2024 +0000, Rémi Bernon wrote:
> Maybe, but I don't think it matters so much here. It's just reading
> compressed samples here, so copy size stays relatively small.
Do you intend on also enabling protonvideoconvert through winedmo? If so, wouldn't we have to do it in the demuxer (doesn't mp4 demuxer also require steam://unlockh264), at which point this might be relavant.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6517#note_82731
Virtualizing the swapchain is the better and more general plan and something we'd need to do for Wayland cross-process rendering anyway. Implementing composition on the win32u level will take care of it in a generic way, though we probably want to keep the direct rendering path as a default and best option.
This current approach is a best effort with what we have right now, it unlocks various applications which required VK child window rendering, and is cheap enough and doesn't introduce much problems as it simply does the same as GL.
Both GL and VK would then be addressed the same way for composition, through dma-buf export (or the equivalent macOS primitive) and shared resources.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6467#note_82704
> > VK_KHR_present_wait isn't equivalent, because it signals the event on first pixel out, which is too soon.
>
> That's unfortunate, I was thinking VK_KHR_present_wait will solve these problems (which are real WRT games too in some cases) until we have a "direct composition" implementation. Are you sure that this is supposed and actual behaviour?
It's the spec behaviour, actually. I didn't test whether it works in practice, and it's not unlikely that it does work in practice.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6467#note_82702
> VK_KHR_present_wait isn't equivalent, because it signals the event on first pixel out, which is too soon.
That's unfortunate, I was thinking VK_KHR_present_wait will solve these problems (which are real WRT games too in some cases) until we have a "direct composition" implementation. Are you sure that this is supposed and actual behaviour?
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6467#note_82701