VK_QCOM_render_pass_shader_resolve
Other Extension Metadata
Last Modified Date
2019-11-07
IP Status
No known IP claims.
Interactions and External Dependencies
None.
Contributors
- Srihari Babu Alla, Qualcomm
- Bill Licea-Kane, Qualcomm
- Jeff Leger, Qualcomm
Description
This extension allows a shader resolve to replace fixed-function resolve.
Fixed-function resolve is limited in function to simple filters of multisample buffers to a single sample buffer.
Fixed-function resolve is more performance efficient and/or power efficient than shader resolve for such simple filters.
Shader resolve allows a shader writer to create complex, non-linear filtering of a multisample buffer in the last subpass of a subpass dependency chain.
This extension also provides a bit which can be used to enlarge a sample region dependency to a fragment region dependency, so that a framebuffer-region dependency can replace a framebuffer-global dependency in some cases.
New Enum Constants
VK_QCOM_RENDER_PASS_SHADER_RESOLVE_EXTENSION_NAME
VK_QCOM_RENDER_PASS_SHADER_RESOLVE_SPEC_VERSION
- Extending VkSubpassDescriptionFlagBits:
VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM
VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM
Issues
1) Should this extension be named render_pass_shader_resolve?
RESOLVED Yes.
This is part of suite of small extensions to render pass.
Following the style guide, instead of following VK_KHR_create_renderpass2.
2) Should the VK_SAMPLE_COUNT_1_BIT be required for each pColorAttachment and the DepthStencilAttachent?
RESOLVED No.
While this may not be a common use case, and while most fixed-function resolve hardware has this limitation, there is little reason to require a shader resolve to resolve to a single sample buffer.
3) Should a shader resolve subpass be the last subpass in a render pass?
RESOLVED Yes.
To be more specific, it should be the last subpass in a subpass dependency chain.
4) Do we need the VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM
bit?
RESOLVED Yes.
This applies when an input attachment’s sample count is equal to
rasterizationSamples
.
Further, if sampleShading
is enabled (explicitly or implicitly) then
minSampleShading
must equal 0.0.
However, this bit may be set on any subpass, it is not restricted to a shader resolve subpass.
Version History
- Revision 1, 2019-06-28 (wwlk)
- Initial draft
- Revision 2, 2019-11-06 (wwlk)
- General clean-up/spec updates
- Added issues
- Revision 3, 2019-11-07 (wwlk)
- Typos
- Additional issues
- Clarified that a shader resolve subpass is the last subpass in a subpass dependency chain
- Revision 4, 2020-01-06 (wwlk)
- Change resolution of Issue 1 (render_pass, not renderpass)