Oculus Rift / Vulkan:使用计算着色器写入交换链

问题描述

我想用计算着色器写入由 OVR 生成的交换链。 问题是图像没有使用 VK_IMAGE_USAGE_STORAGE_BIT

交换链的创建是通过 ovr_CreateTextureSwapChainVk 完成的,它需要一个标志 BindFlags。我添加了标志 ovrTextureBind_DX_UnorderedAccess,但图像的用法仍然不正确。

解决方法

问题是图像没有使用VK_IMAGE_USAGE_STORAGE_BIT

然后你不能直接用计算着色器写入交换链图像。

提供交换链图像的显示引擎有权决定您可以和不可以使用它们的方式。唯一需要的交互方法是能够将它们用作颜色渲染目标; 其他一切都是可选的。

因此,您必须以另一种方式执行此操作,例如写入中间图像并将其复制/渲染到交换链图像。