- Aug 23, 2022
-
-
Also, TextureCube and TextureCubeArray don't support the offset argument, so this check is updated. Signed-off-by:
Francisco Casas <fcasas@codeweavers.com>
-
-
Signed-off-by:
Francisco Casas <fcasas@codeweavers.com>
-
-
HLSL_ARRAY_ELEMENTS_COUNT_IMPLICIT (zero) is used as a temporal value for elements_count for implicit size arrays. This value is replaced by the correct one after parsing the initializer. In case the implicit array is not initialized correctly, hlsl_error() is called but the array size is kept at 0. So the rest of the code must handle these cases. In shader model 5.1, unlike in 5.0, declaring a multi-dimensional object-type array with the last dimension implicit results in an error. This happens even in presence of an initializer. So, both gen_struct_fields() and declare_vars() first check if the shader model is 5.1, the array elements are objects, and if there is at least one implicit array size to handle the whole type as an unbounded resource array. Signed-off-by:
Francisco Casas <fcasas@codeweavers.com>
-
Signed-off-by:
Francisco Casas <fcasas@codeweavers.com>
-
It is responsibility of the shader's programmer to ensure that object references can be solved statically. Resource arrays for ps_5_1 and vs_5_1 are an exception which is not properly handled yet. They probably deserve a different object type. Signed-off-by:
Francisco Casas <fcasas@codeweavers.com>
-
Signed-off-by:
Francisco Casas <fcasas@codeweavers.com>
-
Signed-off-by:
Francisco Casas <fcasas@codeweavers.com>
-
Signed-off-by:
Francisco Casas <fcasas@codeweavers.com>
-
Otherwise we get false in implicit_compatible_data_types() when passing types that are equal but not convertible according to convertible_data_type(); e.g. getting: "Can't implicitly convert from Texture2D<float4> to Texture2D<float4>." Signed-off-by:
Francisco Casas <fcasas@codeweavers.com>
-
Signed-off-by:
Francisco Casas <fcasas@codeweavers.com>
-
Signed-off-by:
Francisco Casas <fcasas@codeweavers.com>
-
Signed-off-by:
Francisco Casas <fcasas@codeweavers.com>
-
Signed-off-by:
Francisco Casas <fcasas@codeweavers.com>
-
- Aug 15, 2022
-
-
Don't assume that enums and uint32_t parameters are identical. Clang 16 changes the diagonstic for incompatible function pointer types from a warning into an error by default. This fixes the following error, when built (for aarch64, but probably also for other architectures) in MSVC mode: ../src/libs/vkd3d/libs/vkd3d-shader/spirv.c:1083:13: error: incompatible function pointer types passing 'uint32_t (struct vkd3d_spirv_builder *, uint32_t, SpvDim, uint32_t, uint32_t, uint32_t, uint32_t, SpvImageFormat)' (aka 'unsigned int (struct vkd3d_spirv_builder *, unsigned int, enum SpvDim_, unsigned int, unsigned int, unsigned int, unsigned int, enum SpvImageFormat_)') to parameter of type 'vkd3d_spirv_build7_pfn' (aka 'unsigned int (*)(struct vkd3d_spirv_builder *, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int)') [-Wincompatible-function-pointer-types] vkd3d_spirv_build_op_type_image); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../src/libs/vkd3d/libs/vkd3d-shader/spirv.c:612:68: note: passing argument to parameter 'build_pfn' here SpvOp op, const uint32_t *operands, vkd3d_spirv_build7_pfn build_pfn) ^ Signed-off-by:
Martin Storsjö <martin@martin.st>
-
- Aug 10, 2022
-
-
hlsl_new_store() and hlsl_new_load() are deleted, so now there are no more direct ways to create derefs with offsets in hlsl.c and hlsl.h. Signed-off-by:
Francisco Casas <fcasas@codeweavers.com> Signed-off-by:
Giovanni Mascellani <gmascellani@codeweavers.com>
-
Signed-off-by:
Francisco Casas <fcasas@codeweavers.com> Signed-off-by:
Giovanni Mascellani <gmascellani@codeweavers.com>
-
Signed-off-by:
Francisco Casas <fcasas@codeweavers.com> Signed-off-by:
Zebediah Figura <zfigura@codeweavers.com> Signed-off-by:
Giovanni Mascellani <gmascellani@codeweavers.com>
-
This can be done now, to ensure that register offsets are no longer used in hlsl.c and hlsl.h. Signed-off-by:
Francisco Casas <fcasas@codeweavers.com> Signed-off-by:
Giovanni Mascellani <gmascellani@codeweavers.com>
-
At this point, the parse code is free of offsets; it only uses index paths. Signed-off-by:
Francisco Casas <fcasas@codeweavers.com> Signed-off-by:
Giovanni Mascellani <gmascellani@codeweavers.com>
-
Signed-off-by:
Francisco Casas <fcasas@codeweavers.com> Signed-off-by:
Giovanni Mascellani <gmascellani@codeweavers.com>
-
Signed-off-by:
Francisco Casas <fcasas@codeweavers.com> Signed-off-by:
Giovanni Mascellani <gmascellani@codeweavers.com>
-
Signed-off-by:
Francisco Casas <fcasas@codeweavers.com> Signed-off-by:
Giovanni Mascellani <gmascellani@codeweavers.com>
-
The transform_deref_paths_into_offsets pass turns these index paths back into register offsets. Signed-off-by:
Francisco Casas <fcasas@codeweavers.com> Signed-off-by:
Giovanni Mascellani <gmascellani@codeweavers.com>
-
Signed-off-by:
Francisco Casas <fcasas@codeweavers.com> Signed-off-by:
Zebediah Figura <zfigura@codeweavers.com> Signed-off-by:
Giovanni Mascellani <gmascellani@codeweavers.com>
-
Signed-off-by:
Francisco Casas <fcasas@codeweavers.com> Signed-off-by:
Giovanni Mascellani <gmascellani@codeweavers.com>
-
At this point add_load() is split into add_load_component() and add_load_index(); register offsets are hidden for these functions. Signed-off-by:
Francisco Casas <fcasas@codeweavers.com> Signed-off-by:
Giovanni Mascellani <gmascellani@codeweavers.com>
-
Signed-off-by:
Francisco Casas <fcasas@codeweavers.com> Signed-off-by:
Giovanni Mascellani <gmascellani@codeweavers.com>
-
- Aug 09, 2022
-
-
Once a event is signaled, the corresponding struct vkd3d_waiting_event entry is considered dead and could be overwritten, so it's not safe to keep a pointer to it in d3d12_fence_SetEventOnCompletion(). Instead, keep the latch bit in d3d12_fence_SetEventOnCompletion() and put a pointer to it in struct vkd3d_waiting_event.
-
Fixes reflections in Control appearing with only their red component. Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52146 Signed-off-by:
Conor McCarthy <cmccarthy@codeweavers.com>
-
Vulkan's shaderStorageImageExtendedFormats includes more formats than are required by D3D12. Signed-off-by:
Conor McCarthy <cmccarthy@codeweavers.com>
-
Specifying R32 for UAVs created with a vector format, e.g. R32G32B32A32_FLOAT, results in only the red being loaded/stored, potentially causing images to contain only the red component. Signed-off-by:
Conor McCarthy <cmccarthy@codeweavers.com>
-
This currently fails if the shader loads from the UAV, because it causes vkd3d-shader to specify the R32f format instead of Unknown. Signed-off-by:
Conor McCarthy <cmccarthy@codeweavers.com>
-
- Aug 08, 2022
-
-
-
Pthread mandates that a mutex must be unlocked before being destroyed. In pratice I doubt this make a difference on any platform (certainly it doesn't on Linux), but let's comply to standards.
-
- Jul 25, 2022
-
-
- Jul 20, 2022
-
-
An unblocking Signal() on the CPU must be handled after the blocked op is written, or the op will not be flushed until the next signal. The device is locked while the fence is already locked, so the fence must never be locked after locking the device. Currently this never occurs. Signed-off-by:
Conor McCarthy <cmccarthy@codeweavers.com> Signed-off-by:
Henri Verbeet <hverbeet@codeweavers.com> Signed-off-by:
Alexandre Julliard <julliard@winehq.org>
-
Otherwise the following sequence can occur: 1. A command queue is added to the blocked list during a Wait() call. 2. An unblocking Signal() occurs on the CPU in another thread, flushing the blocked ops, but as no op has been written, the queue is removed from the blocked list. 3. The blocked op is written. 3. Another op is queued and the queue is not re-added to the blocked list because this only happens for the first op. World of Warcraft triggers this issue. Signed-off-by:
Conor McCarthy <cmccarthy@codeweavers.com> Signed-off-by:
Henri Verbeet <hverbeet@codeweavers.com> Signed-off-by:
Alexandre Julliard <julliard@winehq.org>
-
- Jul 18, 2022
-
-
Signed-off-by:
Francisco Casas <fcasas@codeweavers.com> Signed-off-by:
Henri Verbeet <hverbeet@codeweavers.com> Signed-off-by:
Zebediah Figura <zfigura@codeweavers.com> Signed-off-by:
Alexandre Julliard <julliard@winehq.org>
-