- Dec 07, 2023
-
-
-
-
-
-
-
-
Avoid shadowing "info" in vkd3d_shader_scan_combined_sampler_declaration().
-
-
-
-
-
Found with -Wshadow.
-
Found with -Wshadow.
-
Casts from minimum precision types are emitted as nop, but the result value type must be set to the cast result type.
-
These are apparently only used for 'dx.op' intrinsics, because the instructions based on native LLVM ones have their own way to apply attributes.
-
-
-
-
-
-
-
-
- Dec 06, 2023
-
-
-
-
Clip/cull distance can appear as input in pixel shaders, and the array size must not be forced to zero.
-
Regression in signature normalisation, however the old code was not correct either because it would apply the interpolation mode to all components. Found in an Assassin's Creed: Valhalla shader.
-
Alexandre Julliard authored
Copied from the corresponding Wine script.
-
- Dec 04, 2023
-
-
Scanning d3dbc sources is supported now, and vkd3d_shader_scan_combined_resource_sampler_info is supported as a chained structure.
-
-
vkd3d-shader: Add a VKD3D_FORCE_32_BIT_ENUM element to enum vkd3d_shader_compile_option_fragment_coordinate_origin.
-
-
-
- Nov 29, 2023
-
-
This preempts us from replacing a swizzle incorrectly, as in the following example: 1: A.x = 1.0 2: A 3: A.x = 2.0 4: @2.x were @4 ends up being 2.0 instead of 1.0, because that's the value stored in A.x at time 4, and we should be querying it at time 2. This also helps us to avoid replacing a swizzle with itself in copy-prop which can result in infinite loops, as with the included tests this commit. Consider the following sequence of instructions: 1 : A 2 : B = @1 3 : B 4 : A = @3 5 : @1.x Current copy-prop would replace 5 so it points to @3 now: 1 : A 2 : B = @1 3 : B 4 : A = @3 5 : @3.x But in the next iteration it would make it point back to @1, keeping it spinning infinitively. The solution is to index the instructions and don't replace the swizzle if the new load happens after the current load.
-
Instead of only storing the value that each variable's component has at the moment of the instruction currently handled by copy-prop, we store the trace of all the historic values with their timestamps, i.e. the instruction index on which the value was stored. This would allow us to query the value that the variable had at the time of execution of previous instructions.
-
-
The included test fails because copy_propagation_transform_swizzle() is using the value recorded for the variable when the swizzle is being read, and not the swizzle's load.
-
- Nov 28, 2023
-
-
Otherwise, for instance, their write masks and swizzles are not written in the D3D ASM dump.
-
-
- Nov 27, 2023
-
-
-
Found with -Wshadow.
-