My name is Denis, I'm working as a CTO at Frogwares.
Currently we are working on getting our recent Sherlock Holmes adventure game running well on Radeon video adapters. The game is made with our custom version of UE3 and so far I don't see too much problems in our rendering and game threads. But what's really strange is that when we begin to stream the game resources actively we have a thread(s) in atidxx64.dll which occupies up to 100% of CPU time - it simply eats all CPU cores it can. The driver dll operates inside our process.
GPUPerfSudio doesn't show a lot here as our own CPU time and API calls time are absolutely normal and don't seem to be a bottleneck. This is expected as the CPU consumption of our (UE3) threads doesn't grow while the resources are streamed - it grows only for atidxx64.dll thread(s). It seems like DX11 sends some asynchronous requests to driver while initializing the streamed resources which are then processed in atidxx64.dll thread and take a lot of CPU time.
We run the game on AMD Radeon R7 370 adapter and we tried already several version of driver packs including the recent ones with the same result. So here are our questions:
Thank you very much in advance!
I've recently discovered (with CodeXL) that 70% of CPU cores are consumed by AmdDxGsaFreeCompiledShader call. What is this actually about? Does Gsa point to GPU Shader Analyzer? Can I get rid of it in the retail version? Why does compiled shaders cleanup consumes so much CPU time?