- May 02, 2023
-
-
- May 01, 2023
-
-
Otherwise, in the added test, we get: vkd3d-compiler: vkd3d-shader/hlsl.c:452: hlsl_init_deref_from_index_chain: Assertion `chain' failed. because on the path that triggers the following error: E5002: Wrong type for argument 1 of 'tex3D': expected 'sampler' or 'sampler3D', but got 'sampler2D'. a NULL params.resource is passed to hlsl_new_resource_load() and then to hlsl_init_deref_from_index_chain().
-
Signed-off-by:
Ethan Lee <flibitijibibo@gmail.com>
-
Signed-off-by:
Ethan Lee <flibitijibibo@gmail.com>
-
-
-
-
-
-
-
Since in SM1 all vector types use 4 register components, and since SM1 doesn't consider vectors of different dimx incompatible, it is necessary to ensure that the semantic var is created with dimx=4, and to add a cast node.
-
Considering row vectors from row_major matrices as having a different layout as regular vectors, and error out in that case, is left as todo.
-
The use of the hlsl_semantic.reported_duplicated_output_next_index field allows reporting multiple overlapping indexes, such as in the following vertex shader: void main(out float1x3 x : OVERLAP0, out float1x3 y : OVERLAP1) { x = float3(1.0, 2.0, 3.2); y = float3(5.0, 6.0, 5.0); } apple.hlsl:1:41: E5013: Output semantic "OVERLAP1" is used multiple times. apple.hlsl:1:13: First use of "OVERLAP1" is here. apple.hlsl:1:41: E5013: Output semantic "OVERLAP2" is used multiple times. apple.hlsl:1:13: First use of "OVERLAP2" is here. While at the same time avoiding reporting overlaps more than once for large arrays: struct apple { float2 p : sv_position; }; void main(out apple aps[4]) { } apple.hlsl:3:8: E5013: Output semantic "sv_position0" is used multiple times. apple.hlsl:3:8: First use of "sv_position0" is here.
-
-
-
-
-
-
-
-
-
-
- Apr 28, 2023
-
-
-
Signed-off-by:
Nikolay Sivov <nsivov@codeweavers.com>
-
It is possible for multiple command lists to use the same heap, and submit it simultaneously to multiple d3d12 queues.
-
Thanks to Giovanni for the second set of tests! Note that the tolerance for the final pixel was set much higher than the others; this test seems to be an issue for some devices (in my case, a 7900 XTX running RADV). Co-authored-by:
Giovanni Mascellani <gmascellani@codeweavers.com> Signed-off-by:
Ethan Lee <flibitijibibo@gmail.com>
-
SPIR-V already handled DSX/DSY, so only D3DBC/TPF needed new case blocks. Signed-off-by:
Ethan Lee <flibitijibibo@gmail.com>
-
- Apr 26, 2023
-
-
Signed-off-by:
Nikolay Sivov <nsivov@codeweavers.com>
-
Signed-off-by:
Nikolay Sivov <nsivov@codeweavers.com>
-
Signed-off-by:
Ethan Lee <flibitijibibo@gmail.com> Signed-off-by:
Nikolay Sivov <nsivov@codeweavers.com>
-
Signed-off-by:
Ethan Lee <flibitijibibo@gmail.com> Signed-off-by:
Nikolay Sivov <nsivov@codeweavers.com>
-
Signed-off-by:
Nikolay Sivov <nsivov@codeweavers.com>
-
Signed-off-by:
Ethan Lee <flibitijibibo@gmail.com> Signed-off-by:
Nikolay Sivov <nsivov@codeweavers.com>
-
Signed-off-by:
Ethan Lee <flibitijibibo@gmail.com>
-
- Apr 25, 2023
-
-
Reduces the cost of calling vkUpdateDescriptorSets() via winevulkan and its thunks. The performance gain can be as high as 20%.
-
The descriptor component of struct d3d12_desc is replaced with a union containing a pointer which can be swapped out using InterlockedExchangePointer(). To make it safe to increment the refcount of such an object it is necessary to cache freed objects. Elimination of the descriptor mutexes on games which use multithreaded descriptor writes nearly doubles framerate on recent hardware.
-
Eliminates vk_sets_mutex. Performance on average may be lower until the descriptor mutexes are replaced and Vulkan writes are buffered to reduce thunk calls.
-