Commit Graph

685 Commits

Author SHA1 Message Date
Elizabeth Figura
8515fcbc70 vkd3d-utils: Add a D3DCompile2VKD3D() that allows configuring DLL version.
This would allow us to use vkd3d-utils directly in Wine [with the exception of
D3D_COMPILE_STANDARD_FILE_INCLUDE, but we can simply pass the ID3DInclude object
to D3DCompile2VKD3D().]
2024-09-03 15:06:29 +02:00
Henri Verbeet
0e72aba0bc Release 1.13. 2024-08-29 12:08:46 +02:00
Elizabeth Figura
eb71a1722a vkd3d-shader: Use an extended version of vkd3d_shader_immediate_constant in vkd3d_shader_parameter1.
This is a proposed API change in 946, which won't make it into this release.

The intent is to allow slightly larger constants to be specified in the updated
vkd3d_shader_parameter1 structure. In particular, this is large enough to pass
4-dimensional integer or float vectors inline, which the proposed clip plane
implementation will use, as well as other Direct3D FFP parameters.

We could also simply add vkd3d_shader_immediate_constant1 as a separate union
member in vkd3d_shader_parameter1, but this API is a bit cleaner and simpler.
2024-08-28 12:08:37 +02:00
Francisco Casas
becdcec147 vkd3d-shader: Avoid div by zero on assert in vkd3d_calloc() (ubsan). 2024-08-20 21:26:26 +02:00
Nikolay Sivov
b9e894f232 include: Fix a few typos in the IDL files.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-08-19 14:20:28 +02:00
Nikolay Sivov
d1b8a7e745 vkd3d: Fix a few typos in the comments.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-08-19 14:17:41 +02:00
Henri Verbeet
cd9879f237 vkd3d-common: Replace assert() with VKD3D_ASSERT(). 2024-08-13 21:20:28 +02:00
Giovanni Mascellani
fb55c2b227 vkd3d: Emit an ERR() when reaching unreachable code.
This way the ERR() configuration is reused for unreachable code.
2024-07-29 13:17:19 +02:00
Giovanni Mascellani
4ada72a397 vkd3d: Allow aborting on ERR(). 2024-07-29 13:17:19 +02:00
Giovanni Mascellani
d7fc2693c4 vkd3d: Introduce a softer form of assertion.
Triggering an ERR() instead of aborting the program.
2024-07-29 13:17:19 +02:00
Giovanni Mascellani
a484063cd2 vkd3d: Introduce debug severity MESSAGE.
That's intended for messages that it's pretty important that the
user receives, but that are not proper error messages.
2024-07-29 13:17:19 +02:00
Giovanni Mascellani
021a7f030a vkd3d: Allow disabling ERR() by defining VKD3D_NO_ERROR_MESSAGES. 2024-07-29 13:17:19 +02:00
Giovanni Mascellani
60ecf8c12b vkd3d: Disable FIXME_ONCE() when VKD3D_NO_DEBUG_MESSAGES is defined.
Similarly to FIXME().
2024-07-29 13:17:19 +02:00
Giovanni Mascellani
4c1cc6101f vkd3d: Disable WARN_ON() when VKD3D_NO_DEBUG_MESSAGES is defined.
Similarly to WARN().
2024-07-29 13:17:19 +02:00
Elizabeth Figura
ae5cd6573f vkd3d-shader: Allow controlling d3d color shade mode through vkd3d-shader parameters. 2024-07-24 16:08:10 +02:00
Elizabeth Figura
806363b765 vkd3d-shader: Allow controlling alpha test through vkd3d-shader parameters. 2024-07-11 17:02:11 +02:00
Elizabeth Figura
e8bdac8147 vkd3d-shader/spirv: Support passing shader parameters through uniform buffers. 2024-07-11 16:58:52 +02:00
Elizabeth Figura
3dff608bf8 include: Document shader parameters. 2024-07-11 16:48:09 +02:00
Elizabeth Figura
98def3214b vkd3d-shader: Introduce struct vkd3d_shader_parameter_info and struct vkd3d_shader_parameter1.
As the newly added documentation describes, this reroll serves two purposes:

* to allow shader parameters to be used for any target type (which allows using
  parameters for things like Direct3D 8-9 alpha test),

* to allow the union in struct vkd3d_shader_parameter to contain types larger
  than 32 bits (by specifying them indirectly through a pointer).
