繁体   English   中英

在计算着色器中使用深度纹理

[英]Use depth texture in compute shader

我正在尝试在计算着色器中使用深度纹理。

深度纹理使用格式VK_FORMAT_D32_SFLOAT和用法VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT | VK_IMAGE_USAGE_STORAGE_BIT VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT | VK_IMAGE_USAGE_STORAGE_BIT

问题是似乎不支持这种参数组合,我有这个警告: vkCreateImageView(): pCreateInfo->format VK_FORMAT_D32_SFLOAT with tiling VK_IMAGE_TILING_OPTIMAL does not support usage that includes VK_IMAGE_USAGE_STORAGE_BIT

除此消息外,程序运行良好,计算着色器成功读取深度纹理。

这可以在计算着色器中读取深度纹理吗?

是的,可以在计算着色器中读取 32 位归一化深度图像。 只是不在您的实施中

Vulkan 允许实现拒绝图像格式和用法的某些组合。 他们可以完全拒绝某些格式,同时将其他格式限制为仅用于特定用途。 因此,除非您打算使用的格式+用法组合在 Vulkan 规范的所需功能列表中,否则您必须查询对它的支持。

Vulkan 不要求实现允许您使用D32图像作为存储图像。 因此,您必须检查特定实现是否提供此功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM