- Jun 22, 2023
-
-
-
-
Signed-off-by:
Nikolay Sivov <nsivov@codeweavers.com>
-
In SM1 we can expect all variables to always belong to a single regset. structs in particular, should always be allocated to HLSL_REGSET_NUM, since they are only allowed if all their components are numeric. We are not covering the structs case because of the use of hlsl_type_get_regset(), which is currently not defined for structs. So the current shader struct { float4 a; float4 b; } apple; float4 main() : sv_target { return apple.a + apple.b; } fails with vkd3d/libs/vkd3d-shader/hlsl.c:224: Aborting, reached unreachable code. The solution is to iterate over all regsets to find the one where the variable is allocated (if any), and ignore all others.
-
- Jun 19, 2023
-
-
Fixes leakage of the replacement elements in shader_signature_merge().
-
- Jun 12, 2023
-
-
This only affects clip and cull distances. The HLSL compiler emits these using dcl_input, but the previous shader (vertex or TES) will write them as a SPIRV builtin, and hence we want to read this as a SPIRV builtin as well. This fixes validation errors in Wine's test_clip_distance().
-
-
-
-
- Jun 08, 2023
-
-
lower_narrowing_casts() currently creates a new cast calling hlsl_new_cast(). This cast may be redundant, but it is not folded, which is making SM1 emit an unnecessary fixme in some shaders: Aborting due to not yet implemented feature: SM1 "cast" expression. Other passes that call hlsl_new_cast() are lower_int_division() and lower_int_modulus(), so the new fold_redundant_casts() pass is called after these as well.
-
-
-
-
-
-
The V and W offsets may be uninitialized, which may spuriously trigger "out of range" errors.
-
Instead of modifying the swizzle after calling sm4_src_from_node(). This fixes the case where sm4_src_from_node() returns an immediate constant. Fixes: a471c556
-
- Jun 07, 2023
-
-
Non-constant vector indexing is not solved with relative addressing in the register indexes because this indexation cannot be at the level of register-components. Mathematical operations must be used instead.
-
-
-
-
-
- Jun 05, 2023
-
-
- May 29, 2023
-
-
Since constants are now inlined.
-
-
So that it can be used by sm4_src_from_node() in later commits.
-
-
-
vkd3d-shader/tpf: Write out comparison mode sampler declarations and corresponding sampling instruction.
-
-
-
-
-
Currently, the compiler requires that dereferences be HLSL_IR_CONSTANT, so that it can compute the offset at compile time. However, scenarios such as this test will produce a dereference with HLSL_IR_EXPR, which will generate an error. Passing this test in particular will require adding support for SM4 relative addressing, as well as support for non-constant indexing in general. Signed-off-by:
Ethan Lee <flibitijibibo@gmail.com>
-
- May 26, 2023
-
-
vkd3d-shader/spirv: Ensure that the OpLabel emitted vkd3d_spirv_builder_begin_main_function() gets terminated.
-
-
-
-
-