diff --git a/app/internal/gpu/context.go b/app/internal/gpu/context.go index ee66eb17..c5e10cd8 100644 --- a/app/internal/gpu/context.go +++ b/app/internal/gpu/context.go @@ -66,7 +66,10 @@ func floatTripleFor(ctx *context, ver [2]int, exts []string) (textureTriple, err if ver[0] >= 3 { triples = append(triples, textureTriple{gl.R16F, gl.Enum(gl.RED), gl.Enum(gl.HALF_FLOAT)}) } - if hasExtension(exts, "GL_OES_texture_half_float") || hasExtension(exts, "EXT_color_buffer_half_float") { + if hasExtension(exts, "GL_OES_texture_half_float") { + // Try single channel. + triples = append(triples, textureTriple{gl.LUMINANCE, gl.Enum(gl.LUMINANCE), gl.Enum(gl.HALF_FLOAT_OES)}) + // Fallback to 4 channels. triples = append(triples, textureTriple{gl.RGBA, gl.Enum(gl.RGBA), gl.Enum(gl.HALF_FLOAT_OES)}) } if hasExtension(exts, "GL_OES_texture_float") || hasExtension(exts, "GL_EXT_color_buffer_float") {