#!/usr/bin/env swift import Foundation import Metal print("=== Test: Create Engine and Compile Metal ===") print("Start time: \(Date())") fflush(stdout) do { // Create Metal device guard let device = MTLCreateSystemDefaultDevice() else { print("ERROR: Cannot create Metal device") exit(1) } print("Metal device: \(device.name)") fflush(stdout) // Create command queue guard let commandQueue = device.makeCommandQueue() else { print("ERROR: Cannot create command queue") exit(1) } print("Command queue created") fflush(stdout) // Try to compile Metal source (simple version) let source = """ #include using namespace metal; kernel void test_kernel(device float* output [[buffer(0)]], uint id [[thread_position_in_grid]]) { output[id] = float(id); } """ print("Compiling Metal source...") fflush(stdout) let compileStart = Date() let library = try device.makeLibrary(source: source, options: nil) print("Metal compiled in \(Date().timeIntervalSince(compileStart))s") fflush(stdout) print("Test completed successfully!") } catch { print("ERROR: \(error)") exit(1) }