blob: 12f57274c4e6db43e83619ce18b042975cee4099 [file] [log] [blame]
// Copyright (c) 2019-2020 Qualcomm Technologies, Inc.
//
// SPDX-License-Identifier: CC-BY-4.0
include::{generated}/meta/{refprefix}VK_QCOM_render_pass_shader_resolve.txt[]
=== 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.
include::{generated}/interfaces/VK_QCOM_render_pass_shader_resolve.txt[]
=== 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 ename:VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM bit?
*RESOLVED* Yes.
This applies when an input attachment's sample count is equal to
pname:rasterizationSamples.
Further, if pname:sampleShading is enabled (explicitly or implicitly) then
pname: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_)