Skip to content
Snippets Groups Projects

vkd3d-shader/hlsl: transpose(), smoothstep(), and properly convert args of element-wise intrinsics.

Merged Francisco Casas requested to merge fcasas/vkd3d:fixes into master

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.

Edited by Francisco Casas

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
Please register or sign in to reply
Loading