vkd3d-shader/hlsl: Support SM3 loops without user-provided limiters.

As explained in !1856 (merged), there are basically two types of SM3 loops:

(A) Loops whose number of iterations is limited by a single int uniform (CONSTINT register).

(B) Loops that are not limited by a single uniform, for which the compiler defines its own integer constant using defi.

This MR takes care of detecting on the HLSL side which uniform variable is the loop's limiter (if any) and adding support for case (B), where the iteration count is not provided by the user and thus, there is no limiter.

Edited by Francisco Casas

Merge request reports

Loading