     vec3 direction;
 };
 
-layout(std430, binding = 5) buffer bBuffer
-{
-    Light lights[]; 
-};
+// --- BINDINGS ---
+layout(std430, binding = 5) buffer bBuffer { Light lights[]; };
 
+// UNIFORMS
+uniform int lightCount;
 uniform sampler2D mapAlbedo;
 uniform sampler2D mapNormal;
 uniform sampler2D mapMetallic;

/*
Geometry pass fragment shader (first pass).
*/
#version 430

in VertexData {
    vec3 pos;
    vec3 normal;

    return clamp((ggx1 * ggx2), 0.f, 1.0f);
}

vec3 ApplyLights(vec3 albedo, vec3 normal, float metallic, float roughness, vec3 pos) {
    vec3 Lo = vec3(0.0f);
    vec3 N = normalize(normal);
    vec3 V = normalize(-pos);
