On Wed Aug 23 02:47:48 2023 +0000, Zhiyi Zhang wrote:
> Even with a custom source with MFMEDIASOURCE_CAN_PAUSE reported. Still,
> no MESessionStopped events are sent. I also tested with the media source
> created from IMFSourceResolver::CreateObjectFromByteStream() with
> test.mp4 and got the same result. So it seems to be that is merely how
> IMFMediaSession calls IMFMediaSource. Stops the source first and then
> start it. But with a single IMFMediaSource::Start() achieving the same
> result. Do we really need to stop the sources first when performing a seek?
Stopping sources first does eliminate the need to add an OBJ_STATE_SEEKING state though. I decided to do it.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3572#note_43132
Even though the uninitialized values shouldn't be used in the output
binary program, they still show up in it, and affect the checksum, so
we better make them zeroes.
This error was reported by valgrind:
```
libtool --mode=execute valgrind --track-origins=yes vkd3d-build/tests/shader_runner vkd3d/tests/hlsl/static-initializer.shader_test
```
```
==46180== Conditional jump or move depends on uninitialised value(s)
==46180== at 0x48D98C7: parse_dxbc.isra.0 (dxbc.c:182)
==46180== by 0x48DA044: vkd3d_shader_parse_dxbc (dxbc.c:308)
==46180== by 0x488D1B6: vkd3d_shader_parse_dxbc_source_type (vkd3d_shader_utils.h:37)
==46180== by 0x488D1B6: create_shader_stage.isra.0 (state.c:1988)
==46180== by 0x48926B6: d3d12_pipeline_state_init_graphics (state.c:3084)
==46180== by 0x4893A96: d3d12_pipeline_state_create_graphics (state.c:3280)
==46180== by 0x4878498: d3d12_device_CreateGraphicsPipelineState (device.c:2619)
==46180== by 0x1FFEFFECC7: ???
==46180== by 0xE8: ???
==46180== by 0x47: ???
==46180== by 0x61: ???
==46180== by 0x660066000000023: ???
==46180== by 0x661066100000044: ???
==46180== Uninitialised value was created by a stack allocation
==46180== at 0x48F3FF0: hlsl_fold_constant_swizzles (hlsl_constant_ops.c:1010)
```
Thank you valgrind! :smile:
--
v3: vkd3d-shader/tpf: Avoid reading constant value components beyond type's width.
vkd3d-shader/hlsl: Initialize unused constant components to zero.
vkd3d-shader/hlsl: Initialize all constant values in hlsl_fold_constant_swizzles().
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/308
On Mon Aug 21 10:13:21 2023 +0000, Nikolay Sivov wrote:
> Maybe sources do not always have MFMEDIASOURCE_CAN_PAUSE.
Even with a custom source with MFMEDIASOURCE_CAN_PAUSE reported. Still, no MESessionStopped events are sent. I also tested with the media source created from IMFSourceResolver::CreateObjectFromByteStream() with test.mp4 and got the same result. So it seems to be that is merely how IMFMediaSession calls IMFMediaSource. Stops the source first and then start it. But with a single IMFMediaSource::Start() achieving the same result. Do we really need to stop the sources first when performing a seek?
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3572#note_43129
--
v2: gdiplus: Fix GdipCreateBitmapFromICON return status with mask-only icon.
gdiplus/tests: Add test for mask-only icon with GdipCreateBitmapFromHICON.
gdiplus/tests: Add test for cursor with GdipCreateBitmapFromHICON.
gdiplus/tests: Create helper function for testing image attributes.
gdiplus/tests: Simplify ICONINFO initialization.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3621
On Tue Aug 22 20:24:18 2023 +0000, Esme Povirk wrote:
> It doesn't matter what happens on Windows when Microsoft Sans Serif is
> missing, because current Windows will always have Microsoft Sans Serif available.
That Windows always has it available (under normal circumstances) is irrelevant to my point. It is very useful in that either result can remove one branch of investigation, as I already unpacked.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3611#note_43094
On Tue Aug 22 20:24:18 2023 +0000, Jeffrey Smith wrote:
> That is good to know. Two more things that could help the investigation.
> 1. What happens on Windows if you force Arial (I assume by removing
> Microsoft Sans Serif)?
> * If also broken, it indicates that the game just does not work with Arial.
> * If it works, it indicates something in wine (besides font
> selection) is not behaving like native, and that finding how it differs
> is what remains.
> 2. What happens on Wine if Microsoft Sans Serif is available?
It doesn't matter what happens on Windows when Microsoft Sans Serif is missing, because current Windows will always have Microsoft Sans Serif available.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3611#note_43092
That is good to know. Two more things that could help the investigation.
1. What happens on Windows if you force Arial (I assume by removing Microsoft Sans Serif)?
* If also broken, it indicates that the game just does not work with Arial.
* If it works, it indicates something in wine (besides font selection) is not behaving like native, and that finding how it differs is what remains.
2. What happens on Wine if Microsoft Sans Serif is available?
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3611#note_43062
The issue is also reproducible with gdiplus native (it is also using Arial fonts):

