Henri Verbeet pushed to branch master at wine / vkd3d
Commits: 6eda7750 by Francisco Casas at 2024-11-05T19:20:21+01:00 vkd3d-shader/hlsl: Run sm4_generate_vsir_block() recursively.
This allows us to remove the HLSL IR version of an instruction when the vsir version is properly implemented.
- - - - - b4608e99 by Francisco Casas at 2024-11-05T19:20:21+01:00 vkd3d-shader/tpf: Remove HLSL IR ABS handling.
- - - - - ab60f4e0 by Francisco Casas at 2024-11-05T19:35:52+01:00 vkd3d-shader/hlsl: Store simple SM4 expressions in the vsir program.
- - - - - 950c3817 by Francisco Casas at 2024-11-05T19:48:31+01:00 vkd3d-shader/hlsl: Store RASTERIZER_SAMPLE_COUNT in the vsir program.
Also, the profile check for GetRenderTargetSampleCount() is moved to parse time.
- - - - - 90a07ada by Francisco Casas at 2024-11-05T19:50:55+01:00 vkd3d-shader/tpf: Use SCALAR swizzle dimension for RASTERIZER registers.
While we currently output instructions like this:
sampleinfo_uint r0.x, rasterizer.xxxx
> SAMPLE_INFO (111) 0 0000100[len:4] 0000000000001[1] 00001101111[opcode:111] └─ 0 000[d3i:0] 000[d2i:0] 000[d1i:0] 01[idxs:1] 00000000[type:0] 0000[0] 0001[wmask:1] 00[swtype:0] 10[dim:2] └─ 00000000000000000000000000000000[0|0.0] └─ 0 000[d3i:0] 000[d2i:0] 000[d1i:0] 00[idxs:0] 00001110[type:14] 00000000[sw:0] 01[swtype:1] 10[dim:2]
FXC/d3dcompiler outputs instructions like this:
sampleinfo o0.x, rasterizer.x
> SAMPLE_INFO (111) 0 0000100[len:4] 0000000000000[0] 00001101111[opcode:111] └─ 0 000[d3i:0] 000[d2i:0] 000[d1i:0] 01[idxs:1] 00000010[type:2] 0000[0] 0001[wmask:1] 00[swtype:0] 10[dim:2] └─ 00000000000000000000000000000000[0|0.0] └─ 0 000[d3i:0] 000[d2i:0] 000[d1i:0] 00[idxs:0] 00001110[type:14] 000000[0] 00[swcomp:0] 10[swtype:2] 10[dim:2]
Note the difference in swtype of the rasterizer src register.
- - - - -
3 changed files:
- libs/vkd3d-shader/hlsl.y - libs/vkd3d-shader/hlsl_codegen.c - libs/vkd3d-shader/tpf.c
View it on GitLab: https://gitlab.winehq.org/wine/vkd3d/-/compare/64c4a3a442eee2d27e1151b8ae7bb...