WebGLRenderingContext: getShaderPrecisionFormat() method

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

The WebGLRenderingContext.getShaderPrecisionFormat() method of the WebGL API returns a new WebGLShaderPrecisionFormat object describing the range and precision for the specified shader numeric format.

Syntax

js
getShaderPrecisionFormat(shaderType, precisionType)

Parameters

shaderType

Either a gl.FRAGMENT_SHADER or a gl.VERTEX_SHADER.

precisionType

A precision type value. Either gl.LOW_FLOAT, gl.MEDIUM_FLOAT, gl.HIGH_FLOAT, gl.LOW_INT, gl.MEDIUM_INT, or gl.HIGH_INT.

Return value

A WebGLShaderPrecisionFormat object or null, if an error occurs.

Exceptions

  • gl.INVALID_ENUM if the shader or precision types aren't recognized.
  • gl.INVALID_OPERATION if the shader compiler isn't supported.

Examples

The following code gets the precision format of a gl.VERTEX_SHADER with a gl.MEDIUM_FLOAT precision type.

js
const canvas = document.getElementById("canvas");
const gl = canvas.getContext("webgl");

gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.MEDIUM_FLOAT);
// WebGLShaderPrecisionFormat { rangeMin: 127, rangeMax: 127, precision: 23 }

Specifications

Specification
WebGL Specification
# 5.14.9

Browser compatibility

BCD tables only load in the browser

See also