viewport and frame caches simplifications, allowing for a much simpler
kfi implementation