Henri Verbeet pushed to branch master at wine / vkd3d
Commits:
84a59fe4 by Giovanni Mascellani at 2025-02-19T16:22:04+01:00
tests: Enable tessellation shaders in the Vulkan shader runner.
- - - - -
88875010 by Giovanni Mascellani at 2025-02-19T17:01:17+01:00
tests: Test I/O index ranges not intersecting a signature element for a given register.
Since this test depend on the specific code generated by the
native d3dcompiler we add the possibility to specify a "raw"
shader using a hex format. When the shader assembler is finally
available they should be replaced with assembly code.
- - - - -
ec7bac7b by Giovanni Mascellani at 2025-02-19T17:01:54+01:00
vkd3d-shader/ir: Report errors in the I/O normaliser instead of asserting.
The assumptions the I/O normaliser makes on its input program are
rather intricated. In theory the VSIR validator checks should be
strong enough, but the validator isn't run by default anyway.
Whether the TPF parser validation is strong enough is not
completely clear to me, and considering that the I/O normaliser
could end up being used on different programs as well it's
probably better to revalidate locally just in case.
- - - - -
b5350f93 by Giovanni Mascellani at 2025-02-19T17:01:54+01:00
vkd3d-shader/ir: Use a structure to record range data in the I/O normaliser.
In order to make it able to have other fields.
- - - - -
4b84fb48 by Giovanni Mascellani at 2025-02-19T17:30:00+01:00
vkd3d-shader/ir: Handle index ranges that do not touch a signature element for each register.
A good part of the I/O normaliser job is to merge together signature
elements that are spanned by DCL_INDEX_RANGE instructions. The
current algorithm assumes that each index range touches exactly
one signature element for each index spanned by the range. The
assumption is used in shader_signature_merge() in the form of
expecting that, if the index range is N registers long, then,
once you find the first signature element of an index range, the
other elements that will have to be merged with it are exactly the
following N-1 according to the order given by
signature_element_register_compare() or
signature_element_mask_compare(), depending on the signature type.
This doesn't necessarily happen. For example, The Falconeer has a
few hull shaders in which this happens:
hs_fork_phase
dcl_hs_fork_phase_instance_count 13
dcl_input vForkInstanceId
dcl_output o4.z
dcl_output o5.z
dcl_output o6.z
dcl_output o7.z
dcl_output o12.z
dcl_output o13.z
dcl_output o14.z
dcl_output o15.z
dcl_output o16.z
dcl_output o17.z
dcl_output o18.z
dcl_output o19.z
dcl_output o20.z
dcl_temps 1
dcl_index_range o4.z 17
iadd r0.x, vForkInstanceId.x, l(4)
ult r0.y, vForkInstanceId.x, l(4)
movc r0.x, r0.y, vForkInstanceId.x, r0.x
mov o[r0.x + 4].z, l(0)
ret
Here the index range "skips" o8.z through o11.z, because those
registers only use mask .xy. The current algorithm fails on such
a shader.
Even depending on the signature element order doesn't look ideal.
I don't have a full counterexample for that, but it looks fragile,
especially given that the register allocation algorithm in FXC is
notoriously full of unexpected corner cases.
We solve both problems by slightly changing the architecture of
the normaliser: first we move computing the masks for the merge
signature element from signature_element_range_expand_mask(),
which is executed while merging signature, to
io_normaliser_add_index_range(), which is executed before merging
signatures. Then, while we are merging signatures, we can decide
for each single signature element whether it has to be retained
or not, and how it should be patched. The algorithm becomes
independent of the order, because each signature element can be
processed individually.
- - - - -
665c29f0 by Giovanni Mascellani at 2025-02-19T17:30:25+01:00
vkd3d-shader/tpf: Allow I/O index ranges to not intersect a signature element for a given register.
The current TPF validator enforces that for each register involved
in a DCL_INDEX_RANGE instruction there must be a signature element
for that register and the DCL_INDEX_RANGE write mask. This is an
excessively strong request, and causes some shaders from The Falconeer
to be invalidly rejected.
The excessively strong check was needed to avoid triggering a bug
in the I/O normaliser. Since that bug is now solved, the check
can be relaxed.
- - - - -
7 changed files:
- libs/vkd3d-shader/ir.c
- libs/vkd3d-shader/tpf.c
- tests/hlsl/tessellation.shader_test
- tests/shader_runner.c
- tests/shader_runner.h
- tests/shader_runner_d3d12.c
- tests/shader_runner_vulkan.c
View it on GitLab: https://gitlab.winehq.org/wine/vkd3d/-/compare/985d317e0e44a654eee2dd9f34da…
--
View it on GitLab: https://gitlab.winehq.org/wine/vkd3d/-/compare/985d317e0e44a654eee2dd9f34da…
You're receiving this email because of your account on gitlab.winehq.org.
Henri Verbeet pushed to branch master at wine / vkd3d
Commits:
872a96e5 by Henri Verbeet at 2025-02-19T10:44:18+01:00
vkd3d-shader/ir: Remove vForkInstanceId and vJoinInstanceId declarations in vsir_program_flatten_hull_shader_phases().
Commit 4717775abbf4384480fb2069c585c46225f35d5c removed the code turning
the corresponding DCL_INPUT instructions into NOPs, presumably because
vsir_program_remove_io_decls() now already removes them. That function
only removes the instructions though, not the declarations as such; we
now need to remove these from the "io_dcls" bitmap instead.
- - - - -
1 changed file:
- libs/vkd3d-shader/ir.c
View it on GitLab: https://gitlab.winehq.org/wine/vkd3d/-/commit/872a96e5995287ddc1e9cd7f50c9b…
--
View it on GitLab: https://gitlab.winehq.org/wine/vkd3d/-/commit/872a96e5995287ddc1e9cd7f50c9b…
You're receiving this email because of your account on gitlab.winehq.org.
Alistair Leslie-Hughes pushed to branch master at wine / wine-staging
Commits:
a4e8224b by Alistair Leslie-Hughes at 2025-02-19T09:43:59+11:00
Rebase against a46043015322bf8e6c78a74bd33300f3478767e3.
- - - - -
6 changed files:
- − patches/widl-SLTG_Typelib_Support/0021-oleaut32-Fix-logic-for-deciding-whether-type-descrip.patch
- − patches/widl-SLTG_Typelib_Support/0023-oleaut32-Implement-decoding-of-SLTG-help-strings.patch
- − patches/widl-SLTG_Typelib_Support/0024-oleaut32-Add-support-for-decoding-SLTG-function-help.patch
- − patches/widl-SLTG_Typelib_Support/0025-oleaut32-Add-support-for-decoding-SLTG-variable-help.patch
- − patches/widl-SLTG_Typelib_Support/definition
- staging/upstream-commit
View it on GitLab: https://gitlab.winehq.org/wine/wine-staging/-/commit/a4e8224bd8d58661887300…
--
View it on GitLab: https://gitlab.winehq.org/wine/wine-staging/-/commit/a4e8224bd8d58661887300…
You're receiving this email because of your account on gitlab.winehq.org.
Alexandre Julliard pushed to branch master at wine / wine
Commits:
a83edcd3 by Connor McAdams at 2025-02-18T21:05:38+01:00
quartz/tests: Add a test for resetting stream position after receiving EC_COMPLETE.
Signed-off-by: Connor McAdams <cmcadams(a)codeweavers.com>
- - - - -
4e8a0aca by Connor McAdams at 2025-02-18T21:05:38+01:00
quartz/filtergraph: Allow changing stream position after receiving EC_COMPLETE.
Signed-off-by: Connor McAdams <cmcadams(a)codeweavers.com>
- - - - -
2 changed files:
- dlls/quartz/filtergraph.c
- dlls/quartz/tests/filtergraph.c
View it on GitLab: https://gitlab.winehq.org/wine/wine/-/compare/70cbc02e26907c5f2d89d129e68c4…
--
View it on GitLab: https://gitlab.winehq.org/wine/wine/-/compare/70cbc02e26907c5f2d89d129e68c4…
You're receiving this email because of your account on gitlab.winehq.org.
Alexandre Julliard pushed to branch master at wine / wine
Commits:
fefd6e24 by Alexandre Julliard at 2025-02-18T17:30:23+01:00
makefiles: Link to the wine loader in the tools directory if it was built.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=57847
- - - - -
7620f21f by Alexandre Julliard at 2025-02-18T17:32:11+01:00
makefiles: Generate the wow64 symlinks from makedep.
- - - - -
9cd7ddaa by Alexandre Julliard at 2025-02-18T17:37:42+01:00
makefiles: Generate more of the re-configure rules from makedep.
- - - - -
70cbc02e by Alexandre Julliard at 2025-02-18T17:42:24+01:00
make_unicode: Update timezone data source to version 2025a.
- - - - -
5 changed files:
- configure
- configure.ac
- dlls/kernelbase/kernelbase.rgs
- tools/make_unicode
- tools/makedep.c
View it on GitLab: https://gitlab.winehq.org/wine/wine/-/compare/7165437caadcc559d6625f6fd42ad…
--
View it on GitLab: https://gitlab.winehq.org/wine/wine/-/compare/7165437caadcc559d6625f6fd42ad…
You're receiving this email because of your account on gitlab.winehq.org.