summaryrefslogtreecommitdiffstats
path: root/docs/user-guide/toc.html
blob: a3692568338e37346741932328b85aedf5a55845 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
<ul class="toc_root_list"><li data-link="index"><span>Slang User's Guide</span>
<ul class="toc_list">
<li data-link="00-introduction"><span>Introduction</span>
<ul class="toc_list">
<li data-link="00-introduction#why-use-slang"><span>Why use Slang?</span></li>
<li data-link="00-introduction#who-is-slang-for"><span>Who is Slang for?</span></li>
<li data-link="00-introduction#who-is-this-guide-for"><span>Who is this guide for?</span></li>
<li data-link="00-introduction#goals-and-non-goals"><span>Goals and Non-Goals</span></li>
</ul>
</li>
<li data-link="01-get-started"><span>Getting Started with Slang</span>
<ul class="toc_list">
<li data-link="01-get-started#installation"><span>Installation</span></li>
<li data-link="01-get-started#your-first-slang-shader"><span>Your first Slang shader</span></li>
<li data-link="01-get-started#the-full-example"><span>The full example</span></li>
</ul>
</li>
<li data-link="02-conventional-features"><span>Conventional Language Features</span>
<ul class="toc_list">
<li data-link="02-conventional-features#types"><span>Types</span></li>
<li data-link="02-conventional-features#expressions"><span>Expressions</span></li>
<li data-link="02-conventional-features#statements"><span>Statements</span></li>
<li data-link="02-conventional-features#functions"><span>Functions</span></li>
<li data-link="02-conventional-features#preprocessor"><span>Preprocessor</span></li>
<li data-link="02-conventional-features#attributes"><span>Attributes</span></li>
<li data-link="02-conventional-features#global-variables-and-shader-parameters"><span>Global Variables and Shader Parameters</span></li>
<li data-link="02-conventional-features#shader-entry-points"><span>Shader Entry Points</span></li>
</ul>
</li>
<li data-link="03-convenience-features"><span>Basic Convenience Features</span>
<ul class="toc_list">
<li data-link="03-convenience-features#type-inference-in-variable-definitions"><span>Type Inference in Variable Definitions</span></li>
<li data-link="03-convenience-features#immutable-values"><span>Immutable Values</span></li>
<li data-link="03-convenience-features#member-functions"><span>Member functions</span></li>
<li data-link="03-convenience-features#properties"><span>Properties</span></li>
<li data-link="03-convenience-features#initializers"><span>Initializers</span></li>
<li data-link="03-convenience-features#operator-overloading"><span>Operator Overloading</span></li>
<li data-link="03-convenience-features#subscript-operator"><span>Subscript Operator</span></li>
<li data-link="03-convenience-features#optionalt-type"><span>`Optional&lt;T&gt;` type</span></li>
<li data-link="03-convenience-features#reinterprett-operation"><span>`reinterpret&lt;T&gt;` operation</span></li>
<li data-link="03-convenience-features#struct-inheritance-limited"><span>`struct` inheritance (limited)</span></li>
<li data-link="03-convenience-features#extensions"><span>Extensions</span></li>
<li data-link="03-convenience-features#multi-level-break"><span>Multi-level break</span></li>
<li data-link="03-convenience-features#force-inlining"><span>Force inlining</span></li>
<li data-link="03-convenience-features#modules"><span>Modules</span></li>
</ul>
</li>
<li data-link="04-interfaces-generics"><span>Interfaces and Generics</span>
<ul class="toc_list">
<li data-link="04-interfaces-generics#interfaces"><span>Interfaces</span></li>
<li data-link="04-interfaces-generics#generics"><span>Generics</span></li>
<li data-link="04-interfaces-generics#supported-constructs-in-interface-definitions"><span>Supported Constructs in Interface Definitions</span></li>
<li data-link="04-interfaces-generics#associated-types"><span>Associated Types</span></li>
<li data-link="04-interfaces-generics#generic-value-parameters"><span>Generic Value Parameters</span></li>
<li data-link="04-interfaces-generics#interface-typed-values"><span>Interface-typed Values</span></li>
<li data-link="04-interfaces-generics#extending-a-type-with-additional-interface-conformances"><span>Extending a Type with Additional Interface Conformances</span></li>
<li data-link="04-interfaces-generics#is-and-as-operator"><span>`is` and `as` Operator</span></li>
<li data-link="04-interfaces-generics#extensions-to-interfaces"><span>Extensions to Interfaces</span></li>
</ul>
</li>
<li data-link="05-compiling"><span>Compiling Code with Slang</span>
<ul class="toc_list">
<li data-link="05-compiling#concepts"><span>Concepts</span></li>
<li data-link="05-compiling#command-line-compilation-with-slangc"><span>Command-Line Compilation with `slangc`</span></li>
<li data-link="05-compiling#using-the-compilation-api"><span>Using the Compilation API</span></li>
</ul>
</li>
<li data-link="06-targets"><span>Supported Compilation Targets</span>
<ul class="toc_list">
<li data-link="06-targets#background-and-terminology"><span>Background and Terminology</span></li>
<li data-link="06-targets#direct3d-11"><span>Direct3D 11</span></li>
<li data-link="06-targets#direct3d-12"><span>Direct3D 12</span></li>
<li data-link="06-targets#vulkan"><span>Vulkan</span></li>
<li data-link="06-targets#opengl"><span>OpenGL</span></li>
<li data-link="06-targets#cuda-and-optix"><span>CUDA and OptiX</span></li>
<li data-link="06-targets#cpu-compute"><span>CPU Compute</span></li>
<li data-link="06-targets#summary"><span>Summary</span></li>
</ul>
</li>
<li data-link="07-autodiff"><span>Automatic Differentiation</span>
<ul class="toc_list">
<li data-link="07-autodiff#using-automatic-differentiation-in-slang"><span>Using Automatic Differentiation in Slang</span></li>
<li data-link="07-autodiff#mathematic-concepts-and-terminologies"><span>Mathematic Concepts and Terminologies</span></li>
<li data-link="07-autodiff#differentiable-types"><span>Differentiable Types</span></li>
<li data-link="07-autodiff#forward-derivative-propagation-function"><span>Forward Derivative Propagation Function</span></li>
<li data-link="07-autodiff#backward-derivative-propagation-function"><span>Backward Derivative Propagation Function</span></li>
<li data-link="07-autodiff#builtin-differentiable-functions"><span>Builtin Differentiable Functions</span></li>
<li data-link="07-autodiff#primal-substitute-functions"><span>Primal Substitute Functions</span></li>
<li data-link="07-autodiff#working-with-mixed-differentiable-and-non-differentiable-code"><span>Working with Mixed Differentiable and Non-Differentiable Code</span></li>
<li data-link="07-autodiff#higher-order-differentiation"><span>Higher Order Differentiation</span></li>
<li data-link="07-autodiff#interactions-with-generics-and-interfaces"><span>Interactions with Generics and Interfaces</span></li>
<li data-link="07-autodiff#restrictions-of-automatic-differentiation"><span>Restrictions of Automatic Differentiation</span></li>
</ul>
</li>
<li data-link="a1-special-topics"><span>Special Topics</span>
<ul class="toc_list">
<li data-link="a1-01-matrix-layout"><span>Handling Matrix Layout Differences on Different Platforms</span>
<ul class="toc_list">
<li data-link="a1-01-matrix-layout#two-conventions-of-matrix-transform-math"><span>Two conventions of matrix transform math</span></li>
<li data-link="a1-01-matrix-layout#discussion"><span>Discussion</span></li>
<li data-link="a1-01-matrix-layout#matrix-layout"><span>Matrix Layout</span></li>
<li data-link="a1-01-matrix-layout#overriding-default-matrix-layout"><span>Overriding default matrix layout</span></li>
</ul>
</li>
<li data-link="a1-02-slangpy"><span>Using Slang to Write PyTorch Kernels</span>
<ul class="toc_list">
<li data-link="a1-02-slangpy#getting-started-with-slangpy"><span>Getting Started with slangpy</span></li>
<li data-link="a1-02-slangpy#back-propagating-derivatives-through-complex-access-patterns"><span>Back-propagating Derivatives through Complex Access Patterns</span></li>
<li data-link="a1-02-slangpy#builtin-library-support-for-pytorch-interop"><span>Builtin Library Support for PyTorch Interop</span></li>
<li data-link="a1-02-slangpy#type-marshalling-between-slang-and-python"><span>Type Marshalling Between Slang and Python</span></li>
</ul>
</li>
<li data-link="a1-03-obfuscation"><span>Obfuscation</span>
<ul class="toc_list">
<li data-link="a1-03-obfuscation#obfuscation-in-slang"><span>Obfuscation in Slang</span></li>
<li data-link="a1-03-obfuscation#using-an-obfuscated-module"><span>Using An Obfuscated Module</span></li>
<li data-link="a1-03-obfuscation#accessing-source-maps"><span>Accessing Source Maps</span></li>
<li data-link="a1-03-obfuscation#accessing-source-maps-without-files"><span>Accessing Source Maps without Files</span></li>
<li data-link="a1-03-obfuscation#emit-source-maps"><span>Emit Source Maps</span></li>
<li data-link="a1-03-obfuscation#issuesfuture-work"><span>Issues/Future Work</span></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>