Shader Development


This section provides guidelines and details of shader development on the Tegra platform. It discusses specific shader features and limitations on the Tegra.

GLSL-ES Shaders

The Tegra supports OpenGL ES 2.0 and its shading language, GLSL-ES. Basically a subset of desktop GLSL, GLSL-ES removes all of the fixed-function language constructs, and also removes language constructs for GL features that are not a part of OpenGL ES 2.0 core, such as 1D and 3D textures.

General GLSL-ES features and uses are outside the scope of this document. Developers should refer directly to the GLSL specification, which is currently downloadable from the Khronos group website:

http://www.khronos.org/registry/gles/specs/2.0/GLSL_ES_Specification_1.0.14.pdf

Source versus Binary Shaders

Earlier versions of the Tegra OpenGL ES drivers supported either source code or pre-compiled binary shaders, as the shader compilers on the platform matured. However, the many benefits of source code shaders on the platform, especially multiple commercial platforms now outweigh the previous benefits and current issues with pre-compiled shaders. Only source code shaders are supported in the current Tegra drivers. Some drivers may still export the legacy GL_NV_platform_binary, however binary shaders should be considered deprecated and their use is not recommended.

Loading Shaders

Shaders are loaded using the OpenGL ES standard functions: glShaderSource, glCompileShader, and glLinkProgram.

 

 


NVIDIA® GameWorks™ Documentation Rev. 1.0.200605 ©2014-2020. NVIDIA Corporation. All Rights Reserved.