Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com>
--
v2: mfreadwrite/writer: Create output stream if it wasn't provided.
mfreadwrite/writer: Create archive sink automatically when writer is created from url/bytestream.
mf: Add archive sink creation exported functions.
https://gitlab.winehq.org/wine/wine/-/merge_requests/629
--
v3: mf: Actually implement SESSION_CMD_END internal command.
mf: Use session_submit_command to put SESSION_CMD_END ahead of the queue.
mf: Keep pending session command out of the queued commands list.
mf: Use a dedicated session callback interface for sample requests.
https://gitlab.winehq.org/wine/wine/-/merge_requests/607
Some transforms, such as the EVR mixer do not implement GetInputAvailableType
and may not have any current media type set, though they would accept upstream
media type right away.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/608
On Wed Aug 10 19:57:25 2022 +0000, Davide Beatrici wrote:
> > If you're adding parameters to existing unixcalls you should at least
> zero-init them in the caller.
> I planned to do that when achieving a single `mmdevdrv.c`, but to avoid
> confusion I'll do it in this MR instead.
> > Also, this MR is getting rather long. I'd suggest just pushing the
> first five or so commits, saving the rest for later MRs.
> We would end up with a single "topic" split between different MRs, though.
> I think it would make more sense to divide the commits like this:
> - 1-3 in this MR.
> - 4-12 in a 2nd MR.
> - 13 in a 3rd MR.
Maybe I should merge `wineoss` and `winecoreaudio`'s `unixlib.h` here as well.
That way we can then create a merge request for each driver, strictly focused on making it work with `mmdevdrv`'s header.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/600#note_6080
When first parsed to names in english and other non-native languages,
after parsing to names in native languages, this will result in second_name
not corresponding to names in english.
Signed-off-by: Jiajin Cui <cuijiajin(a)uniontech.com>
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/628
This is the very first step for merging the `mmdevdrv.c` files into a single one.
The commit strictly focuses on Linux drivers, `wine{oss,coreaudio}` will follow.
Huge thanks to @jacek and @huw for making this simple, as they took care of ELF/PE separation.
--
v6: mmdevapi: Integrate winepulse's additions in unixlib.h
winealsa: Move common unixlib.h content into mmdevapi
winealsa: Drop "alsa_" prefix in unixlib enum, apply it to the functions instead
https://gitlab.winehq.org/wine/wine/-/merge_requests/600
--
v2: mf: Actually implement SESSION_CMD_END internal command.
mf: Use session_submit_command to put SESSION_CMD_END ahead of the queue.
mf: Keep pending session command out of the queued commands list.
https://gitlab.winehq.org/wine/wine/-/merge_requests/607
This is the very first step for merging the `mmdevdrv.c` files into a single one.
The commit strictly focuses on Linux drivers, `wine{oss,coreaudio}` will follow.
Huge thanks to @jacek and @huw for making this simple, as they took care of ELF/PE separation.
--
v5: winepulse: Switch to mmdevapi's unixlib.h
winepulse: Adapt "get_prop_value_params" struct to mmdevapi's
winepulse: Adapt "is_started_params" struct to mmdevapi's
winepulse: Adapt "get_device_period_params" struct to mmdevapi's
winepulse: Adapt "get_mix_format_params" struct to mmdevapi's
winepulse: Adapt "get_capture_buffer_params" struct to mmdevapi's
https://gitlab.winehq.org/wine/wine/-/merge_requests/600
On Fri Aug 5 21:10:21 2022 +0000, Tobias G��rgens wrote:
> Do you have any additional hints/ do you see any issues with the current
> implementation (additional to what Nikolay says)?
All commits build now and tests run through fine.
What do I need to do next?
Is there still anything I should change?
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/564#note_6054
This is a new try of mciqtz32's video window patch.
Comparing to the previous !370, I added a lot of tests regarding the video window behavior.
Some portion of the previous patch are dropped to avoid complexity, I'll add that part later.
--
v5: mciqtz32: Show the default video window when switching from another one.
mciqtz32: Hide the default video window when switching to another one.
mciqtz32: Reset the video size when changing video destination.
mciqtz32: Fix MCI_DGV_WHERE_WINDOW behavior.
mciqtz32: Correct video window behavior by creating default window.
winmm/tests: Add tests for destination of video window.
winmm/tests: Add tests for dimensions of video window.
winmm/tests: Add tests for window style of video window.
mciqtz32: Don't hide video window when stopping.
winmm/tests: Add tests for visibility of video window.
https://gitlab.winehq.org/wine/wine/-/merge_requests/557
- Based on !463
- _RunAndWait and exception handling implemented in later commits
@piotr
--
v25: msvcr100: Implement _StructuredTaskCollection::_Schedule and _Schedule_loc.
https://gitlab.winehq.org/wine/wine/-/merge_requests/464
- Based on !463
- _RunAndWait and exception handling implemented in later commits
@piotr
--
v24: msvcr100: Implement _StructuredTaskCollection::_Schedule and _Schedule_loc.
msvcr100: Add reference counting to thread contexts.
msvcr100: Factor out the mapping of a context to a scheduler.
msvcr100: Factor out EXCEPTION_RECORD to exception_ptr conversion.
msvcr100: Move exception_ptr functions to a separate file.
https://gitlab.winehq.org/wine/wine/-/merge_requests/464
This changes unixlib code to set last error in both TEBs on wow64. We could potentially try to sync them in wow64win thunks instead, but changing error setters seems more reliable.
--
v2: wow64win: Set last error in 32-bit TEB in wow64 thunks.
winemac: Use RtlSetLastWin32Error.
wineandroid: Use RtlSetLastWin32Error.
winex11: Use RtlSetLastWin32Error.
win32u: Use RtlSetLastWin32Error.
include: Use RtlSetLastWin32Error in server.h.
ntdll: Introduce RtlSetLastWin32Error for unixlibs that additionally sets 32-bit error on wow64.
https://gitlab.winehq.org/wine/wine/-/merge_requests/624
This changes unixlib code to set last error in both TEBs on wow64. We could potentially try to sync them in wow64win thunks instead, but changing error setters seems more reliable.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/624
Otherwise 'mbstowcs_s' will make a wrong path if the parameter 'name' contains
non-ASCII words in non-ASCII environments.
Signed-off-by: YeshunYe <yeyeshun(a)uniontech.com>
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/606
In preparation for nulldrv display modes support.
--
v6: win32u: Move display placement logic out of graphics drivers.
win32u: Move full display mode lookup out of graphics drivers.
win32u: Use current mode position if desired mode doesn't specify it.
win32u: Always copy devmode in validate_display_settings.
win32u: Read registry or current mode when validation needs it.
https://gitlab.winehq.org/wine/wine/-/merge_requests/576
On Tue Aug 9 15:07:54 2022 +0000, Brendan Shanks wrote:
> It would be nice if this was large-address-aware, likely based on the
> `SystemEmulationBasicInformation` `HighestUserAddress` the same way it's
> done in `wow64`.
Yes, good idea. I copied it from audio drivers, we will probably want to change it widespread.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/611#note_6015
--
v2: d3d9/tests: Add more tests for dirty rect handling.
d3d8/tests: Add more tests for dirty rect handling.
d3d8/tests: Read back directly from the specified surface if possible.
d3d9/tests: Expand tests for valid pools in UpdateTexture().
d3d8/tests: Expand tests for valid pools in UpdateTexture().
wined3d: Use wined3d_array_reserve() in wined3d_adapter_create_output().
https://gitlab.winehq.org/wine/wine/-/merge_requests/581
Some games (such as Digimon Survive) create temporary video files and
will hang if deleting them fails. Open the files with FILE_SHARE_DELETE,
which will allow this deletion to go ahead even if the FileSource hasn't
yet been closed.
Note that many windows codec packs do themselves open files without
FILE_SHARE_DELETE, so a similar hang can be observed in some windows
configurations.
I haven't checked that this is the file share mode used on windows
(alas, I don't have a windows machine available), so I haven't removed
the FIXME comment. Equally, I also updated the CreateFileW() call
in get_media_type(), but that _may_ be unnecessary.
I've added a basic test, but haven't had the opportunity to run it on Windows yet.
Otherwise, this patch is also available against Proton Experimental here: https://github.com/ValveSoftware/wine/pull/156
It also has been confirmed to fix the issue with Digimon Survive independently: https://github.com/ValveSoftware/Proton/issues/6041#issuecomment-1200486581
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/614
Fixes black screen in Sweet Transit game.
The game depends on ID3D11Device_CreateInputLayout to fail properly when mandatory VS input is not filled. It is coming from MonoGame engine available as source, here is the place of interest: https://github.com/MonoGame/MonoGame/blob/158c0154ac18ed6102c65e24665c6a080…
As far as my testing goes:
- missing mandatory inputs cause failure, extra elements in input layout are fine;
- shader type is not checked;
- what is mandatory is unrelated to sysval semantics value in dxbc, it probably just checks for sv_ special names with position being a special case which is still mandatory;
- there are more validation checks which are not implemented in this patch, e. g., for InputSlotClass validity. There is a single todo_wine test for that, but it doesn't cover all the specifics.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/618
mf_media_type_from_wg_format() may return NULL.
Fix Airborne Kingdom crash at start because WG_AUDIO_FORMAT_UNKNOWN is passed to
mf_media_type_from_wg_format().
Signed-off-by: Zhiyi Zhang <zzhang(a)codeweavers.com>
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/616
This is the very first step for merging the `mmdevdrv.c` files into a single one.
The commit strictly focuses on Linux drivers, `wine{oss,coreaudio}` will follow.
Huge thanks to @jacek and @huw for making this simple, as they took care of ELF/PE separation.
--
v4: winepulse: Switch to mmdevapi's unixlib.h
winepulse: Adapt "get_prop_value_params" struct to mmdevapi's
winepulse: Adapt "is_started_params" struct to mmdevapi's
winepulse: Adapt "get_device_period_params" struct to mmdevapi's
winepulse: Adapt "get_mix_format_params" struct to mmdevapi's
winepulse: Adapt "get_capture_buffer_params" struct to mmdevapi's
winepulse: Adapt "release_render_buffer_params" struct to mmdevapi's
winepulse: Adapt "release_stream_params" struct to mmdevapi's
winepulse: Adapt "create_stream_params" struct to mmdevapi's
winepulse: Adapt "endpoint" struct to mmdevapi's
mmdevapi: Integrate winepulse's additions in unixlib.h
winealsa: Move common unixlib.h content into mmdevapi
winealsa: Drop "alsa_" prefix in unixlib enum, apply it to the functions instead
https://gitlab.winehq.org/wine/wine/-/merge_requests/600
Replaces register offsets with component index paths to remove backend-specific offset/size logic from the IR.
Also, working with components would allow for implicit size array initializers and properly handle objects which have register size 0.
In `vkd3d-shader/hlsl: Replace register offsets with index paths in load initializations.` the `transform_deref_paths_into_offsets` pass is introduced and moved forward in the following patches as other compilation passes are translated. The idea is to remove this pass after all the others are translated and then make each shader-model handle register offsets separately.
Patches for translating copy propagation, among other things, are prepared for a following merge request.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/5
NtQueryInformationProcess(ProcessImageFileNameWin32) may return an
empty string in some circumstances, which leads
QueryFullProcessImageNameW to crash if called with flags including
PROCESS_NAME_NATIVE, as that path assumed the image name had a length
of at least 2.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/621
This is the very first step for merging the `mmdevdrv.c` files into a single one.
The commit strictly focuses on Linux drivers, `wine{oss,coreaudio}` will follow.
Huge thanks to @jacek and @huw for making this simple, as they took care of ELF/PE separation.
--
v3: winepulse: Switch to mmdevapi's unixlib.h
mmdevapi: Integrate winepulse's additions in unixlib.h
mmdevapi: Drop "alsa_" prefix in unixlib.h
winealsa: Move common unixlib.h content into mmdevapi
https://gitlab.winehq.org/wine/wine/-/merge_requests/600
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52128
Signed-off-by: Robert Wilhelm <robert.wilhelm(a)gmx.net>
--
v11: scrrun: Return path not found error if no folders were moved in MoveFolder().
scrrun: return path not found error if source ends with path separator in MoveFolder().
scrrun: Move directories only in MoveFolder().
scrrun: Support wildcards in MoveFolder().
scrrun: Move source dir into destination dir if destination ends with separator in MoveFolder().
https://gitlab.winehq.org/wine/wine/-/merge_requests/391
Once a event is signaled, the corresponding struct vkd3d_waiting_event
entry is considered dead and could be overwritten, so it's not safe to
keep a pointer to it in d3d12_fence_SetEventOnCompletion(). Instead,
keep the latch bit in d3d12_fence_SetEventOnCompletion() and put a
pointer to it in struct vkd3d_waiting_event.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/6
This currently fails if the shader loads from the UAV, because it causes
vkd3d-shader to specify the R32f format instead of Unknown.
Signed-off-by: Conor McCarthy <cmccarthy(a)codeweavers.com>
--
v2: vkd3d: Send typed UAV unknown format read support info to vkd3d-shader.
vkd3d: Check specific formats for typed UAV load feature support.
vkd3d-shader: Introduce a compile option to use Unknown format for typed UAV loads.
tests: Test float4 UAV buffer load/store.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/2
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52128
Signed-off-by: Robert Wilhelm <robert.wilhelm(a)gmx.net>
--
v10: scrrun: Return path not found error if no folders were moved in MoveFolder().
scrrun: return path not found error if source ends with path separator in MoveFolder().
scrrun: Move directories only in MoveFolder().
scrrun: Support wildcards in MoveFolder().
https://gitlab.winehq.org/wine/wine/-/merge_requests/391
In preparation for nulldrv display modes support.
--
v5: win32u: Move display placement logic out of graphics drivers.
win32u: Move full display mode lookup out of graphics drivers.
win32u: Use current mode position if desired mode doesn't specify it.
win32u: Always copy devmode in validate_display_settings.
win32u: Read registry or current mode when validation needs it.
https://gitlab.winehq.org/wine/wine/-/merge_requests/576
This is a new try of mciqtz32's video window patch.
Comparing to the previous !370, I added a lot of tests regarding the video window behavior.
Some portion of the previous patch are dropped to avoid complexity, I'll add that part later.
--
v4: mciqtz32: Show the default video window when switching from another one.
mciqtz32: Hide the default video window when switching to another one.
mciqtz32: Reset the video size when changing video destination.
mciqtz32: Fix MCI_DGV_WHERE_WINDOW behavior.
mciqtz32: Correct video window behavior by creating default window.
winmm/tests: Add tests for destination of video window.
winmm/tests: Add tests for dimensions of video window.
winmm/tests: Add tests for window style of video window.
mciqtz32: Don't hide video window when stopping.
winmm/tests: Add tests for visibility of video window.
https://gitlab.winehq.org/wine/wine/-/merge_requests/557
Patch 1.
The tests on Windows show that when the timer callback is queued behind the clock time it is queued and executed quite soon with 0-15ms delay which corresponds to default timer granularity. The timeout tolerance in the test is quite bigger to avoid a flaky test. Wine currently may execute the callback right away or delay it indefinitely depending on the time difference and current system time.
Patch 2.
It turns out when the session is paused and then restarted and all the samples were delivered to sample grabber before restart, nothing is going to request the samples again when the session is restarted. I am attaching a test in a patch which hopefully confirms how that should work. I am not including that in the patches as the test involves delays (to make sure all the async events settle at certain points) and inherently flaky. Also, _
IMFStreamSink_GetEvent(stream, ...) in the test crashes on Win7 for some unknown reason.
[0001-mf-tests-Add-test-for-pausing-and-restarting-sample-.patch](/uploads/58c1738d48b3392e7ec430a0757210d0/0001-mf-tests-Add-test-for-pausing-and-restarting-sample-.patch)
--
v2: mf/samplegrabber: Request a sample when going from paused to running state.
mf: Handle timer time behind clock time in present_clock_schedule_timer().
https://gitlab.winehq.org/wine/wine/-/merge_requests/574
This currently fails if the shader loads from the UAV, because it causes
vkd3d-shader to specify the R32f format instead of Unknown.
Signed-off-by: Conor McCarthy <cmccarthy(a)codeweavers.com>
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/2
Pthread mandates that a mutex must be unlocker before being destroyed.
In pratice I doubt this make a difference on any platform (certainly
it doesn't on Linux), but let's comply to standards.
--
v2: vkd3d: Unlock fence worker mutex before exiting.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/3
Split from https://gitlab.winehq.org/wine/wine/-/merge_requests/576 which is getting long and needs some fixing.
--
v4: winemac.drv: Avoid setting DM_POSITION on enumerated modes.
wineandroid.drv: Add missing DM_DISPLAYORIENTATION | DM_POSITION flags.
win32u: Split EnumDisplaySettingsEx into CurrentDisplaySettings entry.
wineandroid.drv: Return early on EnumDisplaySettingsEx error.
winemac.drv: Split best display mode lookup to a separate helper.
win32u: Ignore DM_POSITION mode fields for available modes.
https://gitlab.winehq.org/wine/wine/-/merge_requests/589
This is the very first step for merging the `mmdevdrv.c` files into a single one.
The commit strictly focuses on Linux drivers, `wine{oss,coreaudio}` will follow.
Huge thanks to @jacek and @huw for making this simple, as they took care of ELF/PE separation.
--
v2: wine{alsa,pulse}: Merge unixlib.h, move it into mmdevapi
https://gitlab.winehq.org/wine/wine/-/merge_requests/600