Henri Verbeet pushed to branch master at wine / vkd3d
Commits: 64126a00 by Giovanni Mascellani at 2024-12-12T17:21:49+01:00 vkd3d-shader/ir: Give more meaningful names to I/O normalisation levels.
The previous names "not normalised" and "fully normalised" have meanings which are likely to change with time. OTOH including a description of the normalisation level in the enumerant seems excessive. Relating normalisation levels to shader model versions might be a reasonable compromise.
- - - - - dd0ed989 by Giovanni Mascellani at 2024-12-12T17:21:49+01:00 vkd3d-shader/d3dbc: Normalise I/O register write masks when not disassembling.
Sometimes SM1-3 shaders contain write masks that exceed the signature element masks. That happens because SM1-3 shaders do not have a concept of signature and signature masks, and OTOH aren't always able to express any given write mask.
In VSIR we don't want to deal with I/O register masks exceeding the corresponding signature element mask or usage mask, because, for instance, for higher shader models it can complicate dealing with DCL_INDEX_RANGE. In order to have uniform rules for all shader models we normalise masks coming from SM1-3 shaders.
We don't do that normalisation when disassembling, in order to preserve the expected output.
- - - - -
9 changed files:
- libs/vkd3d-shader/d3dbc.c - libs/vkd3d-shader/dxil.c - libs/vkd3d-shader/glsl.c - libs/vkd3d-shader/hlsl_codegen.c - libs/vkd3d-shader/ir.c - libs/vkd3d-shader/msl.c - libs/vkd3d-shader/spirv.c - libs/vkd3d-shader/tpf.c - libs/vkd3d-shader/vkd3d_shader_private.h
View it on GitLab: https://gitlab.winehq.org/wine/vkd3d/-/compare/09095403acc4afb78e46be63e701d...