vulkan-3.26.1: Bindings to the Vulkan graphics API.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Vulkan.Extensions.VK_QCOM_filter_cubic_clamp

Description

Name

VK_QCOM_filter_cubic_clamp - device extension

VK_QCOM_filter_cubic_clamp

Name String
VK_QCOM_filter_cubic_clamp
Extension Type
Device extension
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

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 SamplerReductionMode, adding SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM which enables the range clamp operation.

New Structures

New Enum Constants

Version History

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

    • Initial version

See Also

PhysicalDeviceCubicClampFeaturesQCOM

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

Documentation

data PhysicalDeviceCubicClampFeaturesQCOM Source #

VkPhysicalDeviceCubicClampFeaturesQCOM - Structure describing cubic clamp features that can be supported by an implementation

Members

This structure describes the following features:

Description

If the PhysicalDeviceCubicClampFeaturesQCOM 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. PhysicalDeviceCubicClampFeaturesQCOM can also be used in the pNext chain of DeviceCreateInfo to selectively enable these features.

Valid Usage (Implicit)

See Also

VK_QCOM_filter_cubic_clamp, Bool32, StructureType

Constructors

PhysicalDeviceCubicClampFeaturesQCOM 

Fields

Instances

Instances details
Storable PhysicalDeviceCubicClampFeaturesQCOM Source # 
Instance details

Defined in Vulkan.Extensions.VK_QCOM_filter_cubic_clamp

Show PhysicalDeviceCubicClampFeaturesQCOM Source # 
Instance details

Defined in Vulkan.Extensions.VK_QCOM_filter_cubic_clamp

Eq PhysicalDeviceCubicClampFeaturesQCOM Source # 
Instance details

Defined in Vulkan.Extensions.VK_QCOM_filter_cubic_clamp

FromCStruct PhysicalDeviceCubicClampFeaturesQCOM Source # 
Instance details

Defined in Vulkan.Extensions.VK_QCOM_filter_cubic_clamp

ToCStruct PhysicalDeviceCubicClampFeaturesQCOM Source # 
Instance details

Defined in Vulkan.Extensions.VK_QCOM_filter_cubic_clamp

Zero PhysicalDeviceCubicClampFeaturesQCOM Source # 
Instance details

Defined in Vulkan.Extensions.VK_QCOM_filter_cubic_clamp

type QCOM_FILTER_CUBIC_CLAMP_EXTENSION_NAME = "VK_QCOM_filter_cubic_clamp" Source #

pattern QCOM_FILTER_CUBIC_CLAMP_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a Source #