将数据从计算管道的输出资源传输到 DirectX 12 中的交换链图像?

Transferring data from a compute pipeline's output resource to swapchain image in DirectX 12?

我面临以下情况:

0) 我有一个生成输出的计算管道,我想将其逐字复制到交换链公开的渲染目标中。

1) 在 DirectX 11 中,计算管道可以直接写入交换链公开的渲染目标,但在 DirectX 12 中不能这样做(参见此处的讨论:D3D12 Use backbuffer surface as unordered access view (UAV)

2) 因此,我的计算管道必须写入输出资源 X,它不是交换链公开的渲染目标。

问题:将数据从 X 传输到交换链暴露的渲染目标的best/easiest方法是什么?

我知道只有一种可能的解决方案:有一个 "dummy" 图形管道,它除了从 X 获取数据并将其写入渲染目标外什么都不做。

可以直接从中间缓冲区(我们决定称之为 X)复制到交换链图像,使用 CopyTextureRegion. However, according to the discussion here 将很难匹配交换链图像和 X 的格式,并且最好使用图形管道进行复制,因为它可以处理格式更改。