Name

    NV_compute_shader_derivatives

Name Strings

    GL_NV_compute_shader_derivatives

Contact

    Pat Brown, NVIDIA (pbrown 'at' nvidia.com)

Contributors

    Ashwin Lele, NVIDIA
    Jeff Bolz, NVIDIA
    Michael Chock, NVIDIA

Status

    Shipping

Version

    Last Modified:      November 9, 2018
    Revision:           2

Number

    OpenGL Extension #525
    OpenGL ES Extension #308

Dependencies

    This extension is written against the OpenGL 4.6 Specification
    (Compatibility Profile), dated October 24, 2016.

    OpenGL 4.5 or OpenGL ES 3.2 is required.

    This extension requires support for the OpenGL Shading Language (GLSL)
    extension "NV_compute_shader_derivatives", which can be found at the
    Khronos Group Github site here:

        https://github.com/KhronosGroup/GLSL

Overview

    This extension adds OpenGL and OpenGL ES API support for the OpenGL
    Shading Language (GLSL) extension "NV_compute_shader_derivatives".

    That extension, when enabled, allows applications to use derivatives in
    compute shaders.  It adds compute shader support for explicit derivative
    built-in functions like dFdx(), automatic derivative computation in
    texture lookup functions like texture(), use of the optional LOD bias
    parameter to adjust the computed level of detail values in texture lookup
    functions, and the texture level of detail query function
    textureQueryLod().

New Procedures and Functions

    None

New Tokens

    None

Modifications to the OpenGL 4.6 Specification (Compatibility Profile)

    None

Modifications to the OpenGL ES 3.2 Specification

    None

Additions to the AGL/GLX/WGL Specifications

    None

Errors

    None

New State

    None

New Implementation Dependent State

    None

Issues

    None, but please refer to issues in the GLSL extension specification.

Revision History

    Revision 2 (mchock)
    - Added OpenGL ES support.

    Revision 1 (pbrown)
    - Internal revisions.
