                 
                 let block = Block(x: x, y: y, width: blockSize, height: blockSize)
                 
-                if let image = cache[block] {
-                    blocks.append((block, image))
+                if let texture = cache[block] {
+                    blocks.append((block, texture))
                 } else {
                     need_to_render.append(block)
                 }

        return cache.pool[commandQueue]?.makeContext(colorSpace: colorSpace, outputPremultiplied: outputPremultiplied, workingFormat: workingFormat)
    }
    
    func render(to texture: MTLTexture, commandBuffer: MTLCommandBuffer, bounds: Rect, workingFormat: CIFormat) {
        
        guard let minX = Int(exactly: floor(bounds.minX)) else { return }
        guard let minY = Int(exactly: floor(bounds.minY)) else { return }

                    
                    guard let texture = commandBuffer.device.makeTexture(buffer, descriptor: descriptor, bytesPerRow: block.width * 4) else { return nil }
                    
                    renderer.render(image, to: texture, commandBuffer: commandBuffer, bounds: CGRect(extent), colorSpace: workingColorSpace)
                    
                    #if os(macOS) || targetEnvironment(macCatalyst)
