 	var actualLodLevel: Int = 10
 	var lodCacheMiss: Bool = true
 	var pendingChunks: Set<ChunkRequest> = []										// Tracks outstanding stream requests
-	var deliveredChunks: [(ChunkRequest, GeoTessellation)] = []	// Chunks that finished streaming in this frame
+	var deliveredChunks: [(ChunkRequest, GeoTessellation, IndexedRenderPrimitive<Vertex>)] = []	// Chunks that finished streaming in this frame
 	
 	var tessellationCache: [Int : GeoTessellation] = [:]
 	var primitiveCache: [Int : IndexedRenderPrimitive<Vertex>] = [:]

		chunkTable.chunkData = fileData.subdata(in: fileHeader.dataOffset..<fileHeader.dataOffset + fileHeader.dataSize)
		print("  - chunk data attached with \(ByteCountFormatter.string(fromByteCount: Int64(chunkTable.chunkData.count), countStyle: .memory))")
		
		streamQueue = DispatchQueue(label: "Geometry streaming", qos: .userInitiated, attributes: .concurrent)
		print("  - empty streaming op-queue setup")
		publishQueue = DispatchQueue(label: "Chunk delivery")
		

				
				// Don't allow reads while publishing finished chunk
				self.publishQueue.async(flags: .barrier) {
					let primitive = IndexedRenderPrimitive<Vertex>(vertices: tessellation.vertices,
																												 indices: tessellation.indices,
																												 device: self.metalDevice!,
																												 color: regionId.hashed.hashColor.tuple(),	// $ Embed color in tessellation
																												 ownerHash: 0,
																												 debugName: "Unnamed")	// $ Embed name in tessellation
					self.deliveredChunks.append((request, tessellation, primitive))
				}
			}
		}
	}
	
	func updateStreaming() {
		publishQueue.sync {
			for (request, tessellation, primitive) in deliveredChunks {
				let runtimeLodKey = regionHashLodKey(request.chunkId.hashed, atLod: request.lodLevel)
				tessellationCache[runtimeLodKey] = tessellation
				primitiveCache[runtimeLodKey] = primitive
			}
			
