BossBey File Manager
PHP:
8.2.28
OS:
Linux
User:
www-data
Root
/
usr
/
share
/
doc
/
nvidia-driver-550
/
html
📤 Upload
📝 New File
📁 New Folder
Close
Editing: randr14.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta name="generator" content= "HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org"> <meta http-equiv="Content-Type" content= "text/html; charset=us-ascii"> <title>Chapter 34. Offloading Graphics Display with RandR 1.4</title> <meta name="generator" content="DocBook XSL Stylesheets V1.68.1"> <link rel="start" href="index.html" title= "NVIDIA Accelerated Linux Graphics Driver README and Installation Guide"> <link rel="up" href="installationandconfiguration.html" title= "Part I. Installation and Configuration Instructions"> <link rel="prev" href="depth30.html" title= "Chapter 33. Configuring Depth 30 Displays"> <link rel="next" href="primerenderoffload.html" title= "Chapter 35. PRIME Render Offload"> </head> <body> <div class="navheader"> <table width="100%" summary="Navigation header"> <tr> <th colspan="3" align="center">Chapter 34. Offloading Graphics Display with RandR 1.4</th> </tr> <tr> <td width="20%" align="left"><a accesskey="p" href= "depth30.html">Prev</a> </td> <th width="60%" align="center">Part I. Installation and Configuration Instructions</th> <td width="20%" align="right"> <a accesskey="n" href= "primerenderoffload.html">Next</a></td> </tr> </table> <hr></div> <div class="chapter" lang="en"> <div class="titlepage"> <div> <div> <h2 class="title"><a name="randr14" id= "randr14"></a>Chapter 34. Offloading Graphics Display with RandR 1.4</h2> </div> </div> </div> <p>Version 1.4 of the X Resize, Rotate, and Reflect Extension (RandR 1.4 for short) adds a way for drivers to work together so that one graphics device can display images rendered by another.</p> <p><a name="requirements" id="requirements"></a></p> <h3>System Requirements</h3> <div class="itemizedlist"> <ul type="disc"> <li> <p>For displaying NVIDIA GPU desktop contents on a screen connected to another graphics device, X.Org X server version 1.13 or higher.</p> </li> <li> <p>For displaying another graphics device's desktop contents on a screen connected to an NVIDIA GPU, X.Org X server version 1.20.7 or higher. X server version 1.20.6 is also supported using <a href= "xconfigoptions.html#AllowPRIMEDisplayOffloadSink"><code class= "computeroutput">Option "AllowPRIMEDisplayOffloadSink" "boolean"</code></a>.</p> </li> <li> <p>A Linux kernel, version 3.13 or higher, with CONFIG_DRM enabled.</p> </li> <li> <p>Version 1.4.0 of the xrandr command-line utility.</p> </li> </ul> </div> <p><a name="outputsource" id="outputsource"></a></p> <h3>Using the NVIDIA Driver as an RandR 1.4 Output Source or Output Sink Provider</h3> <p>To use the NVIDIA driver as an RandR 1.4 output source provider, also known as “<span class="quote">PRIME</span>”, the X server needs to be configured to use the NVIDIA driver for its primary screen and to use the “<span class= "quote">modesetting</span>” driver for the other graphics device. This can be achieved by placing the following in <code class="computeroutput">/etc/X11/xorg.conf</code>:</p> <pre class="screen"> Section "ServerLayout" Identifier "layout" Screen 0 "nvidia" Inactive "intel" EndSection Section "Device" Identifier "nvidia" Driver "nvidia" BusID "<BusID for NVIDIA device here>" EndSection Section "Screen" Identifier "nvidia" Device "nvidia" Option "AllowEmptyInitialConfiguration" EndSection Section "Device" Identifier "intel" Driver "modesetting" EndSection Section "Screen" Identifier "intel" Device "intel" EndSection </pre> <p></p> <p>To use the NVIDIA driver as an RandR 1.4 output sink provider, also known as “<span class="quote">Reverse PRIME</span>”, the X server needs to be configured to use the “<span class="quote">modesetting</span>” driver for its primary screen and to use the NVIDIA driver for the other graphics device. This can be achieved by placing the following in <code class="computeroutput">/etc/X11/xorg.conf</code>:</p> <pre class="screen"> Section "ServerLayout" Identifier "layout" Screen 0 "intel" Inactive "nvidia" Option "AllowNVIDIAGPUScreens" EndSection Section "Device" Identifier "intel" Driver "modesetting" BusID "<BusID for Intel device here>" EndSection Section "Screen" Identifier "intel" Device "intel" EndSection Section "Device" Identifier "nvidia" Driver "nvidia" EndSection Section "Screen" Identifier "nvidia" Device "nvidia" EndSection </pre> <p></p> <p>When using the NVIDIA driver as a “<span class= "quote">Reverse PRIME</span>” RandR 1.4 output sink provider combined with an application being run via <a href= "primerenderoffload.html" title= "Chapter 35. PRIME Render Offload">Chapter 35, <i>PRIME Render Offload</i></a>, an optimization known as “<span class="quote">Reverse PRIME Bypass</span>” may be used, bypassing the bandwidth overhead of both PRIME Render Offload and PRIME Display Offload. In order for Reverse PRIME Bypass to be used, a PRIME Render Offload application must be unredirected, fullscreen, and visible only on a single NVIDIA-driven PRIME Display Offload output. Usage of Reverse PRIME Bypass is printed to the X log when verbose logging is enabled in the X server.</p> <p>If an NVIDIA Reverse PRIME output is the sole display in the system then special conditions apply. That configuration is supported if the NVIDIA driver version is 495.46 or later and the X.Org X server version is newer than 21.1.3. Failing these conditions the NVIDIA Reverse PRIME output will not be synchronized to the native refresh rate of the NVIDIA graphics card in which case X.Org will revert the display to a default rate of 1 frame per second.</p> <p>Note that at the time of writing the latest X.Org X server is 21.1.3 so there is no official X.Org release yet where this configuration is supported. For maintainers of Linux distributions and others who are willing to compile the X.Org X server locally, please cherry-pick this Git commit to support the configuration: <a href= "https://gitlab.freedesktop.org/xorg/xserver/-/commit/69774044716039fa70655b3bc6dd6a4ff4535cfd" target= "_top">https://gitlab.freedesktop.org/xorg/xserver/-/commit/69774044716039fa70655b3bc6dd6a4ff4535cfd</a>. The commit already lives in the branch where the next X.Org X server release after 21.1.3 will come from.</p> <p>See <a href="faq.html#busid">“What is the format of a PCI Bus ID?”</a> for information on determining the appropriate BusID string for your graphics card.</p> <p>The nvidia-xconfig(1) utility can be used to update the X configuration file for using the NVIDIA driver as an output source provider.</p> <pre class="screen"> $ nvidia-xconfig --prime </pre> <p>See the nvidia-xconfig(1) man page for details.</p> <p>The X server does not automatically enable displays attached using the output sink in this configuration. To do that, use the <code class="computeroutput">xrandr</code> command line tool.</p> <p>For NVIDIA as an output source:</p> <pre class="screen"> $ xrandr --setprovideroutputsource modesetting NVIDIA-0 $ xrandr --auto </pre> <p></p> <p>For NVIDIA as an output sink:</p> <pre class="screen"> $ xrandr --setprovideroutputsource NVIDIA-G0 modesetting $ xrandr --auto </pre> <p></p> <p>This pair of commands can be added to your X session startup scripts, for example by putting them in <code class= "computeroutput">$HOME/.xinitrc</code> before running <code class= "computeroutput">startx</code>.</p> <p>Use the</p> <pre class="screen"> $ xrandr --listproviders </pre> <p>command to query the capabilities of the graphics devices. If the system requirements are met and the X server is configured correctly, there should be a provider named <code class= "computeroutput">NVIDIA-0</code> or <code class= "computeroutput">NVIDIA-G0</code> with the <code class= "computeroutput">Source Output</code> or <code class= "computeroutput">Sink Output</code> capability, respectively, and one named <code class="computeroutput">modesetting</code> with the <code class="computeroutput">Sink Output</code> and/or <code class= "computeroutput">Source Output</code> capabilities. If either provider is missing or doesn't have the expected capability, check your system configuration.</p> <p><a name="randr14sync" id="randr14sync"></a></p> <h3>Synchronized RandR 1.4 Outputs</h3> <p>When running against X.Org X server with video driver ABI 23 or higher, synchronization is supported with compatible drivers. At the time of writing, synchronization is compatible with the “<span class="quote">modesetting</span>” driver with Intel devices on Linux version 4.5 or newer. If all requirements are met, synchronization will be used automatically.</p> <p>X.Org X server version 1.19 or newer is required to support synchronization. Without synchronization, displays are prone to “<span class="quote">tearing</span>”. See <a href= "randr14.html#caveats" title="Caveats">Caveats</a> for details.</p> <p>If synchronization is being used but is not desired, it can be disabled with:</p> <pre class="screen"> $ xrandr --output <output> --set "PRIME Synchronization" 0 </pre> <p>and re-enabled with:</p> <pre class="screen"> $ xrandr --output <output> --set "PRIME Synchronization" 1 </pre> <p></p> <p>See <a href="openglenvvariables.html#vblanksyncing" title= "Vblank syncing">Vblank syncing</a> for information on how OpenGL applications can synchronize with sink-provided outputs.</p> <p><a name="caveats" id="caveats"></a></p> <h3>Caveats</h3> <div class="itemizedlist"> <ul type="disc"> <li> <p>Support for PRIME Synchronization relies on DRM KMS support. See <a href="kms.html" title= "Chapter 36. Direct Rendering Manager Kernel Modesetting (DRM KMS)"> Chapter 36, <i>Direct Rendering Manager Kernel Modesetting (DRM KMS)</i></a> for more information.</p> </li> <li> <p>Some Intel i915 DRM driver versions, such as that included with Linux 4.5, have a bug where drmModeMoveCursor() and drmModePageFlip() interfere with each other, resulting in only one occurring per frame. If choppy performance is observed in configurations using PRIME Synchronization and i915, it is suggested to add <code class="computeroutput">Option "SWCursor"</code> to Intel's device section in xorg.conf. The bug appears to be fixed as of Linux 4.6.</p> </li> <li> <p>When running against X.Org X server version 1.18.x or lower, there is no synchronization between the images rendered by the NVIDIA GPU and the output device. This means that the output device can start reading the next frame of video while it is still being updated, producing a graphical artifact known as “<span class="quote">tearing</span>”. Tearing is expected due to limitations in the design of the X.Org X server prior to video driver ABI 23.</p> </li> <li> <p>NVIDIA's implementation of PRIME requires support for DRM render nodes, a feature first merged in Linux 3.12. However, the feature was not enabled by default until Linux 3.17. To enable it on earlier supported kernels, specify the <code class= "computeroutput">drm.rnodes=1</code> kernel boot parameter.</p> </li> <li> <p>PRIME Synchronization is compatible with xf86-video-amdgpu as an output sink. xf86-video-amdgpu implements a separate interface for PRIME Synchronization that the RandR layer of the X server does not recognize. As a result, X will print "randr: falling back to unsynchronized pixmap sharing", despite the fact that PRIME is synchronized. Additionally, the "PRIME Synchronization" output property will not function to disable PRIME Synchronization when set to 0.</p> </li> <li> <p>The NVIDIA driver only exposes the <code class= "computeroutput">Output Sink</code> capability by default on X server version 1.20.7 or later, but can be used without issue on X server version 1.20.6 with <code class="computeroutput">Option "AllowPRIMEDisplayOffloadSink"</code>. See <a href= "xconfigoptions.html#AllowPRIMEDisplayOffloadSink"><code class= "computeroutput">Option "AllowPRIMEDisplayOffloadSink" "boolean"</code></a> for more information.</p> </li> <li> <p>The NVIDIA driver requires DRM KMS support to operate as an output sink when the output source driver is either NVIDIA or AMDGPU. See <a href="kms.html" title= "Chapter 36. Direct Rendering Manager Kernel Modesetting (DRM KMS)"> Chapter 36, <i>Direct Rendering Manager Kernel Modesetting (DRM KMS)</i></a> for more information.</p> </li> </ul> </div> </div> <div class="navfooter"> <hr> <table width="100%" summary="Navigation footer"> <tr> <td width="40%" align="left"><a accesskey="p" href= "depth30.html">Prev</a> </td> <td width="20%" align="center"><a accesskey="u" href= "installationandconfiguration.html">Up</a></td> <td width="40%" align="right"> <a accesskey="n" href= "primerenderoffload.html">Next</a></td> </tr> <tr> <td width="40%" align="left" valign="top"> Chapter 33. Configuring Depth 30 Displays </td> <td width="20%" align="center"><a accesskey="h" href= "index.html">Home</a></td> <td width="40%" align="right" valign="top"> Chapter 35. PRIME Render Offload</td> </tr> </table> </div> </body> </html>
Save
Cancel