转换层扩展
有一类扩展的创建仅仅是为了允许转换层以高效的方式映射到 Vulkan。
这包括复制驱动程序难以高效实现的旧版行为。此功能不被视为前瞻性,并且不有望升级为 KHR 扩展或 Vulkan 核心。
除非转换需要此功能,否则强烈建议开发人员使用替代技术来使用 GPU 实现相同的功能。
VK_EXT_custom_border_color
Vulkan 在核心规范中为 VkSampler
对象提供了透明黑色、不透明黑色和不透明白色 VkBorderColor
。OpenGL 和 D3D 都可选择将采样器边框设置为自定义颜色。
VK_EXT_border_color_swizzle
在发布 VK_EXT_custom_border_color
之后,发现某些实现在将使用自定义边框颜色的采样器与组件映射不是恒等映射的图像视图组合时,会出现未定义的行为。
VK_EXT_depth_clip_enable
深度剪切启用功能的指定与 D3D11 和 Vulkan 不同。D3D11 具有 DepthClipEnable (D3D12_RASTERIZER_DESC),而不是 VkPipelineRasterizationStateCreateInfo::depthClampEnable
,它仅影响光栅化之前深度值的视口剪切,而不影响 D3D11 图形管线输出合并阶段始终发生的深度钳制。
VK_EXT_depth_clip_control
深度剪切控制功能允许应用程序在 NDC 中使用 OpenGL 深度范围。在 OpenGL 中,它是 [-1, 1]
,而 Vulkan 的默认值为 [0, 1]
。OpenGL 通过 ARB_clip_control 扩展支持剪切控制。
更多信息请参见深度章节
VK_EXT_transform_feedback
Vulkan 中可以通过计算着色器完成转换反馈所需的一切。还有一个很好的 Jason Ekstrand 的博客,内容是关于为什么转换反馈很糟糕并且应该避免。