VK_QCOM_filter_cubic_clamp(3)

# VK_QCOM_filter_cubic_clamp(3) Manual Page

## Name

VK_QCOM_filter_cubic_clamp - device extension

Loading… please wait.

## Registered Extension Number

522

## Revision

1

## Ratification Status

Not ratified

## Extension and Version Dependencies

VK_EXT_filter_cubic
and
Version 1.2
or
VK_EXT_sampler_filter_minmax

## Contact

- Jeff Leger jackohound

## Other Extension Metadata

Last Modified Date

  2023-08-02

Contributors

  - Jeff Leger, Qualcomm Technologies, Inc.

## Description

This extension extends cubic filtering by adding the ability to enable an anti-ringing clamp. Cubic filtering samples from a 4x4 region of texels and computes a cubic weighted average of the region. In some cases, the resulting value is outside the range of any of the texels in the 4x4 region. This is sometimes referred to as “filter overshoot” or “filter ringing” and can occur when there is a sharp discontinuity in the 4x4 region being filtered. For some use cases this “ringing” can produces unacceptable artifacts.

The solution to the ringing problem is to clamp the post-cubic-filtered value to be within the max and min of texel values in the 4x4 region. While such “range clamping” can be performed in shader code, the additional texture fetches and clamping ALU operations can be costly.

Certain Adreno GPUs are able to perform the range clamp in the texture unit during cubic filtering at significant performance/power savings versus a shader-based clamping approach. This extension exposes such hardware functionality.

This extension extends VkSamplerReductionMode, adding `VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM` which enables the range clamp operation.

## New Structures

- Extending VkPhysicalDeviceFeatures2, VkDeviceCreateInfo:

  - VkPhysicalDeviceCubicClampFeaturesQCOM

## New Enum Constants

- `VK_QCOM_FILTER_CUBIC_CLAMP_EXTENSION_NAME`

- `VK_QCOM_FILTER_CUBIC_CLAMP_SPEC_VERSION`

- Extending VkSamplerReductionMode:

  - `VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM`

- Extending VkStructureType:

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM`

## Version History

- Revision 1, 2023-08-02 (jleger)

  - Initial version

## See Also

VkPhysicalDeviceCubicClampFeaturesQCOM

## 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.

## Copyright

Copyright 2014-2023 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0