From 8a44ac11d8379ccb4214e5daaf113194fa95c1f3 Mon Sep 17 00:00:00 2001 From: Elias Naur Date: Wed, 11 Dec 2019 13:51:27 +0100 Subject: [PATCH] app/internal/gpu: use single channel floating point FBO if possible Remove dependency on EXT_color_buffer_half_float, it's not clear it's necessary. In any case the following FBO sanity check will catch invalid FBO format combinations. Updates #49 Signed-off-by: Elias Naur --- app/internal/gpu/context.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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") {