Top Description Fields Constructors Methods
org.lwjgl.opengl

public Class NVShadingRateImage

extends Object
Class Inheritance
Imports
java.nio.*, org.lwjgl.system.*

Native bindings to the NV_shading_rate_image extension.

By default, OpenGL runs a fragment shader once for each pixel covered by a primitive being rasterized. When using multisampling, the outputs of that fragment shader are broadcast to each covered sample of the fragment's pixel. When using multisampling, applications can also request that the fragment shader be run once per color sample (when using the "sample" qualifier on one or more active fragment shader inputs), or run a fixed number of times per pixel using SAMPLE_SHADING enable and the MinSampleShading frequency value. In all of these approaches, the number of fragment shader invocations per pixel is fixed, based on API state.

This extension allows applications to bind and enable a shading rate image that can be used to vary the number of fragment shader invocations across the framebuffer. This can be useful for applications like eye tracking for virtual reality, where the portion of the framebuffer that the user is looking at directly can be processed at high frequency, while distant corners of the image can be processed at lower frequency. The shading rate image is an immutable-format two-dimensional or two-dimensional array texture that uses a format of R8UI. Each texel represents a fixed-size rectangle in the framebuffer, covering 16x16 pixels in the initial implementation of this extension. When rasterizing a primitive covering one of these rectangles, the OpenGL implementation reads the texel in the bound shading rate image and looks up the fetched value in a palette of shading rates. The shading rate used can vary from (finest) 16 fragment shader invocations per pixel to (coarsest) one fragment shader invocation for each 4x4 block of pixels.

When this extension is advertised by an OpenGL implementation, the implementation must also support the GLSL extension "GL_NV_shading_rate_image" (documented separately), which provides new built-in variables that allow fragment shaders to determine the effective shading rate used for each fragment. Additionally, the GLSL extension also provides new layout qualifiers allowing the interlock functionality provided by ARB_fragment_shader_interlock to guarantee mutual exclusion across an entire fragment when the shading rate specifies multiple pixels per fragment shader invocation.

Note that this extension requires the use of a framebuffer object; the shading rate image and related state are ignored when rendering to the default framebuffer.

Requires OpenGL 4.5 and NV_framebuffer_mixed_samples.

Field Summary

Modifier and TypeField and Description
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
GL_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV

Accepted in the rates parameter of ShadingRateImagePaletteNV and the rate parameter of ShadingRateSampleOrderCustomNV and GetShadingRateSampleLocationivNV; returned in the rate parameter of GetShadingRateImagePaletteNV.

public static final int
GL_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV

Accepted in the rates parameter of ShadingRateImagePaletteNV and the rate parameter of ShadingRateSampleOrderCustomNV and GetShadingRateSampleLocationivNV; returned in the rate parameter of GetShadingRateImagePaletteNV.

public static final int
GL_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV

Accepted in the rates parameter of ShadingRateImagePaletteNV and the rate parameter of ShadingRateSampleOrderCustomNV and GetShadingRateSampleLocationivNV; returned in the rate parameter of GetShadingRateImagePaletteNV.

public static final int
GL_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV

Accepted in the rates parameter of ShadingRateImagePaletteNV and the rate parameter of ShadingRateSampleOrderCustomNV and GetShadingRateSampleLocationivNV; returned in the rate parameter of GetShadingRateImagePaletteNV.

public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
GL_SHADING_RATE_NO_INVOCATIONS_NV

Accepted in the rates parameter of ShadingRateImagePaletteNV and the rate parameter of ShadingRateSampleOrderCustomNV and GetShadingRateSampleLocationivNV; returned in the rate parameter of GetShadingRateImagePaletteNV.

public static final int
public static final int
public static final int

Constructor Summary

AccessConstructor and Description
protected

Method Summary

Modifier and TypeMethod and Description
public static native void
public static void
glGetShadingRateImagePaletteNV(int viewport, int entry, IntBuffer rate)

public static void
glGetShadingRateImagePaletteNV(int viewport, int entry, int[] rate)

Array version of: GetShadingRateImagePaletteNV

public static void
glGetShadingRateSampleLocationivNV(int rate, int samples, int index, IntBuffer location)

public static void
glGetShadingRateSampleLocationivNV(int rate, int samples, int index, int[] location)

Array version of: GetShadingRateSampleLocationivNV

public static native void
glShadingRateImageBarrierNV(boolean synchronize)

public static void
glShadingRateImagePaletteNV(int viewport, int first, IntBuffer rates)

public static void
glShadingRateImagePaletteNV(int viewport, int first, int[] rates)

Array version of: ShadingRateImagePaletteNV

