diff --git a/src/host_shaders/metal_copy_to_lut_texture.metal b/src/host_shaders/metal_copy_to_lut_texture.metal
new file mode 100644
index 00000000..b0d8d261
--- /dev/null
+++ b/src/host_shaders/metal_copy_to_lut_texture.metal
@@ -0,0 +1,5 @@
+constant ushort lutTextureWidth [[function_constant(0)]];
+
+vertex void vertexCopyToLUTTexture(uint vid [[vertex_id]], constant ushort* data [[buffer(0)]], texture1d_array<ushort, access::write> out [[texture(0)]]) {
+    out.write(data[vid], vid % lutTextureWidth, vid / lutTextureWidth);
+}