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