 	uint lightindices[MAX_POINT_LIGHT_PER_TILE];
 };
 
-layout(push_constant) uniform PushConstantObject 
+layout(push_constant) uniform PushConstantObject
 {
 	ivec2 viewport_size;
 	ivec2 tile_nums;

        normal = frag_normal;
    }
    ivec2 tile_id = ivec2(gl_FragCoord.xy / TILE_SIZE);
    uint tile_index = tile_id.y * push_constants.tile_nums.x + tile_id.x; 

    // debug view
    if (push_constants.debugview_index > 1)
    {
        if (push_constants.debugview_index == 2)
        {
            //heat map debug view
            float intensity = float(light_visiblities[tile_index].count) / MAX_POINT_LIGHT_PER_TILE;
            out_color = vec4(vec3(intensity, intensity, intensity), 1.0) ; //light culling debug
        }   
        else if (push_constants.debugview_index == 3)
        {
            // depth debug view
            out_color = vec4(vec3( pre_depth ),1.0);

        diffuse = vec3(1.0);
    }

    vec3 normal;
    if (material.has_normal_map > 0)
    {
        normal = applyNormalMap(frag_normal, texture(normal_sampler, frag_tex_coord).rgb);
