diff --git a/CHANGELOG.md b/CHANGELOG.md index 0d9bc61ae81788741d433282bf743e973be34fae..8e61db992ffa986600026f5ad5d896e48d5ec8c0 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 3f49073d4250d0973d2a05558171a6ec58c177e4..ed80baa099f4e2a9e6ca991a87b7d712fba841aa 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 a0175b56aa4147e237f9f47c4524860158bab982..e93faa764c6a41085262c46bebf8266d71dd1cdc 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