This extension introduces a new set of SPIR-V built-in functions for image processing. It exposes the following new imaging operations
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.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.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 this extension should support these operations natively at the HW instruction level, offering potential performance gains as well as ease of development.
VK_QCOM_image_processingVK_KHR_format_feature_flags2SPV_QCOM_image_processingGL_QCOM_image_processing| Modifier and Type | Field and Description |
|---|---|
| public static final int | VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM
Extends |
| public static final int | VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM
Extends |
| public static final long | VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
Extends |
| public static final long | VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM
Extends |
| public static final long | VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM
Extends |
| public static final long | VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM
Extends |
| public static final int | VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM
Extends |
| public static final int | VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM
Extends |
| public static final String | VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME
The extension name. |
| public static final int | VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION
The extension specification version. |
| public static final int | VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
Extends |
| public static final int | VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM
Extends |
| public static final int | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM
Extends |
| public static final int | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM
Extends |
| Access | Constructor and Description |
|---|---|
| private |
| VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM | back to summary |
|---|---|
| public static final int VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM Extends Enum values: | |
| VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM | back to summary |
|---|---|
| public static final int VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM Extends Enum values: | |
| VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM | back to summary |
|---|---|
| public static final long VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM Extends Enum values: | |
| VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM | back to summary |
|---|---|
| public static final long VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM Extends Enum values: | |
| VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM | back to summary |
|---|---|
| public static final long VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM Extends Enum values: | |
| VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM | back to summary |
|---|---|
| public static final long VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM Extends Enum values: | |
| VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM | back to summary |
|---|---|
| public static final int VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM Extends Enum values: | |
| VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM | back to summary |
|---|---|
| public static final int VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM Extends Enum values: | |
| VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME | back to summary |
|---|---|
| public static final String VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME The extension name. | |
| VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION | back to summary |
|---|---|
| public static final int VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION The extension specification version. | |
| VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM | back to summary |
|---|---|
| public static final int VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM Extends | |
| VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM | back to summary |
|---|---|
| public static final int VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM Extends Enum values: | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM | back to summary |
|---|---|
| public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM Extends Enum values: | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM | back to summary |
|---|---|
| public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM Extends Enum values: | |
| QCOMImageProcessing | back to summary |
|---|---|
| private QCOMImageProcessing() | |