Top Description Fields Constructors Methods
org.lwjgl.opengl

public Class ARBGLSPIRV

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

Native bindings to the ARB_gl_spirv extension.

This is version 100 of the GL_ARB_gl_spirv extension.

This extension does two things:

  1. Allows a SPIR-V module to be specified as containing a programmable shader stage, rather than using GLSL, whatever the source language was used to create the SPIR-V module.
  2. Modifies GLSL to be a source language for creating SPIR-V modules for OpenGL consumption. Such GLSL can be used to create such SPIR-V modules, outside of the OpenGL runtime.

Requires OpenGL 3.3.

Field Summary

Modifier and TypeField and Description
public static final int
GL_SHADER_BINARY_FORMAT_SPIR_V_ARB

Accepted by the binaryformat parameter of ShaderBinary.

public static final int
GL_SPIR_V_BINARY_ARB

Accepted by the pname parameter of GetShaderiv.

Constructor Summary

AccessConstructor and Description
protected

Method Summary

Modifier and TypeMethod and Description
public static void
glSpecializeShaderARB(int
the name of a shader object containing unspecialized SPIR-V as created from a successful call to ShaderBinary to which a SPIR-V module was passed
shader
,
ByteBuffer
a pointer to a null-terminated UTF-8 string specifying the name of the entry point in the SPIR-V module to use for this shader
pEntryPoint
,
IntBuffer
is a pointer to an array of numSpecializationConstants unsigned integers, each holding the index of a specialization constant in the SPIR-V module whose value to set.

Specialization constants not referenced by pConstantIndex retain their default values as specified in the SPIR-V module.

pConstantIndex
,
IntBuffer
an entry in pConstantValue is used to set the value of the specialization constant indexed by the corresponding entry in pConstantIndex.

Although this array is of unsigned integer, each entry is bitcast to the appropriate type for the module, and therefore, floating-point constants may be set by including their IEEE-754 bit representation in the pConstantValue array.

pConstantValue
)

Specializes a shader created from a SPIR-V module.

public static void
glSpecializeShaderARB(int
the name of a shader object containing unspecialized SPIR-V as created from a successful call to ShaderBinary to which a SPIR-V module was passed
shader
,
CharSequence
a pointer to a null-terminated UTF-8 string specifying the name of the entry point in the SPIR-V module to use for this shader
pEntryPoint
,
IntBuffer
is a pointer to an array of numSpecializationConstants unsigned integers, each holding the index of a specialization constant in the SPIR-V module whose value to set.

Specialization constants not referenced by pConstantIndex retain their default values as specified in the SPIR-V module.

pConstantIndex
,
IntBuffer
an entry in pConstantValue is used to set the value of the specialization constant indexed by the corresponding entry in pConstantIndex.

Although this array is of unsigned integer, each entry is bitcast to the appropriate type for the module, and therefore, floating-point constants may be set by including their IEEE-754 bit representation in the pConstantValue array.

pConstantValue
)

Specializes a shader created from a SPIR-V module.

public static void
glSpecializeShaderARB(int shader, ByteBuffer pEntryPoint, int[] pConstantIndex, int[] pConstantValue)

Array version of: SpecializeShaderARB

public static void
glSpecializeShaderARB(int shader, CharSequence pEntryPoint, int[] pConstantIndex, int[] pConstantValue)

Array version of: SpecializeShaderARB

public static native void
nglSpecializeShaderARB(int shader, long pEntryPoint, int
the number of specialization constants whose values to set in this call
numSpecializationConstants
,
long pConstantIndex, long pConstantValue)

Unsafe version of: SpecializeShaderARB

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

GL_SHADER_BINARY_FORMAT_SPIR_V_ARBback to summary
public static final int GL_SHADER_BINARY_FORMAT_SPIR_V_ARB

Accepted by the binaryformat parameter of ShaderBinary.

GL_SPIR_V_BINARY_ARBback to summary
public static final int GL_SPIR_V_BINARY_ARB

Accepted by the pname parameter of GetShaderiv.

Constructor Detail

ARBGLSPIRVback to summary
protected ARBGLSPIRV()

Method Detail

