microsoft / D3D12TranslationLayer

A library containing utilities for mapping higher-level graphics work to D3D12
MIT License
327 stars 47 forks source link

Use a synchronization-only command queue (COMMAND_LIST_TYPE_NONE) for Signal() #81

Closed jenatali closed 1 year ago

jenatali commented 1 year ago

When supported by the D3D12 version we're using, we can create a sync-only queue, which can only have signals and waits on it and is lighter weight than any other queue type. On this queue, we can do waits for all of our internal fences to complete, followed by a signal for the caller's fence, which effectively allows us to broadcast the signal to only complete when all internal timelines reach the appropriate completion point.