1
0
Fork 0
mirror of https://github.com/nix-community/home-manager.git synced 2025-12-06 00:51:04 +01:00
This commit is contained in:
rycee 2024-10-25 08:24:35 +00:00
parent 99c67113d3
commit e090f86894
2 changed files with 294 additions and 2 deletions

View file

@ -11540,6 +11540,245 @@ attribute set of (Nix config atom (null, bool, int, float, str, path or package)
</td></tr>
</table>
</dd>
<dt>
<span class="term">
<a id="opt-nixGL.packages"></a><a class="term" href="options.xhtml#opt-nixGL.packages"><code class="option">nixGL.packages</code>
</a>
</span>
</dt>
<dd>
<p>The nixGL package set containing GPU library wrappers. This can be used
to provide OpenGL and Vulkan access to applications on non-NixOS systems
by using <code class="literal">(config.lib.nixGL.wrap &lt;package&gt;)</code> for the default wrapper, or
<code class="literal">(config.lib.nixGL.wrappers.&lt;wrapper&gt; &lt;package&gt;)</code> for any available
wrapper.</p><p>The wrapper functions are always available. If this option is empty (the
default), they are a no-op. This is useful on NixOS where the wrappers
are unnecessary.</p><p>Note that using any Nvidia wrapper requires building the configuration
with the <code class="literal">--impure</code> option.</p>
<p><span class="emphasis"><em>Type:</em></span>
null or (attribute set)</p>
<p><span class="emphasis"><em>Default:</em></span>
<code class="literal">null</code></p>
<p><span class="emphasis"><em>Example:</em></span>
<code class="literal">inputs.nixGL.packages</code></p>
<p><span class="emphasis"><em>Declared by:</em></span></p>
<table border="0" summary="Simple list" class="simplelist">
<tr><td>
<code class="filename"><a class="filename" href="https://github.com/nix-community/home-manager/blob/master/modules/misc/nixgl.nix" target="_top">
&lt;home-manager/modules/misc/nixgl.nix&gt;
</a></code>
</td></tr>
</table>
</dd>
<dt>
<span class="term">
<a id="opt-nixGL.defaultWrapper"></a><a class="term" href="options.xhtml#opt-nixGL.defaultWrapper"><code class="option">nixGL.defaultWrapper</code>
</a>
</span>
</dt>
<dd>
<p>The package wrapper function available for use as <code class="literal">(config.lib.nixGL.wrap &lt;package&gt;)</code>. Intended to start programs on the main GPU.</p><p>Wrapper functions can be found under <code class="literal">config.lib.nixGL.wrappers</code>. They
can be used directly, however, setting this option provides a convenient
shorthand.</p><p>The following wrappers are available:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>mesa</p></li><li class="listitem"><p>mesaPrime</p></li><li class="listitem"><p>nvidia</p></li><li class="listitem"><p>nvidiaPrime</p></li></ul></div>
<p><span class="emphasis"><em>Type:</em></span>
one of “mesa”, “mesaPrime”, “nvidia”, “nvidiaPrime”</p>
<p><span class="emphasis"><em>Default:</em></span>
<code class="literal">&quot;mesa&quot;</code></p>
<p><span class="emphasis"><em>Declared by:</em></span></p>
<table border="0" summary="Simple list" class="simplelist">
<tr><td>
<code class="filename"><a class="filename" href="https://github.com/nix-community/home-manager/blob/master/modules/misc/nixgl.nix" target="_top">
&lt;home-manager/modules/misc/nixgl.nix&gt;
</a></code>
</td></tr>
</table>
</dd>
<dt>
<span class="term">
<a id="opt-nixGL.installScripts"></a><a class="term" href="options.xhtml#opt-nixGL.installScripts"><code class="option">nixGL.installScripts</code>
</a>
</span>
</dt>
<dd>
<p>For each wrapper <code class="literal">wrp</code> named in the provided list, a wrapper script
named <code class="literal">nixGLWrp</code> is installed into the environment. These scripts are
useful for running programs not installed via Home Manager.</p><p>The following wrappers are available:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>mesa</p></li><li class="listitem"><p>mesaPrime</p></li><li class="listitem"><p>nvidia</p></li><li class="listitem"><p>nvidiaPrime</p></li></ul></div>
<p><span class="emphasis"><em>Type:</em></span>
null or (list of (one of “mesa”, “mesaPrime”, “nvidia”, “nvidiaPrime”))</p>
<p><span class="emphasis"><em>Default:</em></span>
<code class="literal">null</code></p>
<p><span class="emphasis"><em>Example:</em></span></p><pre><code class="programlisting">[
&quot;mesa&quot;
&quot;mesaPrime&quot;
]
</code></pre>
<p><span class="emphasis"><em>Declared by:</em></span></p>
<table border="0" summary="Simple list" class="simplelist">
<tr><td>
<code class="filename"><a class="filename" href="https://github.com/nix-community/home-manager/blob/master/modules/misc/nixgl.nix" target="_top">
&lt;home-manager/modules/misc/nixgl.nix&gt;
</a></code>
</td></tr>
</table>
</dd>
<dt>
<span class="term">
<a id="opt-nixGL.offloadWrapper"></a><a class="term" href="options.xhtml#opt-nixGL.offloadWrapper"><code class="option">nixGL.offloadWrapper</code>
</a>
</span>
</dt>
<dd>
<p>The package wrapper function available for use as
<code class="literal">(config.lib.nixGL.wrapOffload &lt;package&gt;)</code>. Intended to start programs
on the secondary GPU.</p><p>Wrapper functions can be found under <code class="literal">config.lib.nixGL.wrappers</code>. They
can be used directly, however, setting this option provides a convenient
shorthand.</p><p>The following wrappers are available:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>mesa</p></li><li class="listitem"><p>mesaPrime</p></li><li class="listitem"><p>nvidia</p></li><li class="listitem"><p>nvidiaPrime</p></li></ul></div>
<p><span class="emphasis"><em>Type:</em></span>
one of “mesa”, “mesaPrime”, “nvidia”, “nvidiaPrime”</p>
<p><span class="emphasis"><em>Default:</em></span>
<code class="literal">&quot;mesaPrime&quot;</code></p>
<p><span class="emphasis"><em>Declared by:</em></span></p>
<table border="0" summary="Simple list" class="simplelist">
<tr><td>
<code class="filename"><a class="filename" href="https://github.com/nix-community/home-manager/blob/master/modules/misc/nixgl.nix" target="_top">
&lt;home-manager/modules/misc/nixgl.nix&gt;
</a></code>
</td></tr>
</table>
</dd>
<dt>
<span class="term">
<a id="opt-nixGL.prime.card"></a><a class="term" href="options.xhtml#opt-nixGL.prime.card"><code class="option">nixGL.prime.card</code>
</a>
</span>
</dt>
<dd>
<p>Selects the non-default graphics card used for PRIME render offloading.
The value can be:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>a number, selecting the n-th non-default GPU;</p></li><li class="listitem"><p>a PCI bus id in the form <code class="literal">pci-XXX_YY_ZZ_U</code>;</p></li><li class="listitem"><p>a PCI id in the form <code class="literal">vendor_id:device_id</code></p></li></ul></div><p>For more information, consult the Mesa documentation on the <code class="literal">DRI_PRIME</code>
environment variable.</p>
<p><span class="emphasis"><em>Type:</em></span>
string</p>
<p><span class="emphasis"><em>Default:</em></span>
<code class="literal">&quot;1&quot;</code></p>
<p><span class="emphasis"><em>Example:</em></span>
<code class="literal">&quot;pci-0000_06_00_0&quot;</code></p>
<p><span class="emphasis"><em>Declared by:</em></span></p>
<table border="0" summary="Simple list" class="simplelist">
<tr><td>
<code class="filename"><a class="filename" href="https://github.com/nix-community/home-manager/blob/master/modules/misc/nixgl.nix" target="_top">
&lt;home-manager/modules/misc/nixgl.nix&gt;
</a></code>
</td></tr>
</table>
</dd>
<dt>
<span class="term">
<a id="opt-nixGL.prime.installScript"></a><a class="term" href="options.xhtml#opt-nixGL.prime.installScript"><code class="option">nixGL.prime.installScript</code>
</a>
</span>
</dt>
<dd>
<p>If this option is set, the wrapper script <code class="literal">prime-offload</code> is installed
into the environment. It allows starting programs on the secondary GPU
selected by the <code class="literal">nixGL.prime.card</code> option. This makes sense when the
program is not already using one of nixGL PRIME wrappers, or for
programs not installed from Nixpkgs.</p><p>This option can be set to either “mesa” or “nvidia”, making the script
use one or the other graphics library.</p>
<p><span class="emphasis"><em>Type:</em></span>
null or one of “mesa”, “nvidia”</p>
<p><span class="emphasis"><em>Default:</em></span>
<code class="literal">null</code></p>
<p><span class="emphasis"><em>Example:</em></span>
<code class="literal">&quot;mesa&quot;</code></p>
<p><span class="emphasis"><em>Declared by:</em></span></p>
<table border="0" summary="Simple list" class="simplelist">
<tr><td>
<code class="filename"><a class="filename" href="https://github.com/nix-community/home-manager/blob/master/modules/misc/nixgl.nix" target="_top">
&lt;home-manager/modules/misc/nixgl.nix&gt;
</a></code>
</td></tr>
</table>
</dd>
<dt>
<span class="term">
<a id="opt-nixGL.prime.nvidiaProvider"></a><a class="term" href="options.xhtml#opt-nixGL.prime.nvidiaProvider"><code class="option">nixGL.prime.nvidiaProvider</code>
</a>
</span>
</dt>
<dd>
<p>If this option is set, it overrides the offload provider for Nvidia
PRIME offloading. Consult the proprietary Nvidia driver documentation
on the <code class="literal">__NV_PRIME_RENDER_OFFLOAD_PROVIDER</code> environment variable.</p>
<p><span class="emphasis"><em>Type:</em></span>
null or string</p>
<p><span class="emphasis"><em>Default:</em></span>
<code class="literal">null</code></p>
<p><span class="emphasis"><em>Example:</em></span>
<code class="literal">&quot;NVIDIA-G0&quot;</code></p>
<p><span class="emphasis"><em>Declared by:</em></span></p>
<table border="0" summary="Simple list" class="simplelist">
<tr><td>
<code class="filename"><a class="filename" href="https://github.com/nix-community/home-manager/blob/master/modules/misc/nixgl.nix" target="_top">
&lt;home-manager/modules/misc/nixgl.nix&gt;
</a></code>
</td></tr>
</table>
</dd>
<dt>
<span class="term">
<a id="opt-nixGL.vulkan.enable"></a><a class="term" href="options.xhtml#opt-nixGL.vulkan.enable"><code class="option">nixGL.vulkan.enable</code>
</a>
</span>
</dt>
<dd>
<p>Whether to enable Vulkan in nixGL wrappers.</p><p>This is disabled by default bacause Vulkan brings in several libraries
that can cause symbol version conflicts in wrapped programs. Your
mileage may vary.</p>
<p><span class="emphasis"><em>Type:</em></span>
boolean</p>
<p><span class="emphasis"><em>Default:</em></span>
<code class="literal">false</code></p>
<p><span class="emphasis"><em>Example:</em></span>
<code class="literal">true</code></p>
<p><span class="emphasis"><em>Declared by:</em></span></p>
<table border="0" summary="Simple list" class="simplelist">
<tr><td>
<code class="filename"><a class="filename" href="https://github.com/nix-community/home-manager/blob/master/modules/misc/nixgl.nix" target="_top">
&lt;home-manager/modules/misc/nixgl.nix&gt;
</a></code>
</td></tr>
</table>
</dd>
<dt>
<span class="term">
<a id="opt-nixpkgs.config"></a><a class="term" href="options.xhtml#opt-nixpkgs.config"><code class="option">nixpkgs.config</code>