如何正确地将“Texture2D”复制到另一个适配器?

How to correctly copy `Texture2D` to another adapter?

提问人:LOST 提问时间:9/9/2023 更新时间:9/9/2023 访问量:12

问:

我有一个使用从其他应用程序收到的。我需要在另一个适配器上复制该纹理,该适配器具有发起方适配器所没有的一些功能。Texture2Ddevice.OpenSharedResource

这是我目前正在尝试做的事情:

var desc = tex.Description;
var copy = new Texture2D(device, desc);
tex.Device.ImmediateContext.CopyResource(src: tex, dst: copy);

描述如下所示:enter image description here

如您所见,这会生成访问冲突异常。这让我觉得我需要修改目标纹理的描述。但以什么方式呢?

如果这很重要,因为我没有真正的硬件,我测试的目标设备是 WARP(例如 或 )。我认为应该可以将纹理复制到 WARP 设备,就像它是真正的 GPU 一样。DriverType.WarpD3D_DRIVER_TYPE_WARP

P.S. 我也尝试直接在目标设备上使用,但它只是返回(这发生在 NVidia GPU 和 WARP 上)。OpenSharedResourceINVALID_ARG

直接3D11

评论


答: 暂无答案