Nikolay Sivov
5fb3a91276
vkd3d-shader/hlsl: Implement the modf() intrinsic.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-10-15 16:43:33 +02:00
Elizabeth Figura
34fdb304bb
vkd3d-shader/hlsl: Handle error expressions in increments.
2024-10-07 17:33:07 +02:00
Elizabeth Figura
84685fb56d
vkd3d-shader/hlsl: Handle error expressions in subscripts.
2024-10-07 17:33:07 +02:00
Elizabeth Figura
c66f25016b
vkd3d-shader/hlsl: Handle error expressions in array indexes.
2024-10-07 17:33:07 +02:00
Elizabeth Figura
41ff4343e1
vkd3d-shader/hlsl: Handle error expressions in explicit casts.
2024-10-07 17:33:07 +02:00
Elizabeth Figura
10efdd3f63
vkd3d-shader/hlsl: Introduce an add_explicit_conversion() helper.
2024-10-07 17:33:07 +02:00
Francisco Casas
0b989c9f37
vkd3d-shader/hlsl: Fix the conditions to discard default values.
...
Otherwise default_values for strings are lost.
Thanks to Nikolay Sivov for pointing this out.
2024-10-07 17:28:07 +02:00
Elizabeth Figura
cebe0a8b95
vkd3d-shader/hlsl: Handle error expressions in method calls.
2024-10-03 17:47:26 +02:00
Elizabeth Figura
600f90e8b0
vkd3d-shader/hlsl: Handle error expressions in assignments.
2024-10-03 17:47:26 +02:00
Elizabeth Figura
c94aa5e03c
vkd3d-shader/hlsl: Handle error expressions in binary expressions.
2024-10-03 17:47:26 +02:00
Elizabeth Figura
d6052bc31b
vkd3d-shader/hlsl: Handle error expressions in function calls.
2024-10-03 17:47:26 +02:00
Elizabeth Figura
5d52bef19d
vkd3d-shader/hlsl: Return an "error" expression when using an undeclared variable.
2024-10-03 17:47:26 +02:00
Francisco Casas
caa2a9d314
vkd3d-shader/hlsl: Parse sampler_state.
2024-10-02 22:07:34 +02:00
Francisco Casas
f47d523e0b
vkd3d-shader/hlsl: Process 'texture' as a valid stateblock lhs.
2024-10-02 22:07:34 +02:00
Nikolay Sivov
2722346ffb
vkd3d-shader/hlsl: Do not lower index expressions for effects.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-10-02 22:05:24 +02:00
Nikolay Sivov
5e52ccbf3d
vkd3d-shader/hlsl: Move default values indexing fixup to the tpf writer stage.
...
The primary goal here is to move compilation profile type and version
check outside of a parsing stage. Default values for parameters were
never subjected to this fixup, and it does look tpf-specific, so moving
it where it belongs.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-10-01 17:27:12 +02:00
Elizabeth Figura
650bf4d83f
vkd3d-shader/hlsl: Fix a corner case in ternary type conversion.
...
If the condition and argument types are compatible, i.e. there is no broadcast,
the resulting shape should be the shape of the arguments, not the shape of the
condition.
2024-09-23 15:43:15 +02:00
Elizabeth Figura
b2cddecfc5
vkd3d-shader/hlsl: Use add_cast() in append_conditional_break().
...
Instead of creating a cast node directly.
This specifically handles the 1x1 matrix case, which currently the backend code does not expect.
2024-09-23 15:43:15 +02:00
Elizabeth Figura
43b714d896
vkd3d-shader/hlsl: Handle error expressions in unary expressions.
2024-09-23 15:28:47 +02:00
Elizabeth Figura
7e3231c749
vkd3d-shader/hlsl: Return an "error" expression when constructing an arithmetic expression from incompatible types.
2024-09-23 15:28:47 +02:00
Elizabeth Figura
f73a23f735
vkd3d-shader/hlsl: Do not create a copy in add_assignment().
2024-09-23 15:28:47 +02:00
Elizabeth Figura
eb7f5f7f68
vkd3d-shader/hlsl: Return bool from add_assignment().
2024-09-23 15:28:47 +02:00
Elizabeth Figura
8975933aff
vkd3d-shader/hlsl: Store a pointer to the block's "value" instruction in the block.
2024-09-23 15:28:47 +02:00
Nikolay Sivov
d7def84253
vkd3d-shader/hlsl: Remove the 'double' keyword.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-09-23 15:26:35 +02:00
Francisco Casas
b72ef6038d
vkd3d-shader/hlsl: Remove hlsl_ir_vsir_instruction_ref.
2024-09-14 16:39:17 +02:00
Francisco Casas
ffc1449412
vkd3d-shader/hlsl: Allow effect calls on default value initializers.
2024-09-14 16:09:12 +02:00
Francisco Casas
4aa262d773
vkd3d-shader/hlsl: Parse ConstructGSWithSO().
2024-09-14 16:09:08 +02:00
Francisco Casas
1f9fc2a422
vkd3d-shader/hlsl: Process GeometryShader as a valid stateblock lhs.
2024-09-14 16:02:43 +02:00
Francisco Casas
02b249d5e7
vkd3d-shader/hlsl: Introduce enum hlsl_compile_type.
2024-09-14 15:57:40 +02:00
Elizabeth Figura
1aa857735f
vkd3d-shader/hlsl: Preserve doubles in intrinsic_determinant().
2024-09-12 18:48:52 +02:00
Elizabeth Figura
e146cc4c8e
vkd3d-shader/hlsl: Preserve doubles in intrinsic_cross().
2024-09-12 18:48:52 +02:00
Elizabeth Figura
1176aaad22
vkd3d-shader/hlsl: Preserve doubles in elementwise_intrinsic_float_convert_args().
2024-09-12 18:48:52 +02:00
Elizabeth Figura
ebaf877b62
vkd3d-shader/hlsl: Preserve doubles in intrinsic_float_convert_arg().
2024-09-12 18:48:52 +02:00
Elizabeth Figura
534d546ed9
vkd3d-shader/hlsl: Use expr_common_base_type() in intrinsic_cross().
2024-09-12 18:48:52 +02:00
Elizabeth Figura
9260078300
vkd3d-shader/hlsl: Use intrinsic_float_convert_arg() in write_acos_or_asin().
2024-09-12 18:48:52 +02:00
Elizabeth Figura
82773eb805
vkd3d-shader/hlsl: Use elementwise_intrinsic_float_convert_args() in refract().
2024-09-11 15:11:42 +02:00
Elizabeth Figura
2688a24bde
vkd3d-shader/hlsl: Preserve halves in intrinsic_step().
2024-09-11 15:11:42 +02:00
Elizabeth Figura
b23c172a47
vkd3d-shader/hlsl: Use elementwise_intrinsic_float_convert_args() in intrinsic_smoothstep().
2024-09-11 15:11:42 +02:00
Elizabeth Figura
e7eadb38b8
vkd3d-shader/hlsl: Use elementwise_intrinsic_float_convert_args() in intrinsic_faceforward().
2024-09-11 15:11:42 +02:00
Elizabeth Figura
24e29649c4
vkd3d-shader/hlsl: Use elementwise_intrinsic_convert_args() in intrinsic_dst().
...
This one preserves integer arguments.
2024-09-11 15:11:42 +02:00
Elizabeth Figura
7636f2a233
vkd3d-shader/hlsl: Use elementwise_intrinsic_float_convert_args() in write_atan_or_atan2().
2024-09-11 15:11:42 +02:00
Nikolay Sivov
de6abd964e
vkd3d-shader/hlsl: Implement the mad() intrinsic.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-09-10 21:40:32 +02:00
Shaun Ren
73ee5a135a
vkd3d-shader/hlsl: Check for duplicate attributes in function declaration.
2024-09-04 18:18:23 +02:00
Petrichor Park
855b9713b8
vkd3d-shader/hlsl: Implement the sincos() intrinsic.
2024-09-04 18:16:37 +02:00
Petrichor Park
384810b4ba
vkd3d-shader/hlsl: Implement the dst() intrinsic.
2024-09-04 18:08:24 +02:00
Francisco Casas
7ec44bd70b
vkd3d-shader/hlsl: Parse the CompileShader() syntax.
2024-09-04 17:59:34 +02:00
Francisco Casas
45f18a7838
vkd3d-shader/hlsl: Parse the shader 'compile' syntax.
...
The hlsl_ir_compile node is introduced to represent the "compile"
syntax, and later the CompileShader() and ConstructGSWithSO()
constructs.
It basically represents a function call that remembers its arguments
using hlsl_srcs and keeps its own instruction block, which is discarded
when working on non-effect shaders.
For shader compilations it can be asserted that args_count is 1, and
that this argument (and the last node in hlsl_ir_effect_call.instrs)
is a regular hlsl_ir_call pointing to the declaration of the function
to be compiled.
2024-09-04 17:58:56 +02:00
Francisco Casas
7abf3c3a37
vkd3d-shader/hlsl: Introduce hlsl_ir_vsir_instruction_ref.
...
This node type will be deleted once the hlsl->vsir->d3dbc translation is
complete. For now it serves the purpose of allowing to keep both real
hlsl_ir_nodes and vsir_instructions in the hlsl_block, until all the
former can be translated into the latter.
2024-09-04 16:49:00 +02:00
Petrichor Park
4467c655f0
vkd3d-shader/hlsl: Factor out add_binary_expr() and use it for assignment operators.
...
This fixes a lot of internal compiler errors with assignment operators,
especially bitwise ones. The bitwise-assignment test has the motivating
examples.
2024-08-19 14:15:43 +02:00
Francisco Casas
094e298c1c
vkd3d-shader/hlsl: Parse string default values.
2024-08-13 21:19:01 +02:00