| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Vulkan.Extensions.VK_QCOM_image_processing
Description
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
- Extension and Version Dependencies
- Requires support for Vulkan 1.0
- Requires
VK_KHR_format_feature_flags2to be enabled for any device-level functionality
- Contact
- Extension Proposal
- VK_QCOM_image_processing
Other Extension Metadata
- Last Modified Date
- 2022-07-08
- Interactions and External Dependencies
- This extension requires SPV_QCOM_image_processing
- This extension provides API support for GL_QCOM_image_processing
- 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
OpImageSampleWeightedQCOMinstruction 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
OpImageBoxFilterQCOMinstruction 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
OpImageBlockMatchSADQCOMandOpImageBlockMatchSSDQCOMinstructions 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.OpImageBlockMatchSADQCOMcomputes "Sum Of Absolute Difference" andOpImageBlockMatchSSDQCOMcomputes "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 this extension should support these operations natively at the HW instruction level, offering potential performance gains as well as ease of development.
New Structures
Extending
PhysicalDeviceFeatures2,DeviceCreateInfo:Extending
PhysicalDeviceProperties2:
New Enum Constants
QCOM_IMAGE_PROCESSING_SPEC_VERSIONExtending
DescriptorType:Extending
ImageUsageFlagBits:Extending
SamplerCreateFlagBits:Extending
StructureType:
If VK_KHR_format_feature_flags2 is supported:
Extending
FormatFeatureFlagBits2:
Version History
- Revision 1, 2022-07-08 (Jeff Leger)
See Also
ImageViewSampleWeightCreateInfoQCOM,
PhysicalDeviceImageProcessingFeaturesQCOM,
PhysicalDeviceImageProcessingPropertiesQCOM
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.
Synopsis
- data ImageViewSampleWeightCreateInfoQCOM = ImageViewSampleWeightCreateInfoQCOM {}
- data PhysicalDeviceImageProcessingFeaturesQCOM = PhysicalDeviceImageProcessingFeaturesQCOM {}
- data PhysicalDeviceImageProcessingPropertiesQCOM = PhysicalDeviceImageProcessingPropertiesQCOM {}
- type QCOM_IMAGE_PROCESSING_SPEC_VERSION = 1
- pattern QCOM_IMAGE_PROCESSING_SPEC_VERSION :: forall a. Integral a => a
- type QCOM_IMAGE_PROCESSING_EXTENSION_NAME = "VK_QCOM_image_processing"
- pattern QCOM_IMAGE_PROCESSING_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
Documentation
data ImageViewSampleWeightCreateInfoQCOM Source #
VkImageViewSampleWeightCreateInfoQCOM - Structure describing weight sampling parameters for image view
Description
The filterCenter specifies the origin or center of the filter kernel,
as described in
Weight Sampling Operation.
The numPhases describes the number of sub-pixel filter phases as
described in
Weight Sampling Phases.
Valid Usage (Implicit)
See Also
Constructors
| ImageViewSampleWeightCreateInfoQCOM | |
Fields
| |
Instances
data PhysicalDeviceImageProcessingFeaturesQCOM Source #
VkPhysicalDeviceImageProcessingFeaturesQCOM - Structure describing image processing features that can be supported by an implementation
Members
This structure describes the following features:
Description
If the PhysicalDeviceImageProcessingFeaturesQCOM structure is included
in the pNext chain of the
PhysicalDeviceFeatures2
structure passed to
getPhysicalDeviceFeatures2,
it is filled in to indicate whether each corresponding feature is
supported. PhysicalDeviceImageProcessingFeaturesQCOM can also be
used in the pNext chain of DeviceCreateInfo to
selectively enable these features.
Valid Usage (Implicit)
See Also
Constructors
| PhysicalDeviceImageProcessingFeaturesQCOM | |
Fields | |
Instances
data PhysicalDeviceImageProcessingPropertiesQCOM Source #
VkPhysicalDeviceImageProcessingPropertiesQCOM - Structure containing image processing properties
Members
sTypeis the type of this structure.
pNextisNULLor a pointer to a structure extending this structure.maxWeightFilterPhasesis the maximum value that can be specified forImageViewSampleWeightCreateInfoQCOM::numPhases. in weight image sampling operations.maxWeightFilterDimensionis aExtent2Ddescribing the largest dimensions (widthandheight) that can be specified forImageViewSampleWeightCreateInfoQCOM::filterSize.maxBlockMatchRegionis aExtent2Ddescribing the largest dimensions (widthandheight) that can be specified forblockSizein block matching operations.maxBoxFilterBlockSizeis aExtent2Ddescribing the the maximum dimensions (widthandheight) that can be specified forblocksizein box filter sampling operations.
Description
If the PhysicalDeviceImageProcessingPropertiesQCOM structure is
included in the pNext chain of the
PhysicalDeviceProperties2
structure passed to
getPhysicalDeviceProperties2,
it is filled in with each corresponding implementation-dependent
property.
These are properties of the image processing information of a physical device.
Valid Usage (Implicit)
See Also
Constructors
| PhysicalDeviceImageProcessingPropertiesQCOM | |
Instances
type QCOM_IMAGE_PROCESSING_SPEC_VERSION = 1 Source #
pattern QCOM_IMAGE_PROCESSING_SPEC_VERSION :: forall a. Integral a => a Source #
type QCOM_IMAGE_PROCESSING_EXTENSION_NAME = "VK_QCOM_image_processing" Source #
pattern QCOM_IMAGE_PROCESSING_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a Source #