Commit Graph

7002 Commits

Author SHA1 Message Date
8a5559ab17 tests/hlsl: Test the syntax of InputPatch/OutputPatch variables. 2025-01-29 17:51:18 +01:00
f064a4022a vkd3d-shader/hlsl: Validate and record InputPatch/OutputPatch types. 2025-01-29 17:45:46 +01:00
f4d5e05d96 vkd3d-shader/hlsl: Parse InputPatch and OutputPatch objects. 2025-01-29 17:41:51 +01:00
32c081ba8c tests/hlsl: Test invalid const variables with no initializer. 2025-01-29 17:36:58 +01:00
a77dca528a vkd3d-shader/hlsl: Forbid declaring const variables with no initializer. 2025-01-29 17:36:58 +01:00
25c6d16b45 vkd3d-shader/hlsl: Use the casted value in exp(). 2025-01-28 13:14:50 +01:00
033a0d29c5 tests/hlsl: Add some arithmetic uint16 shader tests. 2025-01-28 13:13:44 +01:00
a5d4cbddac tests/hlsl: Pass a profile string instead of a shader type to dxc_compiler_compile_shader(). 2025-01-28 12:07:43 +01:00
40c225095f vkd3d-utils: Fix matrix packing precedence in D3DCompile2VKD3D().
D3DCOMPILE_PACK_MATRIX_ROW_MAJOR takes precedence over
D3DCOMPILE_PACK_MATRIX_COLUMN_MAJOR.
2025-01-27 15:00:26 +01:00
f63254d905 vkd3d-shader/dxil: Handle SV_RenderTargetArrayIndex. 2025-01-27 14:52:28 +01:00
a557ad0aea tests/hlsl: Add a test for SV_RenderTargetArrayIndex. 2025-01-27 14:52:28 +01:00
d049ea640f vkd3d-shader/hlsl: Implement broadcasts in constant folding.
Normally lower_broadcasts() takes care of this, but loop unrolling executes before other constant passes.
2025-01-27 14:48:03 +01:00
9065a1ee23 tests: Add another unrolling test. 2025-01-27 14:47:12 +01:00
5bfcd81182 ci: Explicitly install SPIRV-Tools in the macOS CI environment. 2025-01-22 14:56:43 +01:00
d36864500f vkd3d-common: Write a thread id in the log on macOS too. 2025-01-22 14:54:52 +01:00
343022cdc1 vkd3d-shader/spirv: Interpret the write mask as a destination swizzle for double comparison operations.
This fixes a failure on a shader in Wild hearts.
2025-01-22 14:51:16 +01:00
4d18fb39b6 vkd3d-shader/hlsl: Don't forbid first base type cast on var assignments. 2025-01-22 14:46:02 +01:00
0a15ab702f vkd3d-shader/hlsl: Don't count cast to param type on IN as part of OUT var's lhs.
If the parameter is HLSL_STORAGE_IN, we add a cast from the arg to the
param type so that it can enter the function, however this cast should
not be considered part of the lhs on the implicit assignment that happens
if the var is also HLSL_STORAGE_OUT.
2025-01-22 14:39:20 +01:00
b55fe1950e vkd3d-shader/hlsl: Support non-size-changing lhs casts. 2025-01-22 14:38:10 +01:00
c2e224c5fb vkd3d-shader/hlsl: Delay lowering complex casts until after parse time.
While so far it has been posible to do this at parse time, this must
happen after knowing if the complex cast is on the lhs or not.

The modified tests show that before this patch we are currently
miscompiling when this happens, because a complex lhs cast is transformed
into a load, and add_assigment() just stores to the generated "cast"
temp.
2025-01-22 14:34:19 +01:00
dc37d90190 tests/hlsl: Add more function cast tests. 2025-01-22 14:29:54 +01:00
60f75cc542 tests/hlsl: Test partial assignments due to lhs casts. 2025-01-22 14:27:57 +01:00
51db232368 tests/hlsl: Add lhs cast tests. 2025-01-22 14:23:29 +01:00
c7b209124b vkd3d-shader/hlsl: Consider conversions across all parameters in function_compare().
For example, given two arguments, half3 and float, and two functions,
func(float, float) and func(float3, float3), fxc/d3dcompiler prefers to
widen both arguments to float3.
2025-01-22 14:18:54 +01:00
de57afd672 tests/hlsl: Add mixed argument size tests. 2025-01-22 14:17:17 +01:00