We are seeing periodic drops in framerate (increased present times) when our system is under heavy load and profiling shows that these are caused by blocks of I/O access within the AMD driver during present. I sense some crazy serialisation of resources is happening, but why and why during presentation? We have a content heavy pipeline, streaming 3 x UHD, presenting on the render thread and up to 8 other cores decoding frames in parallel in a deep pipelined fashion. The possible explanation is because of parallel workloads occurring during the present are causing some sort of resource contention in the AMD driver, we would not want to stop frames being streamed into memory and decoded for GPU during the presentation on its own thread as this would mean a performance drop for us (4k uncompressed media frames take quite some time to decode).
If you have any explanation i'd love to hear it It's quite a blocker for us at the moment. Would also like to hear from people that have seen this behaviour too.
here is the call-stack within the driver: