Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
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
- 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
QCOM_FILTER_CUBIC_CLAMP_SPEC_VERSION
Extending
SamplerReductionMode
:Extending
StructureType
:
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
- data PhysicalDeviceCubicClampFeaturesQCOM = PhysicalDeviceCubicClampFeaturesQCOM {}
- type QCOM_FILTER_CUBIC_CLAMP_SPEC_VERSION = 1
- pattern QCOM_FILTER_CUBIC_CLAMP_SPEC_VERSION :: forall a. Integral a => a
- type QCOM_FILTER_CUBIC_CLAMP_EXTENSION_NAME = "VK_QCOM_filter_cubic_clamp"
- pattern QCOM_FILTER_CUBIC_CLAMP_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
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
PhysicalDeviceCubicClampFeaturesQCOM | |
|
Instances
type QCOM_FILTER_CUBIC_CLAMP_SPEC_VERSION = 1 Source #
pattern QCOM_FILTER_CUBIC_CLAMP_SPEC_VERSION :: forall a. Integral a => a Source #
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 #