public static void
glShadingRateSampleOrderCustomNV(int rate, int samples, IntBuffer locations)

public static void
glShadingRateSampleOrderCustomNV(int rate, int samples, int[] locations)

Array version of: ShadingRateSampleOrderCustomNV

public static native void
public static native void
nglGetShadingRateImagePaletteNV(int viewport, int entry, long rate)

public static native void
nglGetShadingRateSampleLocationivNV(int rate, int samples, int index, long location)

public static native void
nglShadingRateImagePaletteNV(int viewport, int first, int count, long rates)

public static native void
nglShadingRateSampleOrderCustomNV(int rate, int samples, long locations)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

GL_MAX_COARSE_FRAGMENT_SAMPLES_NVback to summary
public static final int GL_MAX_COARSE_FRAGMENT_SAMPLES_NV

Accepted by the pname parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv.

GL_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NVback to summary
public static final int GL_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV

Accepted in the rates parameter of ShadingRateImagePaletteNV and the rate parameter of ShadingRateSampleOrderCustomNV and GetShadingRateSampleLocationivNV; returned in the rate parameter of GetShadingRateImagePaletteNV.

GL_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NVback to summary
public static final int GL_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV

Accepted in the rates parameter of ShadingRateImagePaletteNV and the rate parameter of ShadingRateSampleOrderCustomNV and GetShadingRateSampleLocationivNV; returned in the rate parameter of GetShadingRateImagePaletteNV.

GL_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NVback to summary
public static final int GL_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV

Accepted in the rates parameter of ShadingRateImagePaletteNV and the rate parameter of ShadingRateSampleOrderCustomNV and GetShadingRateSampleLocationivNV; returned in the rate parameter of GetShadingRateImagePaletteNV.

GL_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NVback to summary
public static final int GL_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV

Accepted in the rates parameter of ShadingRateImagePaletteNV and the rate parameter of ShadingRateSampleOrderCustomNV and GetShadingRateSampleLocationivNV; returned in the rate parameter of GetShadingRateImagePaletteNV.

GL_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NVback to summary
public static final int GL_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV

Accepted in the rates parameter of ShadingRateImagePaletteNV and the rate parameter of ShadingRateSampleOrderCustomNV and GetShadingRateSampleLocationivNV; returned in the rate parameter of GetShadingRateImagePaletteNV.

GL_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NVback to summary
public static final int GL_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV

Accepted in the rates parameter of ShadingRateImagePaletteNV and the rate parameter of ShadingRateSampleOrderCustomNV and GetShadingRateSampleLocationivNV; returned in the rate parameter of GetShadingRateImagePaletteNV.

GL_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NVback to summary
public static final int GL_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV

Accepted in the rates parameter of ShadingRateImagePaletteNV and the rate parameter of ShadingRateSampleOrderCustomNV and GetShadingRateSampleLocationivNV; returned in the rate parameter of GetShadingRateImagePaletteNV.

GL_SHADING_RATE_1_INVOCATION_PER_PIXEL_NVback to summary
public static final int GL_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV

Accepted in the rates parameter of ShadingRateImagePaletteNV and the rate parameter of ShadingRateSampleOrderCustomNV and GetShadingRateSampleLocationivNV; returned in the rate parameter of GetShadingRateImagePaletteNV.

GL_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NVback to summary
public static final int GL_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV

Accepted in the rates parameter of ShadingRateImagePaletteNV and the rate parameter of ShadingRateSampleOrderCustomNV and GetShadingRateSampleLocationivNV; returned in the rate parameter of GetShadingRateImagePaletteNV.

GL_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NVback to summary
public static final int GL_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV

Accepted in the rates parameter of ShadingRateImagePaletteNV and the rate parameter of ShadingRateSampleOrderCustomNV and GetShadingRateSampleLocationivNV; returned in the rate parameter of GetShadingRateImagePaletteNV.

GL_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NVback to summary
public static final int GL_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV

Accepted in the rates parameter of ShadingRateImagePaletteNV and the rate parameter of ShadingRateSampleOrderCustomNV and GetShadingRateSampleLocationivNV; returned in the rate parameter of GetShadingRateImagePaletteNV.

GL_SHADING_RATE_IMAGE_BINDING_NVback to summary
public static final int GL_SHADING_RATE_IMAGE_BINDING_NV

Accepted by the pname parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv.

GL_SHADING_RATE_IMAGE_NVback to summary
public static final int GL_SHADING_RATE_IMAGE_NV

