Henri Verbeet
201fab7d5d
vkd3d: Use vkd3d_atomic_decrement_u32() in d3d12_resource_decref().
2024-02-01 00:08:35 +01:00
Henri Verbeet
a9582a7355
vkd3d: Use vkd3d_atomic_increment_u32() in d3d12_resource_incref().
2024-02-01 00:08:35 +01:00
Henri Verbeet
6f7aec58ea
vkd3d: Use vkd3d_atomic_decrement_u32() in d3d12_heap_resource_destroyed().
2024-02-01 00:08:35 +01:00
Henri Verbeet
30a00160e2
vkd3d: Use vkd3d_atomic_increment_u32() in vkd3d_bind_heap_memory().
2024-02-01 00:08:35 +01:00
Henri Verbeet
06eb8e5f8c
vkd3d: Use vkd3d_atomic_decrement_u32() in d3d12_heap_Release().
2024-02-01 00:08:35 +01:00
Henri Verbeet
fd385ab994
vkd3d: Use vkd3d_atomic_increment_u32() in d3d12_heap_AddRef().
2024-02-01 00:08:35 +01:00
Giovanni Mascellani
cc72a8d311
vkd3d-shader/spirv: Free binary SPIR-V code (Valgrind).
2024-02-01 00:08:28 +01:00
Giovanni Mascellani
8b11b4b37a
vkd3d-compiler: Free compilation options (Valgrind).
2024-02-01 00:08:28 +01:00
Giovanni Mascellani
896fc0c2ce
vkd3d-compiler: Exit the main function through a common code path.
2024-02-01 00:08:28 +01:00
Henri Verbeet
d38221bd68
vkd3d-shader/ir: Pass a struct vsir_program to shader_parser_get_src_params().
2024-02-01 00:08:23 +01:00
Henri Verbeet
47ec24ebad
vkd3d-shader/ir: Pass a struct vsir_program to shader_parser_get_dst_params().
2024-02-01 00:08:22 +01:00
Henri Verbeet
ced8543952
vkd3d-shader: Use vkd3d_atomic_increment_u32() in vkd3d_shader_dump_blob().
2024-02-01 00:08:18 +01:00
Henri Verbeet
fef30dac2c
vkd3d-shader/d3dbc: Do not fail parsing the shader when undeclared inputs are encountered.
...
These can be disassembled by D3DDisassemble() just fine, and perhaps
more importantly, shader model 1 vertex shaders do not require dcl_
instructions in Direct3D 8.
2024-01-29 22:33:46 +01:00
Henri Verbeet
8c6f5b847b
vkd3d-utils: Implement D3DDisassemble().
...
Very loosely based on Wine's d3dcompiler_43.
2024-01-29 22:33:44 +01:00
Henri Verbeet
4fd4ecc020
vkd3d: Use vkd3d_atomic_decrement_u32() in d3d12_device_Release().
2024-01-29 22:33:40 +01:00
Henri Verbeet
7d7833f3c0
vkd3d: Use vkd3d_atomic_increment_u32() in d3d12_device_AddRef().
2024-01-29 22:33:40 +01:00
Henri Verbeet
f61891954e
vkd3d: Use vkd3d_atomic_decrement_u32() in vkd3d_instance_decref().
2024-01-29 22:33:40 +01:00
Henri Verbeet
042e269791
vkd3d: Use vkd3d_atomic_increment_u32() in vkd3d_instance_incref().
2024-01-29 22:33:40 +01:00
Giovanni Mascellani
edc406d297
vkd3d-shader/ir: Check that SSA registers are used with compatible data types.
...
Specifically, accesses are always 32 bit or always 64 bit.
2024-01-29 22:33:34 +01:00
Giovanni Mascellani
1f536238a8
vkd3d-shader: Use 64 bit swizzles for 64 bit data types in VSIR.
...
The handling of write masks and swizzles for 64 bit data types is
currently irregular: write masks are always 64 bit, while swizzles
are usually 32 bit, except for SSA registers with are 64 bit.
With this change we always use 64 bit swizzles, in order to make
the situation less surprising and make it easier to convert
registers between SSA and TEMP.
64 bit swizzles are always required to have X in their last two
components.
2024-01-29 22:33:33 +01:00
Giovanni Mascellani
5ec1825eb3
include/vkd3d-shader: Generate swizzles without a function call.
...
So they can be used when a constant expression is expected, for instance
on case labels.
2024-01-29 22:33:31 +01:00
Giovanni Mascellani
2b93aae069
vkd3d-shader: Convert write masks between 32 and 64 bit by cases.
...
There are only three cases, and while the code is longer it is also
hopefully easier to read. Moreover, an error message is casted if
we're doing something unexpected.
2024-01-29 22:33:30 +01:00
Francisco Casas
13f713f74b
vkd3d-shader/hlsl: Turn register(cX) reservations into buffer offset for SM4.
2024-01-29 22:33:27 +01:00
Francisco Casas
c7f7636534
vkd3d-shader/hlsl: Make register(cX) reservations work for SM1.
2024-01-29 22:33:25 +01:00
Francisco Casas
4791c7c23b
tests: Test register(cX) reservations.
2024-01-29 22:33:25 +01:00