Modulevulkan-3.27GHC2021
Vulkan.Extensions.VK_QCOM_image_processing
Name
VK_QCOM_image_processing - device extension
VK_QCOM_image_processing
- Name String
VK_QCOM_image_processing
- Extension Type
Device extension
- Registered Extension Number
441
- Revision
1
- Ratification Status
Not ratified
- Extension and Version Dependencies
VK_KHR_format_feature_flags2
or
Vulkan Version 1.3
- API Interactions
- SPIR-V Dependencies
- Contact
- Extension Proposal
VK_QCOM_image_processing
Other Extension Metadata
- Last Modified Date
2022-07-08
- Interactions and External Dependencies
- Contributors
Jeff Leger, Qualcomm Technologies, Inc.
Ruihao Zhang, Qualcomm Technologies, Inc.
Description
GPUs are commonly used to process images for various applications from
3D graphics to UI and from composition to compute applications. Simple
scaling and filtering can be done with bilinear filtering, which comes
for free during texture sampling. However, as screen sizes get larger
and more use cases rely on GPU such as camera and video post-processing
needs, there is increasing demand for GPU to support higher order
filtering and other advanced image processing.
This extension introduces a new set of SPIR-V built-in functions for
image processing. It exposes the following new imaging operations
The OpImageSampleWeightedQCOM instruction takes 3 operands:
sampled image, weight image, and texture coordinates. The
instruction computes a weighted average of an MxN region of texels
in the sampled image, using a set of MxN weights in the /weight
image/.
The OpImageBoxFilterQCOM instruction takes 3 operands: /sampled
image, box size, and texture coordinates. Note that box size/
specifies a floating-point width and height in texels. The
instruction computes a weighted average of all texels in the
sampled image that are covered (either partially or fully) by a
box with the specified size and centered at the specified texture
coordinates.
The OpImageBlockMatchSADQCOM and OpImageBlockMatchSSDQCOM
instructions each takes 5 operands: target image, /target
coordinates, reference image, reference coordinates, and block
size/. Each instruction computes an error metric, that describes
whether a block of texels in the target image matches a
corresponding block of texels in the reference image. The error
metric is computed per-component. OpImageBlockMatchSADQCOM
computes “Sum Of Absolute Difference” and OpImageBlockMatchSSDQCOM
computes “Sum of Squared Difference”.
Each of the image processing instructions operate only on 2D images. The
instructions do not-support sampling of mipmap, multi-plane,
multi-layer, multi-sampled, or depth/stencil images. The instructions
can be used in any shader stage.
Implementations of this extension should support these operations
natively at the HW instruction level, offering potential performance
gains as well as ease of development.
New Structures
New Enum Constants
If
VK_KHR_format_feature_flags2
or
Vulkan Version 1.3
is supported:
Version History
See Also
No cross-references are available
Document Notes
For more information, see the
Vulkan Specification.
This page is a generated document. Fixes and changes should be made to
the generator scripts, not directly.