Accepted by the cap parameter of Enable, Disable, and IsEnabled, by the target parameter of Enablei, Disablei, IsEnabledi, EnableIndexedEXT, DisableIndexedEXT, and IsEnabledIndexedEXT, and by the pname parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, GetDoublev, GetDoubleIndexedvEXT, GetBooleani_v, GetIntegeri_v, GetInteger64i_v, GetFloati_v, GetDoublei_v, GetBooleanIndexedvEXT, GetIntegerIndexedvEXT, and GetFloatIndexedvEXT.

GL_SHADING_RATE_IMAGE_PALETTE_SIZE_NVback to summary
public static final int GL_SHADING_RATE_IMAGE_PALETTE_SIZE_NV

Accepted by the pname parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv.

GL_SHADING_RATE_IMAGE_TEXEL_HEIGHT_NVback to summary
public static final int GL_SHADING_RATE_IMAGE_TEXEL_HEIGHT_NV

Accepted by the pname parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv.

GL_SHADING_RATE_IMAGE_TEXEL_WIDTH_NVback to summary
public static final int GL_SHADING_RATE_IMAGE_TEXEL_WIDTH_NV

Accepted by the pname parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv.

GL_SHADING_RATE_NO_INVOCATIONS_NVback to summary
public static final int GL_SHADING_RATE_NO_INVOCATIONS_NV

Accepted in the rates parameter of ShadingRateImagePaletteNV and the rate parameter of ShadingRateSampleOrderCustomNV and GetShadingRateSampleLocationivNV; returned in the rate parameter of GetShadingRateImagePaletteNV.

GL_SHADING_RATE_SAMPLE_ORDER_DEFAULT_NVback to summary
public static final int GL_SHADING_RATE_SAMPLE_ORDER_DEFAULT_NV

Accepted by the order parameter of ShadingRateSampleOrderNV.

GL_SHADING_RATE_SAMPLE_ORDER_PIXEL_MAJOR_NVback to summary
public static final int GL_SHADING_RATE_SAMPLE_ORDER_PIXEL_MAJOR_NV

Accepted by the order parameter of ShadingRateSampleOrderNV.

GL_SHADING_RATE_SAMPLE_ORDER_SAMPLE_MAJOR_NVback to summary
public static final int GL_SHADING_RATE_SAMPLE_ORDER_SAMPLE_MAJOR_NV

Accepted by the order parameter of ShadingRateSampleOrderNV.

Constructor Detail

NVShadingRateImageback to summary
protected NVShadingRateImage()

Method Detail

glBindShadingRateImageNVback to summary
public static native void glBindShadingRateImageNV(int texture)
glGetShadingRateImagePaletteNVback to summary
public static void glGetShadingRateImagePaletteNV(int viewport, int entry, IntBuffer rate)
glGetShadingRateImagePaletteNVback to summary
public static void glGetShadingRateImagePaletteNV(int viewport, int entry, int[] rate)

Array version of: GetShadingRateImagePaletteNV

glGetShadingRateSampleLocationivNVback to summary
public static void glGetShadingRateSampleLocationivNV(int rate, int samples, int index, IntBuffer location)
glGetShadingRateSampleLocationivNVback to summary
public static void glGetShadingRateSampleLocationivNV(int rate, int samples, int index, int[] location)

Array version of: GetShadingRateSampleLocationivNV

glShadingRateImageBarrierNVback to summary
public static native void glShadingRateImageBarrierNV(boolean synchronize)
glShadingRateImagePaletteNVback to summary
public static void glShadingRateImagePaletteNV(int viewport, int first, IntBuffer rates)
glShadingRateImagePaletteNVback to summary
public static void glShadingRateImagePaletteNV(int viewport, int first, int[] rates)

Array version of: ShadingRateImagePaletteNV

glShadingRateSampleOrderCustomNVback to summary
public static void glShadingRateSampleOrderCustomNV(int rate, int samples, IntBuffer locations)
glShadingRateSampleOrderCustomNVback to summary
public static void glShadingRateSampleOrderCustomNV(int rate, int samples, int[] locations)

Array version of: ShadingRateSampleOrderCustomNV

glShadingRateSampleOrderNVback to summary
public static native void glShadingRateSampleOrderNV(int order)
nglGetShadingRateImagePaletteNVback to summary
public static native void nglGetShadingRateImagePaletteNV(int viewport, int entry, long rate)
nglGetShadingRateSampleLocationivNVback to summary
public static native void nglGetShadingRateSampleLocationivNV(int rate, int samples, int index, long location)
nglShadingRateImagePaletteNVback to summary
public static native void nglShadingRateImagePaletteNV(int viewport, int first, int count, long rates)
nglShadingRateSampleOrderCustomNVback to summary
public static native void nglShadingRateSampleOrderCustomNV(int rate, int samples, long locations)