All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.lwjgl.vulkan.EXTConservativeRasterization Maven / Gradle / Ivy

Go to download

A new generation graphics and compute API that provides high-efficiency, cross-platform access to modern GPUs used in a wide variety of devices from PCs and consoles to mobile phones and embedded platforms.

There is a newer version: 3.3.4
Show newest version
/*
 * Copyright LWJGL. All rights reserved.
 * License terms: https://www.lwjgl.org/license
 * MACHINE GENERATED FILE, DO NOT EDIT
 */
package org.lwjgl.vulkan;

/**
 * This extension adds a new rasterization mode called conservative rasterization. There are two modes of conservative rasterization; overestimation and underestimation.
 * 
 * 

When overestimation is enabled, if any part of the primitive, including its edges, covers any part of the rectangular pixel area, including its sides, then a fragment is generated with all coverage samples turned on. This extension allows for some variation in implementations by accounting for differences in overestimation, where the generating primitive size is increased at each of its edges by some sub-pixel amount to further increase conservative pixel coverage. Implementations can allow the application to specify an extra overestimation beyond the base overestimation the implementation already does. It also allows implementations to either cull degenerate primitives or rasterize them.

* *

When underestimation is enabled, fragments are only generated if the rectangular pixel area is fully covered by the generating primitive. If supported by the implementation, when a pixel rectangle is fully covered the fragment shader input variable builtin called FullyCoveredEXT is set to true. The shader variable works in either overestimation or underestimation mode.

* *

Implementations can process degenerate triangles and lines by either discarding them or generating conservative fragments for them. Degenerate triangles are those that end up with zero area after the rasterizer quantizes them to the fixed-point pixel grid. Degenerate lines are those with zero length after quantization.

* *
VK_EXT_conservative_rasterization
* *
*
Name String
*
{@code VK_EXT_conservative_rasterization}
*
Extension Type
*
Device extension
*
Registered Extension Number
*
102
*
Revision
*
1
*
Extension and Version Dependencies
*
    *
  • Requires Vulkan 1.0
  • *
  • Requires {@link KHRGetPhysicalDeviceProperties2 VK_KHR_get_physical_device_properties2}
  • *
*
Contact
*
*
* *
Other Extension Metadata
* *
*
Last Modified Date
*
2020-06-09
*
Interactions and External Dependencies
*
    *
  • This extension requires {@code SPV_EXT_fragment_fully_covered} if the {@link VkPhysicalDeviceConservativeRasterizationPropertiesEXT}{@code ::fullyCoveredFragmentShaderInputVariable} feature is used.
  • *
  • This extension requires {@code SPV_KHR_post_depth_coverage}if the {@link VkPhysicalDeviceConservativeRasterizationPropertiesEXT}{@code ::conservativeRasterizationPostDepthCoverage} feature is used.
  • *
  • This extension provides API support for {@code GL_NV_conservative_raster_underestimation} if the {@link VkPhysicalDeviceConservativeRasterizationPropertiesEXT}{@code ::fullyCoveredFragmentShaderInputVariable} feature is used.
  • *
*
Contributors
*
    *
  • Daniel Koch, NVIDIA
  • *
  • Daniel Rakos, AMD
  • *
  • Jeff Bolz, NVIDIA
  • *
  • Slawomir Grajewski, Intel
  • *
  • Stu Smith, Imagination Technologies
  • *
*
*/ public final class EXTConservativeRasterization { /** The extension specification version. */ public static final int VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION = 1; /** The extension name. */ public static final String VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME = "VK_EXT_conservative_rasterization"; /** * Extends {@code VkStructureType}. * *
Enum values:
* *
    *
  • {@link #VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT}
  • *
  • {@link #VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT}
  • *
*/ public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000, VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001; /** * VkConservativeRasterizationModeEXT - Specify the conservative rasterization mode * *
Description
* *
    *
  • {@link #VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT} specifies that conservative rasterization is disabled and rasterization proceeds as normal.
  • *
  • {@link #VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT} specifies that conservative rasterization is enabled in overestimation mode.
  • *
  • {@link #VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT} specifies that conservative rasterization is enabled in underestimation mode.
  • *
* *
See Also
* *

{@link VkPipelineRasterizationConservativeStateCreateInfoEXT}

*/ public static final int VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0, VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1, VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2; private EXTConservativeRasterization() {} }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy