574 Commits

Author SHA1 Message Date
Henri Verbeet
21e9029177 vkd3d-shader/glsl: Implement VKD3DSIH_SAMPLE_C_LZ. 2024-10-22 20:39:31 +02:00
Henri Verbeet
5958e527e5 vkd3d-shader/glsl: Implement VKD3DSIH_SAMPLE_C. 2024-10-22 20:39:31 +02:00
Henri Verbeet
19c493722e vkd3d-shader/glsl: Implement VKD3DSIH_SAMPLE_B. 2024-10-22 20:39:31 +02:00
Henri Verbeet
e408f1d984 vkd3d-shader/glsl: Implement support for the VKD3DSPR_THREADID register. 2024-10-22 20:39:31 +02:00
Henri Verbeet
f76dd80cba vkd3d-shader/glsl: Implement VKD3DSIH_LD_UAV_TYPED. 2024-10-22 20:39:31 +02:00
Giovanni Mascellani
8d8e0fd55a tests: Test mismatching RTV and pixel shader output types. 2024-10-22 20:38:18 +02:00
Giovanni Mascellani
dff7c0e7b8 tests: Mark interface packing pipeline creation as todo on MoltenVK.
Most Vulkan drivers are happy to compile a pipeline with interstage
interface mismatches, even if the pipeline will be broken. Metal,
and therefore MoltenVK, instead doesn't and errors out immediately.
2024-10-22 20:32:51 +02:00
Giovanni Mascellani
b411086398 tests: Use the appropriate RTV format in minimum-precision.shader_test. 2024-10-22 20:29:25 +02:00
Giovanni Mascellani
987dbe31e3 tests: Use appropriate RTV formats in max-min.shader_test. 2024-10-22 20:29:25 +02:00
Nikolay Sivov
cf3e251a9f vkd3d-shader/hlsl: Implement the f32tof16() intrinsic.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-10-22 20:28:33 +02:00
Shaun Ren
f54797bae5 vkd3d-shader/hlsl: Support discard for SM1. 2024-10-22 20:27:34 +02:00
Francisco Casas
51d05c1844 vkd3d-shader/hlsl: Optimize interstage signatures. 2024-10-22 20:15:15 +02:00
Francisco Casas
d9b631182e tests: Add signature reflection test with structs. 2024-10-22 19:15:42 +02:00
Nikolay Sivov
fb2b974466 vkd3d-shader/hlsl: Handle snorm/unorm types as resource formats.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-10-22 19:14:51 +02:00
Elizabeth Figura
6fd1a1ce7e tests: Test point sprite. 2024-10-22 19:14:05 +02:00
Giovanni Mascellani
e411fcb60e tests: Test discontiguous signature masks with SM<4 shaders. 2024-10-17 17:28:52 +02:00
Shaun Ren
147f8898ca vkd3d-shader/hlsl: Process the patch constant function in hlsl_emit_bytecode().
Also, support patch constant function semantics in sm4_sysval_semantic_from_semantic_name().
2024-10-16 21:10:24 +02:00
Shaun Ren
aee00ea55a tests: Test hull shader uniform input parameters. 2024-10-16 21:07:53 +02:00
Shaun Ren
069b8aac64 vkd3d-shader/hlsl: Implement struct single inheritance.
Here, we implement single inheritance by inserting a field at the
beginning of the derived struct with name "$super".

For the following struct declarations

  struct a
  {
      float4 aa;
      float4 bb;
  };

  struct b : a
  {
      float4 cc;
  };

  struct c : b
  {
      float4 bb;
  };

this commit generates the following:

  struct a
  {
      float4 aa;
      float4 bb;
  };

  struct b
  {
      struct a $super;
      float4 cc;
  };

  struct c
  {
      struct b $super;
      float4 bb;
  };
2024-10-16 21:07:53 +02:00
Shaun Ren
013e354b46 tests: Test struct single inheritance. 2024-10-16 21:07:53 +02:00
Giovanni Mascellani
bc351f4b70 tests/shader-runner: Make geometry shaders optional.
This allows the Vulkan runner to execute in environments which do
not support geometry shaders, most notably MoltenVK. In particular,
that enables SM<4 shaders to run in such environments
2024-10-15 16:55:15 +02:00
Henri Verbeet
90616be301 vkd3d-shader/dxil: Shift register write masks by the component index in sm6_parser_emit_dx_store_output().
To account for the change we made in commit
c571a45e656c4331adf092b546c2e68acba6b1cb on the SPIR-V side.
2024-10-15 16:45:28 +02:00
Henri Verbeet
2d848cf001 tests: Add a basic shader model 6 interface packing test as well. 2024-10-15 16:45:28 +02:00
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
Henri Verbeet
9dd42d15dd build: Actually run interface-packing.shader_test and tessellation-patch-vars.shader_test. 2024-10-14 19:40:13 +02:00