Weird Async Compute Behavior

Hello,
I am playing around with my RTX 4080, testing its behavior in different settings with async compute.

I help to maintain a research renderer called Timberdoodle (using Vulkan). It has grown to use so many passes that i decided it might be useful to test async compute.

Long story short, i see very strange behavior when overlapping mesh shading work and compute work (the test case i have is overlapping the main visbuffer rasterization and the main scene TLAS build).

The strange behavior:
When the raster work starts and there is any async compute work running on another queue, the raster work limits its resource utilization to a very low level and it stays like that even when the async work completes.
When the raster work starts with no async work happening at the point of starting it, it will reach the expected resource utilization, drops its occupancy as expected when the TLAS build starts but THEN recovers and goes back to expected full resource utilization.

This is happening consistently. I have taken a lot of captures and it always behaves like this.

Now this is very sad to see, as this “randomly” cripples some frames where the tlas build happens to start just a little bit before the raster work.

I have two nsight captures and images of what i am seeing here:



As you can see, in the first image the raster work starts a little earlier, it reaches high resource use, then shares space with async work, then reaches back to full resource use.
In the second image, the raster work starts slightly after the async compute work, and it gets permanently hamstrung to lower resource use.
What is also visible in that capture is that performance is heavily degraded in the second image :(.

This almost seems like a driver bug of some sort. Either way this is severely limiting the possible use of async compute and seems unintended.

Here are the captures shown in the above images: strange_async_compute.zip (40.0 MB)

I am currently on the driver 566.03 due to stability issues i have with the latest drivers.

2 Likes

I retested on 576.52, same behavior