On Tue Feb 25 20:23:00 2025 +0000, Stefan Brüns wrote:
> @d1saster - Maybe you could extend the test so all 4 cases (2 fill
> modes, intersecting/non-intersecting) are tested (marking the
> ALTERNATE-intersecting one as known-fail).
This isn't about percentage or how common it is. It's not clear this is the right direction to me, for example groups could contain path geometries with different filling modes, or other groups.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6492#note_95936
The problem is that registry save is a very heavy operation (scheduled each 30sec in wineserver) during which server doesn't process any requests and the whole prefix is stalled for the duration of the operation.
For some reference, the process takes from 50-100ms here up to 1-1.5sec with default initial registry (after some registry modifications which trigger actual registry flush), depending on the filesystem type and state (as huge time may be spent in file close / rename). With the same registry after this patchset the server part (flush_key returning the whole registry data) is taking ~4-5mcs, measured from the client side so that already includes data transfer.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3124
On Tue Feb 25 20:20:12 2025 +0000, Stefan Brüns wrote:
> I think the current implementation is only incorrect when the fill mode
> is D2D1_FILL_MODE_ALTERNATE (0) (aka Even-Odd), but correct for
> D2D1_FILL_MODE_WINDING (1). More specifically, when the fill mode is
> ALTERNATE *and* there are intersections - for all of the other three
> cases (WINDING with and without intersections, ALTERNATE without), it is correct.
> According to my experience, even-odd fill mode is quite uncommon. Having
> an implementation which is correct 99% of the time in real-world usage,
> and leaving the remainder with an explicit, verbose FIXME is an
> definitive improvement. Today, the result is always incorrect.
@d1saster - Maybe you could extend the test so all 4 cases (2 fill modes, intersecting/non-intersecting) are tested (marking the ALTERNATE-intersecting one as known-fail).
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6492#note_95932
On Sat Sep 28 19:59:05 2024 +0000, Nikolay Sivov wrote:
> It wouldn't consider it sufficient, it's clear that there is more to it
> than copying data from individual geometries. So the question is the
> same - what needs to be done to make it work properly, once it's
> understood, we could implement it partially if it's too hard to do properly.
I think the current implementation is only incorrect when the fill mode is D2D1_FILL_MODE_ALTERNATE (0) (aka Even-Odd), but correct for D2D1_FILL_MODE_WINDING (1). More specifically, when the fill mode is ALTERNATE *and* there are intersections - for all of the other three cases (WINDING with and without intersections, ALTERNATE without), it is correct.
According to my experience, even-odd fill mode is quite uncommon. Having an implementation which is correct 99% of the time in real-world usage, and leaving the remainder with an explicit, verbose FIXME is an definitive improvement. Today, the result is always incorrect.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6492#note_95931
Instead of checking for monitor rect.
Similar purpose as https://gitlab.winehq.org/wine/wine/-/merge_requests/7362
--
v4: winewayland: Pass fullscreen flag to is_window_managed.
winex11: Pass fullscreen flag to is_window_managed.
winex11: Check managed window changes in WindowPosChanged.
winex11: Request managed/embedded in a new window_set_managed helper.
winex11: Initialize window managed flag in create_whole_window.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7370
--
v5: server: When renaming, only fstat the source once.
server: Handle hardlinks and casefolding when renaming the same file.
kernel32/tests: Test renaming a file into a hardlink of itself.
kernel32/tests: Use FindClose instead of CloseHandle when closing
https://gitlab.winehq.org/wine/wine/-/merge_requests/6855
> No, I think it is desirable. I'm going to move some more tests out, to build with either msxml2.idl or msxml6.idl, and then we'll see what's left.
What's the progress on this? Is this something that could be delegated to someone else invested in upstreaming wine-staging patches?
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/1060#note_95923
This fadds to the basic infrastructure needed for device inquiry/scanning.
Also, fixes radio properties being incorrectly updated.
--
v3: winebth.sys: Set the device class for remote devices from BlueZ's "Class" property.
winebth.sys: Use the "Trusted" property from BlueZ device objects to set BDIF_PERSONAL.
winebth.sys: Use the "Name" property of a BlueZ adapter for the local radio name.
winebth.sys: Don't iterate over the remaining radios once a local device has been removed.
winebth.sys: Initially set numOfDevices to 0 in IOCTL_BTH_GET_DEVICE_INFO.
winebth.sys: Use the correct DBus property name in IOCTL_WINEBTH_RADIO_SET_FLAG.
winebth.sys: Update properties for tracked remote devices on receiving PropertiesChanged for org.bluez.Device1 objects from BlueZ.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7424
--
v3: winebth.sys: Don't iterate over the remaining radios once a local device has been removed.
winebth.sys: Initially set numOfDevices to 0 in IOCTL_BTH_GET_DEVICE_INFO.
winebth.sys: Use the correct DBus property name in IOCTL_WINEBTH_RADIO_SET_FLAG.
winebth.sys: Only set the updated properties for local radios on BLUETOOTH_WATCHER_EVENT_TYPE_RADIO_PROPERTIES_CHANGED.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7406
Allows running more tests with nulldrv, including some D3D tests with vulkan renderer.
--
v3: win32u: Use VK_EXT_headless_surface for nulldrv surface.
win32u: Pass a vulkan_instance pointer to vulkan_surface_create.
winevulkan: Enable the VK_EXT_headless_surface extension.
winevulkan: Generate function pointers for required funcs.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7412
Current code requires entering a newline character in order to continue past DIR /P prompts. This change allows any key to be pressed instead.
Code to handle this was similar to existing WCMD_pause() so we leveraged that code for this purpose as well. Key to the fix was the removal of ENABLE_LINE_INPUT from the console flags, and ENABLE_PROCESSED_INPUT was added in order to preserve the ability to abort the operation via Ctrl-C.
--
v12: cmd: Allow any key to continue past DIR /P pauses.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7400
## Context
This is a problem discovered when running "Max: The Curse of Brotherhood" under proton. This game writes 4MB a piece into `wg_transform`, which contains about 4 seconds of compressed video. `wg_transform` calls `gst_pad_push` in `transform_ProcessOutput`, which takes \~300ms (i.e. 20 frames @ 60fps) to decode this buffer of video. So the end result is the game hitches every 4 seconds while playing cut scene videos.
Proton currently has a special case for this particular game, for which it breaks up the buffer into small chunks to avoid long blocks. This MR adopts that and applies it generally.
One concern raised by @redmcg is:
> The only issue I can think of is if there are any decoders which don't have a parser; then they might not know how to deal with an arbitrary 4096 byte buffer (the parser is generally responsible for taking arbitrary buffers and producing something the decoder can work with, for example: a full frame).
So this MR only enables this strategy when there is a parser element.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7288
I can see that you quoted MSDN page in the other MR, but it's not clear to me if it's relevant. It mentions some IIS APIs, not how HTTP headers look like. I guess adding a test to `test_http_connection()` that would send "-1" "Expires" header and querying `INTERNET_OPTION_CACHE_TIMESTAMPS` on the result would tell us how it works.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7323#note_95883
Allows running more tests with nulldrv, including some D3D tests with vulkan renderer.
--
v2: win32u: Use VK_EXT_headless_surface for nulldrv surface.
winevulkan: Enable VK_EXT_headless_surface extension.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7412