.\" Man page generated from reStructuredText. . . .nr rst2man-indent-level 0 . .de1 rstReportMargin \\$1 \\n[an-margin] level \\n[rst2man-indent-level] level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] - \\n[rst2man-indent0] \\n[rst2man-indent1] \\n[rst2man-indent2] .. .de1 INDENT .\" .rstReportMargin pre: . RS \\$1 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] . nr rst2man-indent-level +1 .\" .rstReportMargin post: .. .de UNINDENT . RE .\" indent \\n[an-margin] .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] .nr rst2man-indent-level -1 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .TH "METAL-PACK" "1" "Aug 02, 2023" "32023" "Metal" .SH NAME metal-pack \- Metal binary optimizing packer .SH SYNOPSIS .sp \fBmetal\-pack\fP [\fIfilenames...\fP] [\fIoptions\fP] .SH DESCRIPTION .sp \fBmetal\-pack\fP combines a list of metallibs, machos, or universal binaries into a single output file. .sp The format of the output file depends on the input files. If all input files share the same architecture, a thin binary is generated. Otherwise a universal binary is emitted. .sp Inputs files can contain different kinds of resources: \fBmetallibs\fP, \fBdescriptors\fP, and \fBreflections\fP\&. How to optimize each kind of resource can be controlled using the \fI\%\-pack\-metallibs\fP, \fI\%\-pack\-descriptors\fP, and \fI\%\-pack\-reflections\fP options. .sp There are three different packing policies. .sp The \fBnone\fP policy just copies the resources from the input files into the output file. If a referenced resource is not directly stored into the input file \-\- e.g. a temporary file \-\- just the reference to the resource is copied \-\- e.g. the path to the temporary file. .sp The \fBinternal\fP policy embeds each resource referenced by each slice into the slice itself. So, for instance, if the \fBfoo.airp\fP descriptor is referenced by the \fBamdgpu_gfx600\fP slice, the descriptors is inlined into the \fBamdgpu_gfx600\fP slice itself. If the same descriptor is referenced by multiple slices, it will be stored multiple times into each slice. .sp The \fBexternal\fP policy is an experimental policy where common resources referenced by multiple slices are stored in a common slice in the output file. .SH OPTIONS .sp \fBmetal\-pack\fP supports the following options: .INDENT 0.0 .TP .B \-help, \-h Display usage information and exit. .UNINDENT .INDENT 0.0 .TP .B \-version Display the version of this program. .UNINDENT .INDENT 0.0 .TP .B \-pack\-metallibs Set the metallibs packing policy to \fBnone\fP, \fBinternal\fP, or \fBexternal\fP\&. .UNINDENT .INDENT 0.0 .TP .B \-pack\-descriptors Set the descriptors packing policy to \fBnone\fP, \fBinternal\fP, or \fBexternal\fP\&. .UNINDENT .INDENT 0.0 .TP .B \-pack\-reflections Set the reflections packing policy to \fBnone\fP, \fBinternal\fP, or \fBexternal\fP\&. .UNINDENT .INDENT 0.0 .TP .B \-o Set the output file name. .UNINDENT .INDENT 0.0 .TP .B \-nthreads Perform optimization using \fBn\fP threads. .UNINDENT .INDENT 0.0 .TP .B \-stats Display statistics about packed inputs. .UNINDENT .SH BUGS .sp To report bugs, please visit <\fI\%https://developer.apple.com/bug\-reporting/\fP>. .SH INTERNET RESOURCES .sp Metal Shading Language Specification: <\fI\%https://developer.apple.com/metal/Metal\-Shading\-Language\-Specification.pdf\fP> .SH COPYRIGHT 2014-2023, The Metal Team .\" Generated by docutils manpage writer. .