[PATCH vkd3d 5/5] vkd3d: Create and write descriptor sets for root signature unbounded ranges.
Giovanni Mascellani
gmascellani at codeweavers.com
Thu Oct 7 03:35:13 CDT 2021
Hi,
Il 06/10/21 18:43, Henri Verbeet ha scritto:
> From: Conor McCarthy<cmccarthy at codeweavers.com>
>
> Signed-off-by: Conor McCarthy<cmccarthy at codeweavers.com>
> Signed-off-by: Henri Verbeet<hverbeet at codeweavers.com>
> ---
> libs/vkd3d/command.c | 120 +++++++++++++++++++-----
> libs/vkd3d/device.c | 114 +++++++++++++++++++++++
> libs/vkd3d/resource.c | 9 ++
> libs/vkd3d/state.c | 181 ++++++++++++++++++++++++++++++++-----
> libs/vkd3d/vkd3d_private.h | 40 +++++++-
> tests/d3d12.c | 18 ++--
> 6 files changed, 424 insertions(+), 58 deletions(-)
The patch is huge and I don't know the code very much, but it causes
tests/d3d12 to hang on my NVIDIA Quadro P2000 Mobile card. Specifically,
eventually a thread gets stuck in a busy loop writing
vkd3d_wait_for_gpu_fences Failed to wait for Vulkan fences, vr -4.
in the log.
This happens inside test_unbounded_resource_arrays, but if I run just
that test (jumping over the others via goto and return), the symptom is
different:
malloc(): invalid size (unsorted)
Doing some additional bisection, it seems that if I run all the tests
from (and including) test_clip_distance up to
test_unbounded_resource_arrays, then the symptom is failing to wait for
Vulkan fences. If I start running after test_clip_distance, then the
symptom becomes the invalid malloc size.
But there are other interactions, because if I run just
test_clip_distance and test_unbounded_resource_arrays I have the invalid
malloc size again. I am not sure that tracking down exactly which test
combinations cause one or the other behavior is a better usage of my
time than actually tracking down the bug. At the same time, I am not
very confident with this area of vkd3d, so if Conor or Henri or whoever
have hints, that's appreciated. :-)
Thanks, Giovanni.
More information about the wine-devel
mailing list