org.lwjgl.vulkan.KHRMaintenance2 Maven / Gradle / Ivy
Show all versions of lwjgl-vulkan Show documentation
/*
* Copyright LWJGL. All rights reserved.
* License terms: https://www.lwjgl.org/license
* MACHINE GENERATED FILE, DO NOT EDIT
*/
package org.lwjgl.vulkan;
/**
* {@code VK_KHR_maintenance2} adds a collection of minor features that were intentionally left out or overlooked from the original Vulkan 1.0 release.
*
* The new features are as follows:
*
*
* - Allow the application to specify which aspect of an input attachment might be read for a given subpass.
* - Allow implementations to express the clipping behavior of points.
* - Allow creating images with usage flags that may not be supported for the base image’s format, but are supported for image views of the image that have a different but compatible format.
* - Allow creating uncompressed image views of compressed images.
* - Allow the application to select between an upper-left and lower-left origin for the tessellation domain space.
* - Adds two new image layouts for depth stencil images to allow either the depth or stencil aspect to be read-only while the other aspect is writable.
*
*
* Input Attachment Specification
*
* Input attachment specification allows an application to specify which aspect of a multi-aspect image (e.g. a combined depth stencil format) will be accessed via a {@code subpassLoad} operation.
*
* On some implementations there may be a performance penalty if the implementation does not know (at {@link VK10#vkCreateRenderPass CreateRenderPass} time) which aspect(s) of multi-aspect images can be be accessed as input attachments.
*
* Input Attachment Specification Example
*
* Consider the case where a render pass has two subpasses and two attachments.
*
* Attachment 0 has the format {@link VK10#VK_FORMAT_D24_UNORM_S8_UINT FORMAT_D24_UNORM_S8_UINT}, attachment 1 has some color format.
*
* Subpass 0 writes to attachment 0, subpass 1 reads only the depth information from attachment 0 (using inputAttachmentRead) and writes to attachment 1.
*
*
* VkInputAttachmentAspectReferenceKHR references[] = {
* {
* .subpass = 1,
* .inputAttachment = 0,
* .aspectMask = VK_IMAGE_ASPECT_DEPTH_BIT
* }
* };
*
* VkRenderPassInputAttachmentAspectCreateInfoKHR specifyAspects = {
* .sType = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR,
* .pNext = NULL,
* .aspectReferenceCount = 1,
* .pAspectReferences = references
* };
*
*
* VkRenderPassCreateInfo createInfo = {
* ...
* .pNext = &specifyAspects,
* ...
* }
*
* vkCreateRenderPass(...);
*
*
* - Name String
* - {@code VK_KHR_maintenance2}
* - Extension Type
* - Device extension
* - Registered Extension Number
* - 118
* - Revision
* - 1
* - Extension and Version Dependencies
*
* - Requires Vulkan 1.0
*
* - Contact
*
* - Michael Worcester @michaelworcester
*
* - Last Modified Date
* - 2017-04-28
* - Contributors
*
* - Michael Worcester, Imagination Technologies
* - Stuart Smith, Imagination Technologies
* - Jeff Bolz, NVIDIA
* - Daniel Koch, NVIDIA
* - Jan-Harald Fredriksen, ARM
* - Daniel Rakos, AMD
* - Neil Henning, Codeplay
* - Piers Daniell, NVIDIA
*
*
*/
public final class KHRMaintenance2 {
/** The extension specification version. */
public static final int VK_KHR_MAINTENANCE2_SPEC_VERSION = 1;
/** The extension name. */
public static final String VK_KHR_MAINTENANCE2_EXTENSION_NAME = "VK_KHR_maintenance2";
/**
* Extends {@code VkImageCreateFlagBits}.
*
* Enum values:
*
*
* - {@link #VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR}
* - {@link #VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR}
*
*/
public static final int
VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = 0x80,
VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = 0x100;
/**
* Extends {@code VkStructureType}.
*
* Enum values:
*
*
* - {@link #VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR}
* - {@link #VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR}
* - {@link #VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR}
* - {@link #VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR}
*
*/
public static final int
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = 1000117000,
VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = 1000117001,
VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = 1000117002,
VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = 1000117003;
/**
* Extends {@code VkImageLayout}.
*
* Enum values:
*
*
* - {@link #VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR}
* - {@link #VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR}
*
*/
public static final int
VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = 1000117000,
VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = 1000117001;
/**
* VkPointClippingBehaviorKHR - Enum specifying the point clipping behaviour
*
* Description
*
*
* - {@link #VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR} specifies that the primitive is discarded if the vertex lies outside any clip plane, including the planes bounding the view volume.
* - {@link #VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR} specifies that the primitive is discarded only if the vertex lies outside any user clip plane.
*
*
* See Also
*
* {@link VkPhysicalDevicePointClippingPropertiesKHR}
*/
public static final int
VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = 0,
VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = 1;
/**
* VkTessellationDomainOriginKHR - Enum describing tessellation domain origin
*
* Description
*
*
* - {@link #VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR} indicates that the origin of the domain space is in the upper left corner, as shown in figure Domain parameterization for tessellation primitive modes (upper-left origin).
* - {@link #VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR} indicates that the origin of the domain space is in the lower left corner, as shown in figure Domain parameterization for tessellation primitive modes (lower-left origin).
*
*
* This enum affects how the {@code VertexOrderCw} and {@code VertexOrderCcw} tessellation execution modes are interpreted, since the winding is defined relative to the orientation of the domain.
*
* See Also
*
* {@link VkPipelineTessellationDomainOriginStateCreateInfoKHR}
*/
public static final int
VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = 0,
VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = 1;
private KHRMaintenance2() {}
}