glSpecializeShaderARBback to summary
public static void glSpecializeShaderARB(int shader, ByteBuffer pEntryPoint, IntBuffer pConstantIndex, IntBuffer pConstantValue)

Specializes a shader created from a SPIR-V module.

Shaders associated with SPIR-V modules must be specialized before they can be linked into a program object. It is not necessary to specialize the shader before it is attached to a program object. Once specialized, a shader may not be specialized again without first re-associating the original SPIR-V module with it, through ShaderBinary.

Specialization does two things:

  • Selects the name of the entry point, for that shader’s stage, from the SPIR-V module.
  • Sets the values of all, or a subset of, the specialization constants in the SPIRV module.

On successful shader specialization, the compile status for shader is set to TRUE. On failure, the compile status for shader is set to FALSE and additional information about the cause of the failure may be available in the shader compilation log.

Parameters
shader:int

the name of a shader object containing unspecialized SPIR-V as created from a successful call to ShaderBinary to which a SPIR-V module was passed

pEntryPoint:ByteBuffer

a pointer to a null-terminated UTF-8 string specifying the name of the entry point in the SPIR-V module to use for this shader

pConstantIndex:IntBuffer

is a pointer to an array of numSpecializationConstants unsigned integers, each holding the index of a specialization constant in the SPIR-V module whose value to set.

Specialization constants not referenced by pConstantIndex retain their default values as specified in the SPIR-V module.

pConstantValue:IntBuffer

an entry in pConstantValue is used to set the value of the specialization constant indexed by the corresponding entry in pConstantIndex.

Although this array is of unsigned integer, each entry is bitcast to the appropriate type for the module, and therefore, floating-point constants may be set by including their IEEE-754 bit representation in the pConstantValue array.

glSpecializeShaderARBback to summary
public static void glSpecializeShaderARB(int shader, CharSequence pEntryPoint, IntBuffer pConstantIndex, IntBuffer pConstantValue)

Specializes a shader created from a SPIR-V module.

Shaders associated with SPIR-V modules must be specialized before they can be linked into a program object. It is not necessary to specialize the shader before it is attached to a program object. Once specialized, a shader may not be specialized again without first re-associating the original SPIR-V module with it, through ShaderBinary.

Specialization does two things:

  • Selects the name of the entry point, for that shader’s stage, from the SPIR-V module.
  • Sets the values of all, or a subset of, the specialization constants in the SPIRV module.

On successful shader specialization, the compile status for shader is set to TRUE. On failure, the compile status for shader is set to FALSE and additional information about the cause of the failure may be available in the shader compilation log.

Parameters
shader:int

the name of a shader object containing unspecialized SPIR-V as created from a successful call to ShaderBinary to which a SPIR-V module was passed

pEntryPoint:CharSequence

a pointer to a null-terminated UTF-8 string specifying the name of the entry point in the SPIR-V module to use for this shader

pConstantIndex:IntBuffer

is a pointer to an array of numSpecializationConstants unsigned integers, each holding the index of a specialization constant in the SPIR-V module whose value to set.

Specialization constants not referenced by pConstantIndex retain their default values as specified in the SPIR-V module.

pConstantValue:IntBuffer

an entry in pConstantValue is used to set the value of the specialization constant indexed by the corresponding entry in pConstantIndex.

Although this array is of unsigned integer, each entry is bitcast to the appropriate type for the module, and therefore, floating-point constants may be set by including their IEEE-754 bit representation in the pConstantValue array.

glSpecializeShaderARBback to summary
public static void glSpecializeShaderARB(int shader, ByteBuffer pEntryPoint, int[] pConstantIndex, int[] pConstantValue)

Array version of: SpecializeShaderARB

glSpecializeShaderARBback to summary
public static void glSpecializeShaderARB(int shader, CharSequence pEntryPoint, int[] pConstantIndex, int[] pConstantValue)

Array version of: SpecializeShaderARB

nglSpecializeShaderARBback to summary
public static native void nglSpecializeShaderARB(int shader, long pEntryPoint, int numSpecializationConstants, long pConstantIndex, long pConstantValue)

Unsafe version of: SpecializeShaderARB

Parameters
numSpecializationConstants:int

the number of specialization constants whose values to set in this call