2024-07-11 16:48:09 +02:00
Giovanni Mascellani
4f67675a51 tests: Support using the Agility SDK in the crosstests. 2024-07-09 16:57:03 +02:00
Stefan Dösinger
021eb28584 include: Get rid of the RB_FOR_EACH* macros.
They're largely unused, and RB_FOR_EACH_ENTRY_DESTRUCTOR is broken
because it uses WINE_RB_ENTRY_VALUE which doesn't exist in vkd3d.
2024-06-13 23:44:43 +02:00
Yuxuan Shui
8a459f5903 tests: Pass the correct buffer size to vsnprintf() in vkd3d_test_push_context(). 2024-06-12 19:04:22 +02:00
Henri Verbeet
36c123c005 Release 1.12. 2024-05-29 22:05:28 +02:00
Henri Verbeet
b363fdbb21 include: Add a \since tag for VKD3D_FALSE. 2024-05-27 21:08:00 +02:00
Henri Verbeet
007233a016 include: Document the additional HLSL transformations supported by vkd3d_shader_compile(). 2024-05-27 21:08:00 +02:00
Giovanni Mascellani
05394b624a vkd3d: Handle D3D12_FEATURE_D3D12_OPTIONS18 in CheckFeatureSupport(). 2024-05-13 11:50:37 +02:00
Giovanni Mascellani
7c7503713a vkd3d: Handle D3D12_FEATURE_D3D12_OPTIONS17 in CheckFeatureSupport(). 2024-05-13 11:50:37 +02:00
Giovanni Mascellani
d528fdbebf vkd3d: Handle D3D12_FEATURE_D3D12_OPTIONS16 in CheckFeatureSupport(). 2024-05-13 11:50:37 +02:00
Giovanni Mascellani
5445c4c8aa vkd3d: Handle D3D12_FEATURE_D3D12_OPTIONS15 in CheckFeatureSupport(). 2024-05-13 11:50:37 +02:00
Giovanni Mascellani
761ee1e487 vkd3d: Handle D3D12_FEATURE_D3D12_OPTIONS14 in CheckFeatureSupport(). 2024-05-13 11:50:37 +02:00
Giovanni Mascellani
3f43d06f5c include: Document structure vkd3d_image_resource_create_info. 2024-05-02 22:19:08 +02:00
Giovanni Mascellani
2679b10fcb include: Document structure vkd3d_optional_device_extensions_info. 2024-05-02 22:19:08 +02:00
Giovanni Mascellani
2b1abc5d7b include: Document structure vkd3d_device_create_info. 2024-05-02 22:19:08 +02:00
Stefan Dösinger
71f1955cd6 vkd3d: Implement vkd3d_shader_cache_get. 2024-04-24 23:49:20 +02:00
Stefan Dösinger
aad76f4ed2 vkd3d: Implement vkd3d_shader_cache_put. 2024-04-24 23:49:15 +02:00
Henri Verbeet
af33caf036 vkd3d-common: Introduce vkd3d_atomic_exchange_ptr(). 2024-04-24 23:49:12 +02:00
Henri Verbeet
b1c326ce56 vkd3d-common: Introduce vkd3d_atomic_exchange_u32(). 2024-04-24 23:49:11 +02:00
Henri Verbeet
5c8a90a6c9 vkd3d-common: Introduce vkd3d_atomic_compare_exchange_u32(). 2024-04-24 23:49:11 +02:00
Henri Verbeet
46fca3f9f4 vkd3d-common: Introduce VKD3D_BITMAP_SIZE. 2024-04-23 22:41:25 +02:00
Henri Verbeet
7b4a1fdfbc vkd3d: Move the vkd3d_cond implementation to vkd3d-common.
Much like the vkd3d_mutex implementation.
2024-04-22 23:15:20 +02:00
Giovanni Mascellani
7fbd753cf7 include: Document structure vkd3d_host_time_domain_info. 2024-04-22 23:14:15 +02:00
Giovanni Mascellani
d2d4ed9f63 include: Document structure vkd3d_application_info. 2024-04-22 23:14:15 +02:00
Giovanni Mascellani
d27bbce0e1 include: Document struct vkd3d_optional_instance_extensions_info. 2024-04-22 23:14:15 +02:00
Giovanni Mascellani
a1ebb3925b include: Document struct vkd3d_structure_type. 2024-04-22 23:14:15 +02:00
Giovanni Mascellani
995a316fba include: Document struct vkd3d_instance_create_info. 2024-04-22 23:14:15 +02:00
Conor McCarthy
b0145ad96e vkd3d-shader: Introduce a wave ops feature flag. 2024-04-17 22:51:52 +02:00
Conor McCarthy
6975a8d726 vkd3d-shader: Introduce SPIRV_ENVIRONMENT_VULKAN_1_1.
The SPIR-V backend may emit SPIR-V 1.3 if Vulkan 1.1 is available.
Some extensions which provide wave op instructions are available in
SPIR-V 1.0, but these are not sufficient to implement all Shader Model 6
wave op intrinsics. SPIR-V 1.3 has all of the required instructions, but
does not support reading from a quad at a non-constant (but uniform) lane
index, so it may later prove necessary to introduce a Vulkan 1.2
environment.
2024-04-17 22:51:49 +02:00
Stefan Dösinger
a7860ae752 vkd3d: Implement reopening existing caches. 2024-04-10 08:54:58 -05:00
Stefan Dösinger
8653ce17cf tests: Add tests for creating D3D12ShaderCacheSession objects. 2024-04-04 22:19:46 +02:00
Nikolay Sivov
e1e6367210 vkd3d-shader/fx: Add an option to include empty buffers in the effect binary.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-04-02 23:10:42 +02:00