From b563c773c10a5c5e1f9175c9e086c6f7e2afffa6 Mon Sep 17 00:00:00 2001 From: Alexander Rose <alexander.rose@weirdbyte.de> Date: Sat, 16 Jul 2022 13:01:33 -0700 Subject: [PATCH] avoid using flat qualifier in shaders - causing slowdown --- CHANGELOG.md | 1 + src/mol-gl/shader/chunks/common-frag-params.glsl.ts | 8 ++++---- src/mol-gl/shader/chunks/common-vert-params.glsl.ts | 8 ++++---- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0d9bc61ae..8e61db992 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ Note that since we don't clearly distinguish between a public and private interf - Bind shared textures only once per pass, not for each render item - Fix missing 'material' annotation for some uniforms, causing unnecessary uniform updates - Remove use of ``isnan`` in impostor shaders, not needed and causing slowdown +- Avoid using ``flat`` qualifier in shaders, causing slowdown ## [v3.11.0] - 2022-07-04 diff --git a/src/mol-gl/shader/chunks/common-frag-params.glsl.ts b/src/mol-gl/shader/chunks/common-frag-params.glsl.ts index 3f49073d4..ed80baa09 100644 --- a/src/mol-gl/shader/chunks/common-frag-params.glsl.ts +++ b/src/mol-gl/shader/chunks/common-frag-params.glsl.ts @@ -14,10 +14,10 @@ uniform int uMarkingType; uniform vec3 uClipObjectScale[dClipObjectCount]; #if defined(dClipping) - #if __VERSION__ == 100 + #if __VERSION__ == 100 || defined(dClippingType_instance) varying float vClipping; #else - flat in float vClipping; + flat in float vClipping; // avoid if possible, causes slowdown, ASR #endif #endif #endif @@ -32,10 +32,10 @@ uniform int uMarkingType; #if defined(dNeedsMarker) uniform float uMarker; - #if __VERSION__ == 100 + #if __VERSION__ == 100 || defined(dMarkerType_instance) varying float vMarker; #else - flat in float vMarker; + flat in float vMarker; // avoid if possible, causes slowdown, ASR #endif #endif diff --git a/src/mol-gl/shader/chunks/common-vert-params.glsl.ts b/src/mol-gl/shader/chunks/common-vert-params.glsl.ts index a0175b56a..e93faa764 100644 --- a/src/mol-gl/shader/chunks/common-vert-params.glsl.ts +++ b/src/mol-gl/shader/chunks/common-vert-params.glsl.ts @@ -21,10 +21,10 @@ uniform int uPickType; #if defined(dClipping) uniform vec2 uClippingTexDim; uniform sampler2D tClipping; - #if __VERSION__ == 100 + #if __VERSION__ == 100 || defined(dClippingType_instance) varying float vClipping; #else - flat out float vClipping; + flat out float vClipping; // avoid if possible, causes slowdown, ASR #endif #endif #endif @@ -33,10 +33,10 @@ uniform int uPickType; uniform float uMarker; uniform vec2 uMarkerTexDim; uniform sampler2D tMarker; - #if __VERSION__ == 100 + #if __VERSION__ == 100 || defined(dMarkerType_instance) varying float vMarker; #else - flat out float vMarker; + flat out float vMarker; // avoid if possible, causes slowdown, ASR #endif #endif -- GitLab