--
v2: vkd3d-shader/hlsl: Get rid of the "intrinsic" field of struct hlsl_ir_function.
vkd3d-shader/hlsl: Forbid returning void expressions from void functions.
vkd3d-shader/hlsl: Generate IR for user-defined function calls.
vkd3d-shader/hlsl: Avoid assuming that expressions have at least one argument.
tests: Test specifying a UAV address as an in/out parameter to a function.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/47
This functions should also work with document fragments, in wine they only return NULL.
--
v5: mshtml: Implement HTMLDocument_get_body for document fragments.
mshtml: Implement get_all for document fragments.
mshtml/tests: Test for get_all and get_body in document fragments.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1918
This patch series includes an implementation of the long-pending `transpose` intrinsic and the `smoothstep` intrinsic.
While implementing `smoothstep` I realized that some intrinsics have different rules for the allowed data types than expressions:
- Vectors and matrices at the same time are not allowed, regardless of their dimensions. Even if they have the same number of components.
- Any combination of matrices is always allowed, even those when no matrix fits inside another, e.g.:
`float2x3` is compatible with `float3x2`, resulting in `float2x2`.
The common data type is the min on each dimension.
This is the case for `max`, `pow`, `ldexp`, `clamp` and `smoothstep`; which suggest that it is the case for all intrinsics where the operation is applied element-wise. So this was corrected.
A minor fix in `pow`'s type conversion is also included.
--
v4: vkd3d-shader/hlsl: Use add_unary_arithmetic_expr() in intrinsic_pow().
vkd3d-shader/hlsl: Introduce elementwise_intrinsic_float_convert_args().
vkd3d-shader/hlsl: Convert elementwise intrinsics args to the proper common type.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/53
First part of v2 of !38, trying to follow the wide feedback provided.
Following patches in: https://gitlab.winehq.org/fcasas/vkd3d/-/tree/documentation
--
v3: vkd3d-shader/hlsl: Add field-level documentation to struct hlsl_src.
vkd3d-shader/hlsl: Add field-level documentation to struct hlsl_ir_node.
vkd3d-shader/hlsl: Add field-level documentation to struct hlsl_ctx.
vkd3d-shader/hlsl: Add field-level documentation to struct hlsl_ir_var.
vkd3d-shader/hlsl: Add field-level documentation to struct hlsl_struct_field.
vkd3d-shader/hlsl: Add field-level documentation to struct hlsl_type.
vkd3d-shader/hlsl: Rename hlsl_struct_field.modifiers to "storage_modifiers".
vkd3d-shader/hlsl: Rename hlsl_ir_var.modifiers to "storage_modifiers".
vkd3d-shader/hlsl: Rename HLSL_STORAGE_VOLATILE to HLSL_MODIFIER_VOLATILE.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/50