D3d11screencapturesrc vs d3d12screencapturesrc

d3d12 ones in 1.24 are a bit experimental, not fully optimized.

both d3d11 and d3d12 screen capture elements use DXGI desktop duplication API + D3D11 (or Windows Graphics Capture + D3D11), and their features are the same. But performance can be different.

Notable differences are (in main branch case),

  • d3d11screencapture element copies desktop image (it’s d3d11 texture) to another d3d11 texture, but d3d12screencapture copies the image to d3d12 resource via d3d11<->d3d12 resource sharing API. From a screen capture element point of view, d3d11 and d3d12 would not show significant performance-wise differences in theory, but it can be varying depending on your pipeline. My observation is that d3d12’s performance is better than d3d11 in various scenarios.
  • In case of WGC, I re-wrote the capture logic for d3d12, and it addressed low-framerate issue exists in d3d11’s WGC mode
1 Like