source: general/genlib/spirv-tools.xml@ 578a0a0

12.1 ken/TL2024 lazarus plabs/newcss python3.11 rahul/power-profiles-daemon trunk xry111/llvm18
Last change on this file since 578a0a0 was c46031c, checked in by Douglas R. Reno <renodr@…>, 6 months ago

Add the SPIRV-Tools package to the book.

This is needed for glslang, which is needed for Mesa.

  • Property mode set to 100644
File size: 9.1 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY spirv-tools-download-http "https://github.com/KhronosGroup/SPIRV-Tools/archive/refs/tags/v&spirv-tools-version;/SPIRV-Tools-&spirv-tools-version;.tar.gz">
8 <!ENTITY spirv-tools-download-ftp " ">
9 <!ENTITY spirv-tools-md5sum "13d654053bd8145f9e438c38e9021b30">
10 <!ENTITY spirv-tools-size "3.0 MB">
11 <!ENTITY spirv-tools-buildsize "69 MB">
12 <!ENTITY spirv-tools-time "1.2 SBU (with parallelism=8)">
13]>
14
15<sect1 id="spirv-tools" xreflabel="SPIRV-Tools-&spirv-tools-version;">
16 <?dbhtml filename="spirv-tools.html"?>
17
18 <title>SPIRV-Tools-&spirv-tools-version;</title>
19
20 <indexterm zone="spirv-tools">
21 <primary sortas="a-spirv-tools">SPIRV-Tools</primary>
22 </indexterm>
23
24 <sect2 role="package">
25 <title>Introduction to SPIRV-Tools</title>
26
27 <para>
28 The <application>SPIRV-Tools</application> package contains libraries
29 and utilities for processing SPIR-V modules.
30 </para>
31
32 &lfs120_checked;
33
34 <bridgehead renderas="sect3">Package Information</bridgehead>
35 <itemizedlist spacing="compact">
36 <listitem>
37 <para>
38 Download (HTTP): <ulink url="&spirv-tools-download-http;"/>
39 </para>
40 </listitem>
41 <listitem>
42 <para>
43 Download (FTP): <ulink url="&spirv-tools-download-ftp;"/>
44 </para>
45 </listitem>
46 <listitem>
47 <para>
48 Download MD5 sum: &spirv-tools-md5sum;
49 </para>
50 </listitem>
51 <listitem>
52 <para>
53 Download size: &spirv-tools-size;
54 </para>
55 </listitem>
56 <listitem>
57 <para>
58 Estimated disk space required: &spirv-tools-buildsize;
59 </para>
60 </listitem>
61 <listitem>
62 <para>
63 Estimated build time: &spirv-tools-time;
64 </para>
65 </listitem>
66 </itemizedlist>
67
68 <bridgehead renderas="sect3">SPIRV-Tools Dependencies</bridgehead>
69
70 <bridgehead renderas="sect4">Required</bridgehead>
71 <para role="required">
72 <xref linkend="cmake"/> and
73 <xref linkend="spirv-headers"/>
74 </para>
75
76 </sect2>
77
78 <sect2 role="installation">
79 <title>Installation of SPIRV-Tools</title>
80
81 <para>
82 Install <application>SPIRV-Tools</application> by running the following
83 commands:
84 </para>
85
86<screen><userinput>mkdir build &amp;&amp;
87cd build &amp;&amp;
88
89cmake -DCMAKE_INSTALL_PREFIX=/usr \
90 -DCMAKE_BUILD_TYPE=Release \
91 -DSPIRV_WERROR=OFF \
92 -DBUILD_SHARED_LIBS=ON \
93 -DSPIRV_TOOLS_BUILD_STATIC=OFF \
94 -DSPIRV-Headers_SOURCE_DIR=/usr \
95 -G Ninja .. &amp;&amp;
96ninja</userinput></screen>
97
98 <para>
99 To test the results, issue: <command>ninja test</command>.
100 </para>
101
102 <para>
103 Now, as the &root; user:
104 </para>
105
106<screen role="root"><userinput>ninja install</userinput></screen>
107
108 </sect2>
109
110 <sect2 role="commands">
111 <title>Command Explanations</title>
112
113 <para>
114 <parameter>-DSPIRV_WERROR=OFF</parameter>: This switch stops the build
115 system from treating warnings as errors.
116 </para>
117
118 <para>
119 <parameter>-DBUILD_SHARED_LIBS=ON</parameter>: This switch forces the
120 build system to install shared libraries instead of static libraries.
121 </para>
122
123 <para>
124 <parameter>-DSPIRV_TOOLS_BUILD_STATIC=OFF</parameter>: This switch
125 disables building static versions of the libraries.
126 </para>
127
128 <para>
129 <parameter>-DSPIRV-Headers_SOURCE_DIR</parameter>: This switch tells the
130 build system that <xref linkend="spirv-headers" role="nodep"/> is
131 installed in /usr. This is needed since the build system tries to use an
132 internal copy by default.
133 </para>
134
135 </sect2>
136
137 <sect2 role="content">
138 <title>Contents</title>
139
140 <segmentedlist>
141 <segtitle>Installed Programs</segtitle>
142 <segtitle>Installed Libraries</segtitle>
143 <segtitle>Installed Directories</segtitle>
144
145 <seglistitem>
146 <seg>
147 spirv-as,
148 spirv-cfg,
149 spirv-dis,
150 spirv-lesspipe.sh,
151 spirv-link,
152 spirv-lint,
153 spirv-objdump,
154 spirv-opt,
155 spirv-reduce, and
156 spirv-val
157 </seg>
158 <seg>
159 libSPIRV-Tools-diff.so,
160 libSPIRV-Tools-link.so,
161 libSPIRV-Tools-lint.so,
162 libSPIRV-Tools-opt.so,
163 libSPIRV-Tools-reduce.so,
164 libSPIRV-Tools-shared.so, and
165 libSPIRV-Tools.so
166 </seg>
167 <seg>
168 /usr/include/spirv-tools and
169 /usr/lib/cmake/SPIRV-Tools
170 </seg>
171 </seglistitem>
172 </segmentedlist>
173
174 <variablelist>
175 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
176 <?dbfo list-presentation="list"?>
177 <?dbhtml list-presentation="table"?>
178
179 <varlistentry id="spirv-as">
180 <term><command>spirv-as</command></term>
181 <listitem>
182 <para>
183 creates a SPIR-V binary module from SPIR-V assembly text
184 </para>
185 <indexterm zone="spirv-tools spirv-as">
186 <primary sortas="b-spirv-as">spirv-as</primary>
187 </indexterm>
188 </listitem>
189 </varlistentry>
190
191 <varlistentry id="spirv-cfg">
192 <term><command>spirv-cfg</command></term>
193 <listitem>
194 <para>
195 shows the control flow graph in "dot" format
196 </para>
197 <indexterm zone="spirv-tools spirv-cfg">
198 <primary sortas="b-spirv-cfg">spirv-cfg</primary>
199 </indexterm>
200 </listitem>
201 </varlistentry>
202
203 <varlistentry id="spirv-dis">
204 <term><command>spirv-dis</command></term>
205 <listitem>
206 <para>
207 disassembles a SPIR-V binary module
208 </para>
209 <indexterm zone="spirv-tools spirv-dis">
210 <primary sortas="b-spirv-dis">spirv-dis</primary>
211 </indexterm>
212 </listitem>
213 </varlistentry>
214
215 <varlistentry id="spirv-lesspipe.sh">
216 <term><command>spirv-lesspipe.sh</command></term>
217 <listitem>
218 <para>
219 automatically disassembles a .SPV file for 'less'
220 </para>
221 <indexterm zone="spirv-tools spirv-lesspipe.sh">
222 <primary sortas="b-spirv-lesspipe.sh">spirv-lesspipe.sh</primary>
223 </indexterm>
224 </listitem>
225 </varlistentry>
226
227 <varlistentry id="spirv-link">
228 <term><command>spirv-link</command></term>
229 <listitem>
230 <para>
231 links SPIR-V binary files together
232 </para>
233 <indexterm zone="spirv-tools spirv-link">
234 <primary sortas="b-spirv-link">spirv-link</primary>
235 </indexterm>
236 </listitem>
237 </varlistentry>
238
239 <varlistentry id="spirv-lint">
240 <term><command>spirv-lint</command></term>
241 <listitem>
242 <para>
243 checks a SPIR-V binary module for errors
244 </para>
245 <indexterm zone="spirv-tools spirv-lint">
246 <primary sortas="b-spirv-lint">spirv-lint</primary>
247 </indexterm>
248 </listitem>
249 </varlistentry>
250
251 <varlistentry id="spirv-objdump">
252 <term><command>spirv-objdump</command></term>
253 <listitem>
254 <para>
255 dumps information from a SPIR-V binary
256 </para>
257 <indexterm zone="spirv-tools spirv-objdump">
258 <primary sortas="b-spirv-objdump">spirv-objdump</primary>
259 </indexterm>
260 </listitem>
261 </varlistentry>
262
263 <varlistentry id="spirv-opt">
264 <term><command>spirv-opt</command></term>
265 <listitem>
266 <para>
267 performs optimizations on SPIR-V binary files
268 </para>
269 <indexterm zone="spirv-tools spirv-opt">
270 <primary sortas="b-spirv-opt">spirv-opt</primary>
271 </indexterm>
272 </listitem>
273 </varlistentry>
274
275 <varlistentry id="spirv-reduce">
276 <term><command>spirv-reduce</command></term>
277 <listitem>
278 <para>
279 reduces a SPIR-V binary file
280 </para>
281 <indexterm zone="spirv-tools spirv-reduce">
282 <primary sortas="b-spirv-reduce">spirv-reduce</primary>
283 </indexterm>
284 </listitem>
285 </varlistentry>
286
287 <varlistentry id="spirv-val">
288 <term><command>spirv-val</command></term>
289 <listitem>
290 <para>
291 validates a SPIR-V binary file
292 </para>
293 <indexterm zone="spirv-tools spirv-val">
294 <primary sortas="b-spirv-val">spirv-val</primary>
295 </indexterm>
296 </listitem>
297 </varlistentry>
298
299 <varlistentry id="libSPIRV-Tools">
300 <term><filename class="libraryfile">libSPIRV-Tools.so</filename></term>
301 <listitem>
302 <para>
303 contains functions for processing SPIR-V modules
304 </para>
305 <indexterm zone="spirv-tools libSPIRV-Tools">
306 <primary sortas="c-libSPIRV-Tools">libSPIRV-Tools.so</primary>
307 </indexterm>
308 </listitem>
309 </varlistentry>
310 </variablelist>
311 </sect2>
312</sect1>
Note: See TracBrowser for help on using the repository browser.