mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2024-11-21 16:46:41 -08:00
902ddee557
SM1 dp2add doesn't map src swizzles to the dst writemask, also it expects the last argument to have a replicate swizzle. Before this patch we were writing the operation as: ``` dp2add r0.x, r1.x, r0.x, r2.x ``` and now it is: ``` dp2add r0.x, r1.xyxx, r0.xyxx, r2.x ``` dp2add now has its own function, write_sm1_dp2add(), since it seems to be the only instruction with this structure. Ideally we would be using the default swizzles for the first two src arguments: ``` dp2add r0.x, r1, r0, r2.x ``` since, according to native's documentation, these are supported for all sm < 4. But this change -- along with following the convention of repeating the last component of the swizzle when fewer than 4 components are to be specified -- would require more global changes, probably in hlsl_swizzle_from_writemask() and hlsl_map_swizzle(). |
||
---|---|---|
.. | ||
checksum.c | ||
d3dbc.c | ||
dxbc.c | ||
glsl.c | ||
hlsl_codegen.c | ||
hlsl_constant_ops.c | ||
hlsl_sm1.c | ||
hlsl_sm4.c | ||
hlsl.c | ||
hlsl.h | ||
hlsl.l | ||
hlsl.y | ||
libvkd3d-shader.pc.in | ||
preproc.h | ||
preproc.l | ||
preproc.y | ||
sm4.h | ||
spirv.c | ||
trace.c | ||
vkd3d_shader_main.c | ||
vkd3d_shader_private.h | ||
vkd3d_shader.map |