The game creates a render target and Locks it every frame. It doesn't actually use the render target for anything, at least in the apitrace.
Because it's a render target we have to assume the resource was written by the GPU, so in every lock call we end up waiting for the previous one.
Fixing this would require doing significantly more tracking, which isn't worth it. Besides that, the game always waits for an operation in the previous frame, so it's not that bad and has the side effect that it cuts down the latency.
Nothing extracted yet.
Game has a permanent queue sync that is interesting to check out.
Queue sync
Interestingly running the game with
d3d9.allowDirectBufferMapping = Falseups the queue sync number to high double digitsWith d3d9.allowDirectBufferMapping=False
Extra note that
d3d9.cachedDynamicBuffers = Truehelps CPU bound performance quite nicely in this game but the queue sync is still there.with d3d9.cachedDynamicBuffers=True
Software information
Codename: Panzers, Phase Two
System information
Apitrace file(s)
https://drive.proton.me/urls/96BWD685T4#fpUpd5rLvNL7
Log files
PANZERS_Phase_2_d3d9.log