On 6/21/22 03:49, Giovanni Mascellani wrote:
Hi,
I tried to put together a quick change log for the HLSL compiler since vkd3d 1.3. I concentrated on user-visible changes (so mostly ignoring tests and internal refactoring), a possible side effect of which is that my contributions are somehow more evident. I don't mean to belittle the work of who did more plumbing job.
Support integer arithmetic, bitwise and shift operations.
Fold constant operations for a number of operators.
Support matrix and vector subscripting.
Support matrix copying, casting, entry-wise operations and
row-by-column multiplication.
By the last I assume mul() is meant; it may be best to spell that out explicitly.
Support complex initializers.
Support the "nointerpolation" modifier, and assume it for integer
variables.
- Perform copy propagation even when the code has branches and/or loops.
Which, on a more user-facing level, allows object-typed variables to be used from within loops, and produces more optimized code for variables accessed within loops in general.
Francisco, are there relevant cases of complex initializers that are still unsupported in master? Anything else I skipped?
A couple smaller things I noticed that I think are worth mentioning as well:
* The SV_VertexID semantic is supported.
* Matrix-typed varyings are supported.