 			}
 		}
 		
-		renderList = poiPlanePrimitives.filter({ visibleSet.contains($0.ownerHash) })
-																			.filter({ poiVisibility[$0.hashValue] != nil })
+		let framePlanes = poiPlanePrimitives.filter { visibleSet.contains($0.ownerHash) }
+																			 .filter { poiVisibility[$0.hashValue] != nil }
+		renderLists[bufferIndex] = ContiguousArray(framePlanes.map { $0.primitive })
 		var fades = Array<InstanceUniforms>()
-		fades.reserveCapacity(renderList.count)
-		for plane in renderList {
+		fades.reserveCapacity(framePlanes.count)
+		for plane in framePlanes {
 			let u = InstanceUniforms(progress: poiVisibility[plane.hashValue]!.alpha())
 			fades.append(u)
 		}

	}
	var poiPlanePrimitives : [PoiPlane]
	var poiVisibility: [Int : Visibility] = [:]
	var renderList: [PoiPlane] = []
	
	let device: MTLDevice
	let pipeline: MTLRenderPipelineState

*/

class PoiRenderer {
	typealias PoiPrimitive = PoiPlane.PoiPlanePrimitive
	typealias RenderList = ContiguousArray<PoiPrimitive>
	
	static let kMaxVisibleInstances = 1024
	enum Visibility {
		static let FadeInDuration = 0.4
