Safe Haskell | None |
---|---|
Language | Haskell2010 |
Name
VK_NV_corner_sampled_image - device extension
VK_NV_corner_sampled_image
- Name String
VK_NV_corner_sampled_image
- Extension Type
- Device extension
- Registered Extension Number
- 51
- Revision
- 2
- Extension and Version Dependencies
- Requires Vulkan 1.0
- Requires
VK_KHR_get_physical_device_properties2
- Contact
Other Extension Metadata
- Last Modified Date
- 2018-08-13
- Contributors
- Jeff Bolz, NVIDIA
- Pat Brown, NVIDIA
- Chris Lentini, NVIDIA
Description
This extension adds support for a new image organization, which this extension refers to as “corner-sampled” images. A corner-sampled image differs from a conventional image in the following ways:
- Texels are centered on integer coordinates. See Unnormalized Texel Coordinate Operations
- Normalized coordinates are scaled using coord × (dim - 1) rather than coord × dim, where dim is the size of one dimension of the image. See normalized texel coordinate transform.
- Partial derivatives are scaled using coord × (dim - 1) rather than coord × dim. See Scale Factor Operation.
- Calculation of the next higher lod size goes according to ⌈dim / 2⌉ rather than ⌊dim / 2⌋. See Image Miplevel Sizing.
- The minimum level size is 2x2 for 2D images and 2x2x2 for 3D images. See Image Miplevel Sizing.
This image organization is designed to facilitate a system like Ptex with separate textures for each face of a subdivision or polygon mesh. Placing sample locations at pixel corners allows applications to maintain continuity between adjacent patches by duplicating values along shared edges. Additionally, using the modified mipmapping logic along with texture dimensions of the form 2n+1 allows continuity across shared edges even if the adjacent patches use different level-of-detail values.
New Structures
New Enum Constants
NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION
Extending
ImageCreateFlagBits
:Extending
StructureType
:
Issues
What should this extension be named?
DISCUSSION: While naming this extension, we chose the most distinctive aspect of the image organization and referred to such images as “corner-sampled images”. As a result, we decided to name the extension NV_corner_sampled_image.
Do we need a format feature flag so formats can advertise if they support corner-sampling?
DISCUSSION: Currently NVIDIA supports this for all 2D and 3D formats, but not for cubemaps or depth-stencil formats. A format feature might be useful if other vendors would only support this on some formats.
Do integer texel coordinates have a different range for corner-sampled images?
RESOLVED: No, these are unchanged.
Do unnormalized sampler coordinates work with corner-sampled images? Are there any functional differences?
RESOLVED: Yes they work. Unnormalized coordinates are treated as already scaled for corner-sample usage.
Should we have a diagram in the “Image Operations” chapter demonstrating different texel sampling locations?
UNRESOLVED: Probaby, but later.
Version History
Revision 1, 2018-08-14 (Daniel Koch)
- Internal revisions
Revision 2, 2018-08-14 (Daniel Koch)
- ???
See Also
PhysicalDeviceCornerSampledImageFeaturesNV
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 PhysicalDeviceCornerSampledImageFeaturesNV = PhysicalDeviceCornerSampledImageFeaturesNV {}
- type NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION = 2
- pattern NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION :: forall a. Integral a => a
- type NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME = "VK_NV_corner_sampled_image"
- pattern NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
Documentation
data PhysicalDeviceCornerSampledImageFeaturesNV Source #
VkPhysicalDeviceCornerSampledImageFeaturesNV - Structure describing corner sampled image features that can be supported by an implementation
Members
The members of the PhysicalDeviceCornerSampledImageFeaturesNV
structure describe the following features:
Description
If the PhysicalDeviceCornerSampledImageFeaturesNV
structure is
included in the pNext
chain of
PhysicalDeviceFeatures2
,
it is filled with values indicating whether each feature is supported.
PhysicalDeviceCornerSampledImageFeaturesNV
can also be included in
the pNext
chain of DeviceCreateInfo
to enable
features.
Valid Usage (Implicit)
See Also
PhysicalDeviceCornerSampledImageFeaturesNV | |
|
Instances
type NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION = 2 Source #
pattern NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION :: forall a. Integral a => a Source #
type NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME = "VK_NV_corner_sampled_image" Source #
pattern NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a Source #