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:
--
v6: vkd3d-shader/tpf: Avoid reading constant value components beyond type's width (Valgrind).
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/308
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.
--
v4: 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
--
v11: 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.
vkd3d-shader/spirv: Emit an error if a case value is not a constant.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/225
Currently shell32 only transfers the plain icon for `Shell_NotifyIcon` calls, ignoring balloon icons. This patch allows transferring both images to explorer.exe tray.
--
v5: shell32: add support for balloon icon copying
shell32: refactor notify_icon for multiple icons
https://gitlab.winehq.org/wine/wine/-/merge_requests/2875