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
The issue can be reproduced with LIBGL_ALWAYS_SOFTWARE=1 on Mesa. The
Gitlab machines are affected.
--
v2: d3d9/tests: Skip big test_query loops if the d3d implementation is too slow.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3680
Since 1.20, gst_element_request_pad_simple is available and
gst_element_get_request_pad is marked as deprecated.
--
v7: winegstreamer: Add MFMPEG4SinkClassFactory.
mf/tests: Use h264 and aac in mp4 media sink tests.
mf/tests: Add tests for h264 encoder.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3636
The "GdiInterop" is a sample application (source code is avaiable in [Github][source_code], relative guide in [MSDN][msdn_guide]) that demostracts how to display DirectWrite text on a GDI surface. After set dpi to 168 in `winecfg`, and run sample application with wine, the font size is normal, but the position of glyph is incorrect.
| Dpi: 96 | Dpi: 168 |
|:----------------:|:-----------------:|
| ![ss1][sc_96dpi] | ![ss2][sc_168dpi] |
There is the sample application after compile: [Release_x64.tar.gz](/uploads/c70e32824efcaa5d16ab39bbb4b86e30/Release_x64.tar.gz)
After change transform matrix that pass to `IDWriteFactory7_CreateGlyphRunAnalysis`, it can display glyph correctly.
[source_code]: https://github.com/microsoft/Windows-classic-samples/blob/main/Samples/Win7…
[msdn_guide]: https://learn.microsoft.com/en-us/windows/win32/directwrite/render-to-a-gdi…
[sc_96dpi]: /uploads/59cc343cfaa025f4ff4c32a84ab8cfeb/图片.png
[sc_168dpi]: /uploads/938be653362bb6ac58471b69ab66099a/图片.png
--
v2: dwrite: Return render bounds if text not intersect to BitmapRenderTarget
dwrite: Fix incorrect position of glyph when rendering with BitmapRenderTarget in HiDPI
https://gitlab.winehq.org/wine/wine/-/merge_requests/3718
This can then be used to run tests in an appx context, for instance for https://gitlab.winehq.org/wine/wine/-/merge_requests/3548
--
v3: windows.applicationmodel/tests: Test executing a WinRT package application.
windows.applicationmodel/tests: Test IPackageManager_RegisterPackageAsync.
makedep: Support generating .exe TESTDLL resources.
makedep: Use #pragma makedep testdll for TESTDLL resources.
windows.applicationmodel/tests: Add some IPackageManager tests.
windows.applicationmodel: Add stub DLL.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3643
SPIR-V says this is undefined behaviour, but Direct3D actually specifies that it
should clamp. Most drivers do clamp, but llvmpipe does not. Hence this fixes a
couple of tests with llvmpipe.
This does of course add overhead to the ftou instruction, but I cannot imagine
that it is a common instruction to execute. This also is not the first time we
perform such checks; cf. udiv.
--
v2: vkd3d-shader/spirv: Clamp ftoi upper bound to UINT_MAX.
vkd3d-shader/spirv: Clamp ftoi lower bound to -INT_MIN.
vkd3d-shader/spirv: Clamp ftou upper bound to UINT_MAX.
vkd3d-shader/spirv: Clamp ftou lower bound to zero.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/289
Since Yousician's last update, it was throwing an error when initialising audio output. Unfortunately I don't have access to the old version, but they seem to have dropped win<10 support, and are using only IAudioClient3_InitializeSharedAudioStream. They also use IDeviceTopology to get the type of the first output connector.
This is the bare minimum I needed to get it working.
--
v10: mmdevapi: add stub for IDeviceTopology
mmdevapi/tests: add test for IDeviceTopology
mmdevapi: implement IAudioClient3_InitializeSharedAudioStream
mmdevapi/tests: add test for AudioClient3_InitializeSharedAudioStream
https://gitlab.winehq.org/wine/wine/-/merge_requests/3554
--
v2: ntdll/tests: Adjust test_raiseexception_regs() for Win11 results.
ntdll/tests: Adjust test_extended_context() for Win11 results.
ntdll/tests: Adjust test_nested_exception() for Win11 results.
include: Define up to date exception flags.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3726