This MR replaces `vkd3d_shader_register.immconst_type` with `vkd3d_shader_register.dimension` which is intended for all register types and not just immconsts.
This dimension is parsed in tpf.c, and initialized according to the register type in d3dbc.c.
Having this field in vkd3d_shader_register allows us to avoid hardcoding special cases for the register dimensions when writing sm4 bytecode (e.g. for the sampler src register in gather instructions). Also, it allows for some fixes to d3d_asm.c, which are introduced in part 2 (https://gitlab.winehq.org/fcasas/vkd3d/-/commits/add_vkd3d_reg_dim).
--
v5: vkd3d-shader/d3dbc: Initialize register dimension for all register types.
vkd3d-shader/tpf: Parse register dimension for all register types.
vkd3d-shader: Turn vkd3d_shader_register.immconst_type into vkd3d_shader_register.dimension.
vkd3d-shader/tpf: Use vsir_register_init() in shader_sm1_parse_dst_param().
vkd3d-shader/tpf: Use vsir_register_init() in shader_sm1_parse_src_param().
vkd3d-shader/tpf: Use vsir_register_init() in shader_sm4_read_param().
vkd3d-shader/spirv: Use vsir_register_init() in spirv_compiler_emit_default_control_point_phase().
vkd3d-shader/spirv: Use vsir_register_init() in spirv_compiler_emit_resource_declaration().
vkd3d-shader/spirv: Use vsir_register_init() in spirv_compiler_emit_sampler_declaration().
vkd3d-shader/spirv: Use vsir_register_init() in spirv_compiler_emit_dcl_immediate_constant_buffer().
vkd3d-shader/spirv: Use vsir_register_init() in spirv_compiler_emit_cbv_declaration().
vkd3d-shader/spirv: Use vsir_register_init() in spirv_compiler_emit_dcl_indexable_temp().
vkd3d-shader/spirv: Use vsir_register_init() in spirv_compiler_emit_hull_shader_builtins().
vkd3d-shader/spirv: Use vsir_register_init() in spirv_compiler_get_invocation_id().
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/319
Which I intend to use to support (and rewrite) instrument / wave downloads.
--
v3: dmusic: Implement IDirectMusicPortDownload_GetBuffer.
dmusic: Implement IDirectMusicPortDownload_(Download|Unload).
dmusic: Implement IDirectMusicPortDownload_AllocateBuffer.
dmusic: Implement synth port IDirectMusicPortDownload_GetDLId.
dmusic: Rename IDirectMusicDownloadImpl method prefix to download.
dmusic: Move IDirectMusicDownloadImpl struct to where it is used.
dmusic: Simplify and cleanup IDirectMusicDownload constructor.
dmusic: Always return S_FALSE from DllCanUnloadNow.
dmusic/tests: Test IDirectMusicPort_(Download|Unload)Instrument.
dmusic/tests: Test IDirectMusic(Port)Download interfaces.
include: Fix incorrect IDirectMusicPortDownload_Unload macro.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3722
`posix_spawn()` should be more efficient on all systems, especially macOS. Running `make -j12 install` in an x86_64 emulated shell on a 12-core M2 Pro system, I saw a substantial time improvement (9 minutes vs 13) and much lower system overhead.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3734
This MR replaces `vkd3d_shader_register.immconst_type` with `vkd3d_shader_register.dimension` which is intended for all register types and not just immconsts.
This dimension is parsed in tpf.c, and initialized according to the register type in d3dbc.c.
Having this field in vkd3d_shader_register allows us to avoid hardcoding special cases for the register dimensions when writing sm4 bytecode (e.g. for the sampler src register in gather instructions). Also, it allows for some fixes to d3d_asm.c, which are introduced in part 2 (https://gitlab.winehq.org/fcasas/vkd3d/-/commits/add_vkd3d_reg_dim).
--
v4: vkd3d-shader/d3dbc: Initialize register dimension for all register types.
vkd3d-shader/tpf: Parse register dimension for all register types.
vkd3d-shader: Turn vkd3d_shader_register.immconst_type into vkd3d_shader_register.dimension.
vkd3d-shader/tpf: Use vsir_register_init() in shader_sm1_parse_dst_param().
vkd3d-shader/tpf: Use vsir_register_init() in shader_sm1_parse_src_param().
vkd3d-shader/tpf: Use vsir_register_init() in shader_sm4_read_param().
vkd3d-shader/spirv: Use vsir_register_init() to initialize registers.
vkd3d-shader/ir: Use vsir_register_init() in shader_register_normalise_flat_constants().
vkd3d-shader: Rename shader_register_init() to vsir_register_init().
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/319