Skip to content

Add Direct3D 11 backend

James Ross-Gowan requested to merge rossy/libplacebo:d3d11 into master

This is more or less an enhanced port of mpv's D3D11 RA. Very WIP at the moment, even though most things seem to work (including plplay.) No longer WIP, since the major issues seem to have been solved.

TODO:

  • Test and verify it works at FL10_0
  • Implement support for FL9_3 (maybe)
  • Verify basic support for video rendering at FL9_1 and 9_2 (though the test framework won't pass at this feature level due to shader complexity limits)
  • Refactor/rewrite HLSL register allocation and binding
  • Remove PL_PRIM_TRIANGLE_FAN from libplacebo core
  • Figure out what to do about poor format support for typed UAV loads (readwrite storage images) in FL11_0 hardware. - Use SRVs for readonly images and added PL_FMT_CAP_READWRITE for readwrite images.
  • Refactor debug layer stuff
  • Fix questionable API use in pl_get_dll_version()
  • Actually call SetMaximumFrameLatency to set swapchain depth
  • Write a cached_program with compiled DXBC bytecode (later?)
  • Experiment with using a GPU buffer instead of malloc'd memory to mirror cbuffers, since this might be an easy way to remove buffer binding limitations as well as a perf improvement (later?)

Closes #18 (closed)

Edited by James Ross-Gowan

Merge request reports