   uvec2 ij = uvec2(pos.xy);
   uint32_t pix = (ij.x + ij.y * u_ScreenSz);
 
-  gl_FragDepth = 0.0;
+  gl_FragDepth = 1.0;
+  position = vec4(-2, -2, 1, -2);
 
   uint maxAge = u_Counts[Saddr(ij)];
 

      ++age;
  }

  if (nextFragmentReadStatus)
  {
    vec4 ndcPos = projectionMatrix * nextFragment.eyePos;
    ndcPos = ndcPos / ndcPos.w;
    float depth = ndcPos.z;
    gl_FragDepth = depth;
    position.xyz = ndcPos.xyz;
    position.w = 1.0f;
  }
  else
  {
    position = vec4(-2, -2, -2, -2);
  }

  for (--age; age < maxAge; age++)  // all fragments
  {
    currentFragment = nextFragment;

    objectId = currentFragment.objectId;
    updateActiveObjects(objectId, activeObjects);
    activeObjectCount = bitCount(activeObjects);

    if (nextFragmentReadStatus && objectId == 0 && position.w == -2)
    {
      vec4 ndcPos = projectionMatrix * nextFragment.eyePos;
      ndcPos = ndcPos / ndcPos.w;
      float depth = ndcPos.z;
      gl_FragDepth = depth;
      position.xyz = ndcPos.xyz;
      position.w = 1.0f;
    }

    // fetch next Fragment
    nextFragmentReadStatus = false;
