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