--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3611#note_43060
This serie:
- adds a couple of tests to CreateProcess to cover ctrl-c blocking inheritance flag
and process group creation
- populates RTL_USER_PROCESS_PARAMETERS.ProcessGroupId
- separates new process group creation from ctrl-c inheritance flag
--
v3: kernelbase: Correctly handle new process group flag in CreateProcess.
kernel32/tests: Extend to new process group tests for CreateProcess.
kernelbase,ntdll,server: Separate console and new group flag (CreateProcess).
kernel32/tests: Add tests for group and console flags in CreateProcess.
kernel32/tests: Only access ProcessGroupId field when present.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3442
And discard irrelevant parts in select request. We currently store something in CTX_PENDING and ignore it later in select request if we're currently running in wow context.
--
v2: ntdll/tests: Add tests for setting context on unsuspended thread.
server: Store both contexts in pending context object.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3566
The patch set is ready now.
--
v7: winegstreamer: Implement finalize for media sink.
winestreamer: Implement wg_muxer_finalize.
winegstreamer: Introduce media_sink_write_stream.
winestreamer: Implement wg_muxer_{get,copy,free}_buffer.
winegstreamer: Implement ProcessSample for media sink.
winegstreamer: Implement wg_muxer_push_sample.
winegstreamer: Implement wg_muxer_add_stream.
winegstreamer: Create wg_muxer for media sink.
winegstreamer: Implement wg_muxer_create and wg_muxer_destroy.
winegstreamer: Add stubs for wg_muxer.
winegstreamer: Add enum wg_container_type.
mf/tests: Use h264 and aac in mp4 media sink tests.
winegstreamer: Add codec data to h264 format.
winegstreamer: Add request_pad wrapper.
This merge request has too many patches to be relayed via email.
Please visit the URL below to see the contents of the merge request.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3303
This finishes all objects other than those that need the task_magic, or those that need to be separated from them.
First patch fixes a small mistake from previous MR, sorry for the noise.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3631
Let The Good Life able to play its intro video, the game creates a source reader from a `http://localhost:6000/<random-hash>` URL. This should also probably work with other games playing streams over http(s).
This is a very basic implementation, using urlmon, and it will download the entire stream to a local temporary file before playback. An more optimized implementation would probably use WinHttp and range requests to partially download the requested stream segments, but this can be implemented in a future change.
--
v5: mf/scheme_handler: Implement http(s):// scheme handler using urlmon.
mf/scheme_handler: Split file scheme handler to scheme_handler.c.
mf/tests: Add some network scheme resolver tests.
include: Add MF_BYTESTREAM_EFFECTIVE_URL GUID declaration.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3439
This adds all of the information used by the spirv backend to declare descriptor
variables. Most of these are added to the internal
vkd3d_shader_scan_descriptor_info1 structure, but patch 5/5 adds a flag to
enum vkd3d_shader_descriptor_info_flag, which is public API.
The ultimate goal here is to declare SPIR-V descriptor variables from the
scanned descriptor information, thereby avoiding the need to synthesize DCL
instructions for frontends that don't have them (specifically sm1, but it may be
that sm6 would benefit from this as well).
That work is visible here:
https://gitlab.winehq.org/zfigura/vkd3d/-/tree/himavant5
--
This is a follow-up to the already-approved 295, which I am submitting now so
that we're not blocked on Alexandre's vacation.
--
v3: vkd3d-shader: Add a flag marking raw buffers to struct vkd3d_shader_descriptor_info.
vkd3d-shader: Add structure stride to struct vkd3d_shader_descriptor_info1.
vkd3d-shader: Add constant buffer size to struct vkd3d_shader_descriptor_info1.
vkd3d-shader: Add sample count to struct vkd3d_shader_descriptor_info1.
vkd3d-shader: Set descriptor flags in the caller to vkd3d_shader_scan_add_descriptor().
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/304
Nikolay Sivov (@nsivov) commented about dlls/mf/scheme_handler.c:
> IMFSourceResolver *resolver;
> struct list results;
> CRITICAL_SECTION cs;
> + resolve_cb resolve;
> };
I'd rather we call it closer to what it does, for example create_stream().
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3439#note_43001
Nikolay Sivov (@nsivov) commented about dlls/mf/scheme_handler.c:
> + if (FAILED(IMFByteStream_QueryInterface(*out, &IID_IMFAttributes, (void **)&attributes)))
> + WARN("Failed to get IMFAttributes interface\n");
> + else
> + {
> + if (FAILED(IMFAttributes_DeleteItem(attributes, &MF_BYTESTREAM_ORIGIN_NAME)))
> + WARN("Failed to delete MF_BYTESTREAM_ORIGIN_NAME attribute\n");
> + if (FAILED(IMFAttributes_SetString(attributes, &MF_BYTESTREAM_EFFECTIVE_URL, url)))
> + WARN("Failed to set MF_BYTESTREAM_EFFECTIVE_URL attribute\n");
> + if (FAILED(IMFAttributes_SetString(attributes, &MF_BYTESTREAM_CONTENT_TYPE, L"application/octet-stream")))
> + WARN("Failed to set MF_BYTESTREAM_CONTENT_TYPE attribute\n");
> + IMFAttributes_Release(attributes);
> + }
> + }
> +
> + IStream_Release(stream);
> + return hr;
Just release ulrmon stream right away, and return if mf stream creation failed. IMFAttributes are probably always available if you're going to use MFCreateMFByteStreamOnStream(). I don't see any value in these warnings.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3439#note_43002
Even though the uninitialized values shouldn't be used in the output
binary program, they still show up in it, and affect the checksum, so
we better make them zeroes.
This error was reported by valgrind:
```
libtool --mode=execute valgrind --track-origins=yes vkd3d-build/tests/shader_runner vkd3d/tests/hlsl/static-initializer.shader_test
```
```
==46180== Conditional jump or move depends on uninitialised value(s)
==46180== at 0x48D98C7: parse_dxbc.isra.0 (dxbc.c:182)
==46180== by 0x48DA044: vkd3d_shader_parse_dxbc (dxbc.c:308)
==46180== by 0x488D1B6: vkd3d_shader_parse_dxbc_source_type (vkd3d_shader_utils.h:37)
==46180== by 0x488D1B6: create_shader_stage.isra.0 (state.c:1988)
==46180== by 0x48926B6: d3d12_pipeline_state_init_graphics (state.c:3084)
==46180== by 0x4893A96: d3d12_pipeline_state_create_graphics (state.c:3280)
==46180== by 0x4878498: d3d12_device_CreateGraphicsPipelineState (device.c:2619)
==46180== by 0x1FFEFFECC7: ???
==46180== by 0xE8: ???
==46180== by 0x47: ???
==46180== by 0x61: ???
==46180== by 0x660066000000023: ???
==46180== by 0x661066100000044: ???
==46180== Uninitialised value was created by a stack allocation
==46180== at 0x48F3FF0: hlsl_fold_constant_swizzles (hlsl_constant_ops.c:1010)
```
Thank you valgrind! :smile:
--
v2: vkd3d-shader/hlsl: Initialize unused constant components to zero.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/308
--
v2: oleaut32: Use CRT allocation functions in typelib.c.
oleaut32: Use CRT allocation functions in olepicture.c.
oleaut32: Use CRT allocation functions in hash.c.
oleaut32: Use CRT allocation functions in connpt.c.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3617
On Tue Aug 22 07:15:18 2023 +0000, Zhiyi Zhang wrote:
> > mf.c:2077: Test failed: Unexpected hr 0xc00d36bb.
> > mf.c:7533: Test failed: MP4 media source is not supported, skipping tests.
> Somehow the tests fail on Gitlab CI. I will take a look.
This error is strange. It only happens when mf:mf tests are run with other tests. Running mf:mf tests alone doesn't have the failure. Also, test_sample_grabber_orientation() calls the same create_media_source() helper twice but it doesn't fail. CI log shows that it's from gst_element_set_state(parser->container, GST_STATE_PAUSED) returning GST_STATE_CHANGE_FAILURE in wg_parser_connect(). It seems like a GStreamer bug. Can I add a todo_wine in this case? It seems to be only happening on Gitlab CI.
```
0:00:02.725469945 [31m 9174[00m 0x65f047a0 [31;01mERROR [00m [00;31m WINE wg_parser.c:1895:wg_parser_create:[00m Created winegstreamer parser 0x66214ca0.
041c:fixme:quartz:wg_parser_connect parser 0x66214ca0, file_size 3983.
0:00:02.725789235 [31m 9174[00m 0x65f047a0 [31;01mERROR [00m [00;31m WINE wg_parser.c:1556:wg_parser_connect:[00m line 1556 parser->file_size 3983.
0:00:02.726152789 [31m 9174[00m 0x65f047a0 [33;01mWARN [00m [00;31m WINE wg_parser.c:1247:src_query_cb:[00m Unhandled query type caps.
0:00:02.726446036 [31m 9174[00m 0x661230e0 [33;01mWARN [00m [00;31m WINE wg_parser.c:1247:src_query_cb:[00m Unhandled query type uri.
0:00:02.726533018 [31m 9174[00m 0x661230e0 [33;01mWARN [00m [00;31m WINE wg_parser.c:1247:src_query_cb:[00m Unhandled query type uri.
0:00:02.736663616 [31m 9174[00m 0x66124590 [33;01mWARN [00m [00;31m WINE wg_parser.c:1247:src_query_cb:[00m Unhandled query type uri.
0:00:02.736717380 [31m 9174[00m 0x66124590 [33;01mWARN [00m [00m qtdemux qtdemux.c:3244:qtdemux_parse_trex:<qtdemux2>[00m failed to find fragment defaults for stream 1
0:00:02.739309608 [31m 9174[00m 0x66124590 [33;01mWARN [00m [00;31m WINE wg_parser.c:1247:src_query_cb:[00m Unhandled query type latency.
0:00:02.749635704 [31m 9174[00m 0x66124590 [33;01mWARN [00m [00m videodecoder gstvideodecoder.c:931:gst_video_decoder_setcaps:<avdec_h264-2>[00m Subclass refused caps
0:00:02.749656513 [31m 9174[00m 0x66124590 [33;01mWARN [00m [00m decodebin gstdecodebin2.c:2554:connect_pad:<decodebin2>[00m Couldn't set avdec_h264-2 to PAUSED
0:00:02.749884931 [31m 9174[00m 0x66124590 [33;01mWARN [00m [00m decodebin gstdecodebin2.c:4704:gst_decode_bin_expose:<decodebin2>[00m error: no suitable plugins found:
Couldn't set avdec_h264-2 to PAUSED
0:00:02.749990638 [31m 9174[00m 0x65f047a0 [31;01mERROR [00m [00;31m WINE wg_parser.c:1585:wg_parser_connect:[00m line 1585 Failed to play stream.
0:00:02.750823548 [31m 9174[00m 0x66124590 [33;01mWARN [00m [00m qtdemux qtdemux.c:6967:gst_qtdemux_loop:<qtdemux2>[00m error: Internal data stream error.
0:00:02.750834048 [31m 9174[00m 0x66124590 [33;01mWARN [00m [00m qtdemux qtdemux.c:6967:gst_qtdemux_loop:<qtdemux2>[00m error: streaming stopped, reason not-linked (-1)
0:00:02.751114014 [31m 9174[00m 0x65f047a0 [31;01mERROR [00m [00;31m WINE wg_parser.c:1603:wg_parser_connect:[00m line 1603.
0:00:02.751640594 [31m 9174[00m 0x65f047a0 [33;01mWARN [00m [00;31m WINE wg_parser.c:1039:pad_removed_cb:[00m No pin matching pad "sink" found.
0:00:02.751669492 [31m 9174[00m 0x65f047a0 [31;01mERROR [00m [00;31m WINE wg_parser.c:1720:wg_parser_connect:[00m line 1720.
041c:fixme:mfplat:media_source_create line 1669, hr 0x80004005.
041c:fixme:mfplat:media_source_create Failed to construct MFMediaSource, hr 0x80004005.
041c:fixme:mfplat:stream_handler_callback_Invoke Failed to create media source, hr 0x80004005
040c:fixme:mfplat:stream_handler_EndCreateObject line 1933, hr 0xc00d36bb.
040c:fixme:mfplat:resolver_handler_end_create line 5928, queued_result->hr 0xc00d36bb.
040c:fixme:mfplat:resolver_handler_end_create line 5937, queued_result->hr 0xc00d36bb.
040c:fixme:mfplat:resolver_handler_end_create line 5949, adding queued_result 003E87A0 to resolver->pending 003E2F80 inner_result 003E3118.
01d0:fixme:mfplat:resolver_end_create_object line 6497, iter->inner_result 003E3118 result 003E3118 to resolver->pending 003E2F80 iter->origin 0 origin 0.
01d0:fixme:mfplat:resolver_end_create_object line 6516, hr 0xc00d36bb.
01d0:fixme:mfplat:source_resolver_CreateObjectFromByteStream line 6669, hr 0xc00d36bb.
...
[0m[1;91mmf.c:2077: Test failed: Unexpected hr 0xc00d36bb.
[0m[1;91mmf.c:7565: Test failed: MP4 media source is not supported, skipping tests.
```
The full log is at https://gitlab.winehq.org/zhiyi/wine/-/jobs/26207/raw
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3572#note_42979
Note also, that 'MS Sans Serif' is a completely different font to 'Microsoft Sans Serif'. The former is a bitmap font that should always be present with Wine, the latter is a TrueType font which may not be.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3611#note_42962
The patch set is ready now.
--
v6: winegstreamer: Implement finalize for media sink.
winestreamer: Implement wg_muxer_finalize.
winegstreamer: Introduce media_sink_write_stream.
winestreamer: Implement wg_muxer_{get,copy,free}_buffer.
winegstreamer: Implement ProcessSample for media sink.
winegstreamer: Implement wg_muxer_push_sample.
winegstreamer: Implement wg_muxer_add_stream.
winegstreamer: Create wg_muxer for media sink.
winegstreamer: Implement wg_muxer_create and wg_muxer_destroy.
winegstreamer: Add stubs for wg_muxer.
This merge request has too many patches to be relayed via email.
Please visit the URL below to see the contents of the merge request.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3303
The patch set is ready now.
--
v5: winegstreamer: Implement finalize for media sink.
winestreamer: Implement wg_muxer_finalize.
winegstreamer: Introduce media_sink_write_stream.
winestreamer: Implement wg_muxer_{get,copy,free}_buffer.
winegstreamer: Implement ProcessSample for media sink.
winegstreamer: Implement wg_muxer_push_sample.
winegstreamer: Implement wg_muxer_add_stream.
This merge request has too many patches to be relayed via email.
Please visit the URL below to see the contents of the merge request.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3303
The patch set is ready now.
--
v4: winegstreamer: Implement finalize for media sink.
winestreamer: Implement wg_muxer_finalize.
winegstreamer: Introduce media_sink_write_stream.
winestreamer: Implement wg_muxer_{get,copy,free}_buffer.
winegstreamer: Implement ProcessSample for media sink.
winegstreamer: Implement wg_muxer_push_sample.
winegstreamer: Implement wg_muxer_add_stream.
winegstreamer: Create wg_muxer for media sink.
winegstreamer: Implement wg_muxer_create and wg_muxer_destroy.
winegstreamer: Add stubs for wg_muxer.
winegstreamer: Add enum wg_container_type.
mf/tests: Use h264 and aac in mp4 media sink tests.
winegstreamer: Add codec data to h264 format.
winegstreamer: Add push_event wrapper.
winegstreamer: Make append_element accpet NULL arguments.
winegstreamer: Make find_element accept NULL caps.
This merge request has too many patches to be relayed via email.
Please visit the URL below to see the contents of the merge request.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3303
MS Sans Serif is probably never missing on Windows, so native's behavior probably isn't important, but I don't like changing the behavior because it seems to improve a specific app without knowing why.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3611#note_42904
There are a few motivations for this:
* Identifiers beginning with vkd3d_shader_ look like external API. Changing the
prefix makes it clear that this is an internal API.
* vkd3d_shader is a very long prefix, which is annoying to type [not least
because "vkd3d" itself is an unwieldy name.] This is also a motivation for
shortening "instruction" to "instr".
* The "vkd3d_instruction" is increasingly growing from a simple parsed
representation of sm4 bytecode, to a proper IR in its own right—e.g. we are
using it for sm1 and sm6, are performing passes over it, and we have plans to
extend its scope further, e.g. to HLSL compilation. Give it a name that
reflects and clearly communicates what it is.
--
v2: vkd3d-shader/ir: Rename vkd3d_shader_instruction to ir_instr.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/264
Release for 1.8.1 containing targeted fixes for issues uncovered by Wine tests, in particular an assert which is currently preventing Wine tests from running with 1.8.
There were other "safe fix" patches I noticed after 1.8, but on the precedent of 1.7.1 I didn't pick any of them.
I've marked this as a draft since it's supposed to be a merge request into a vkd3d-1.8.x branch, but that doesn't currently exist, and it'll need Alexandre to create it as I understand. In the meantime I'm submitting the patches so they can be reviewed.
--
v3: Release 1.8.1.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/298
Currently, wine is unable to find and execute URIs (such as Link2EA://someurlhere), with this patch wine is able to fall back to using start.exe instead of terminating the process.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3615
--
v3: mshtml: Implement Cycle Collection for HTMLStyleSheetRule.
mshtml: Implement Cycle Collection for HTMLStyleSheetRulesCollection.
mshtml: Implement Cycle Collection for HTMLStyleSheetsCollection.
mshtml: Implement Cycle Collection for HTMLStyleSheet.
mshtml: Implement Cycle Collection for HTMLCSSStyleDeclaration.
mshtml: Implement Cycle Collection for HTMLAttributeCollection.
mshtml: Implement Cycle Collection for HTMLDOMAttribute.
mshtml: Implement Cycle Collection for objects that don't require traversal.
mshtml: Implement Cycle Collection for HTMLPerformanceNavigation.
mshtml: Implement Cycle Collection for HTMLPerformance.
mshtml: Use destructor in the vtbl for PerformanceTiming.
mshtml: Traverse variants using a helper function.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3597
--
v2: mshtml: Implement Cycle Collection for XMLHttpRequest.
mshtml: Implement Cycle Collection for HTMLPerformanceTiming.
mshtml: Move PerformanceTiming related fields to the window.
mshtml: Move HTMLPerformanceNavigation related fields to the window.
mshtml: Implement Cycle Collection for inner windows.
mshtml: Traverse variants using a helper function.
mshtml: Implement Cycle Collection for HTMLPerformanceNavigation.
mshtml: Implement Cycle Collection for HTMLPerformance.
mshtml: Get rid of NULL checks for the dispex vtbl.
mshtml: Use destructor in the vtbl for PerformanceTiming.
mshtml: Implement Cycle Collection for outer windows.
mshtml: Implement Cycle Collection for HTMLLocation.
mshtml: Separate the HTMLLocation from the outer window.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3597
--
v10: vkd3d-shader/tpf: Handle the swizzle type bitfield in dst param tokens.
vkd3d-shader/tpf: Handle the dimension bitfield in dst param tokens.
vkd3d-shader/tpf: Use the default vec4 swizzle if a src param contains a mask.
vkd3d-shader/tpf: Handle the dimension bitfield in src param tokens.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/225
I think we'd prefer not make a (even partial) revert on something that made wine's behavior closer to native. I think further investigation into the root cause is in order. I've provided my recommendation for a next step on the bug report.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3611#note_42869
This serie:
- adds a couple of tests to CreateProcess to cover ctrl-c blocking inheritance flag
and process group creation
- populates RTL_USER_PROCESS_PARAMETERS.ProcessGroupId
- separates new process group creation from ctrl-c inheritance flag
--
v2: kernelbase: Correctly handle new process group flag in CreateProcess.
kernel32/tests: Extend to new process group tests for CreateProcess.
kernelbase,ntdll,server: Separate console and new group flag (CreateProcess).
kernel32/tests: Add tests for group and console flags in CreateProcess.
kernel32/tests: Only access ProcessGroupId field when present.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3442
This adds all of the information used by the spirv backend to declare descriptor
variables. Most of these are added to the internal
vkd3d_shader_scan_descriptor_info1 structure, but patch 5/5 adds a flag to
enum vkd3d_shader_descriptor_info_flag, which is public API.
The ultimate goal here is to declare SPIR-V descriptor variables from the
scanned descriptor information, thereby avoiding the need to synthesize DCL
instructions for frontends that don't have them (specifically sm1, but it may be
that sm6 would benefit from this as well).
That work is visible here:
https://gitlab.winehq.org/zfigura/vkd3d/-/tree/himavant5
--
This is a follow-up to the already-approved 295, which I am submitting now so
that we're not blocked on Alexandre's vacation.
--
v2: vkd3d-shader: Add a flag marking raw buffers to struct vkd3d_shader_descriptor_info.
vkd3d-shader: Add structure stride to struct vkd3d_shader_descriptor_info1.
vkd3d-shader: Add constant buffer size to struct vkd3d_shader_descriptor_info1.
vkd3d-shader: Add sample count to struct vkd3d_shader_descriptor_info1.
vkd3d-shader: Set descriptor flags in the caller to vkd3d_shader_scan_add_descriptor().
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/304
It's no problem to send fewer of these per MR. I have included the complete set because all but the last introduce no functional changes, and upstreaming a smaller set would leave the changes in a half-done state with unnecessary buffering.
--
v3: vkd3d: Store command list commands in a buffer until executed.
vkd3d: Store WriteBufferImmediate() arguments in a buffer.
vkd3d: Store ExecuteIndirect() arguments in a buffer.
vkd3d: Store SetPredication() arguments in a buffer.
vkd3d: Store ResolveQueryData() arguments in a buffer.
vkd3d: Store EndQuery() arguments in a buffer.
vkd3d: Store BeginQuery() arguments in a buffer.
vkd3d: Store d3d12_command_list_clear_uav() arguments in a buffer.
vkd3d: Store ClearRenderTargetView() arguments in a buffer.
vkd3d: Store ClearDepthStencilView() arguments in a buffer.
vkd3d: Store OMSetRenderTargets() arguments in a buffer.
vkd3d: Store SOSetTargets() arguments in a buffer.
vkd3d: Store IASetVertexBuffers() arguments in a buffer.
vkd3d: Store IASetIndexBuffer() arguments in a buffer.
vkd3d: Store d3d12_command_list_set_root_descriptor() arguments in a buffer.
vkd3d: Store d3d12_command_list_set_root_cbv() arguments in a buffer.
vkd3d: Store d3d12_command_list_set_root_constants() arguments in a buffer.
vkd3d: Store d3d12_command_list_set_descriptor_table() arguments in a buffer.
vkd3d: Store d3d12_command_list_set_root_signature() arguments in a buffer.
vkd3d: Add an internal refcount to struct d3d12_root_signature.
vkd3d: Store ResourceBarrier() arguments in a buffer.
vkd3d: Store SetPipelineState() arguments in a buffer.
vkd3d: Store OMSetStencilRef() arguments in a buffer.
vkd3d: Store OMSetBlendFactor() arguments in a buffer.
vkd3d: Store RSSetScissorRects() arguments in a buffer.
vkd3d: Store RSSetViewports() arguments in a buffer.
vkd3d: Store IASetPrimitiveTopology() arguments in a buffer.
vkd3d: Store ResolveSubresource() arguments in a buffer.
vkd3d: Store CopyResource() arguments in a buffer.
vkd3d: Store CopyTextureRegion() arguments in a buffer.
vkd3d: Store CopyBufferRegion() arguments in a buffer.
vkd3d: Store Dispatch() arguments in a buffer.
vkd3d: Store DrawIndexedInstanced() arguments in a buffer.
vkd3d: Store DrawInstanced() arguments in a buffer.
This merge request has too many patches to be relayed via email.
Please visit the URL below to see the contents of the merge request.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/294
On Mon Aug 21 03:55:16 2023 +0000, Zhiyi Zhang wrote:
> > depending on a the player state it's either Stop->Start->Pause or Stop->Start
> We can do something similar for IMFMediaEngine::SetCurrentTime/Ex.
Maybe sources do not always have MFMEDIASOURCE_CAN_PAUSE.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3572#note_42837
On Sun Aug 20 15:44:13 2023 +0000, Nikolay Sivov wrote:
> It does. What I mean is when player (I tried mfplay one) is stopped,
> SetPosition() does not do anything, only stores specified position. When
> it's playing, source is stopped and the started at new position, when
> it's paused source is stopped, started at new position, and then paused.
I just tried it with a custom source on Windows 10. It always stops the source and then starts it, even when paused. However, no MESessionStopped events are sent. So this is merely how IMFMediaSession calls IMFMediaSource. The thing is do we really need to mimic this? Even if it can be done with a IMFMediaSource::Start()?
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3572#note_42808
Several items here were encoded conditionally even though they aren't marked as optional in the spec.
I put the tests into the same commit as the fix because the helper function used throughout the file, check_param, does not support marking only some of the tests inside of it as todo_wine.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3620
Signed-off-by: Torge Matthies <openglfreak(a)googlemail.com>
--
v4: loader: Add Default, Failed, and LastKnownGood values to HKLM\System\Select.
server: Update existing prefixes to use a symlink for HKLM\System\CurrentControlSet.
server: Create link from HKLM\System\CurrentControlSet to ControlSet001.
advapi32/tests: Add test for CurrentControlSet link.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3563