Contents

With the ATI driver I get "No matching card found."

A: If your card is actually a Rage 128 or Radeon, submit a bug and assign it to EricAnholt (eta@lclark.edu) with the output of "scanpci | grep 1002" (or "lspci -n | grep 1002" or "pciconf -l | grep 1002"). Better would be to use that output yourself to make a patch to xserver/hw/kdrive/ati/ati.c to add your PCI ID, test it, and then submit a patch.

With the Xnvidia driver, I just get "No matching card found."

A: The driver's author (Keith Packard) says that the driver shouldn't be used because it's only for one card, and doesn't accelerate that one because of lack of docs and obfuscation in open-source code. Xvesa is an alternative. Should someone want to pick up and maintain this driver, it would be welcomed, but will be a challenge.

Couldn't we just write a wrapper for XFree86 drivers and use them?

A: Essentially, no. There are a large number of calls from XFree86 drivers into XFree86's DDX layer. Furthermore, XFree86 drivers don't support acceleration in the same way, so offscreen pixmaps wouldn't be supportable as far as I know.

-- Main.EricAnholt - 23 Nov 2003

What is the difference between Xserver and X.Org ?

A: X.Org is a foundation that provides an open source implementation of the X Window System often reffered as "X.Org". Xserver is core functionality of that implementation.

AIGLX and GLX_EXT_texture_from_pixmap explanation

A: from onestone.

Short explanation:

     * **direct rendering**: The 3d application opens a window using the xserver protocol, but all opengl calls go directly to the driver and the xserver doesn't know anything about the rendering. **indirect rendering**: The 3d application opens a window using the xserver protocol, and all opengl calls go to the xserver and the xserver sends them to the driver. 

AIGLX (Accelerated Indirect GLX): Is simply a name for the ability of a driver to accelerate indirect rendering. (This has been supported already by nvidia for several years and has nothing to do with GLX_EXT_texture_from_pixmap)

AIGLX based GLX_EXT_texture_from_pixmap: This is what we currently get with the fglrx, intel and the free radeon drivers. This system copies the content of the window pixmap to a opengl texture. To make this work all gl calls have to go over the x protocol (AIGLX).

zero copy GLX_EXT_texture_from_pixmap: Instead of the slow copying of the window content into a gl texture, this allows to use the same memory area as x server drawable (pixmap) and as gl texture. There has to be a different memory management system to allow the xserver and the gl engine to share the same memory. There is already work done on a new memory manager (TTM) to allow zero copy GLX_texture_from_pixmap with open drivers in the future. This also allows GLX_EXT_texture_from_pixmap with direct rendering. This system is currently only supported by nvidia, but there are also some bugs with the nvidia memory management, known as "black window" bug.

redirected GLX: One problem that we see now with AIGLX GLX_EXT_texture_from_pixmap, is that other 3d applications are not redirected and paint directly on the screen. The current DRI (Direct rendering infrastructure) (fglrx is using it, but not nvidia) has no interface to render to an offscreen area (pixmap). Kristian Høgsberg is currently working on a new DRI interface to allow this. This system will only work with zero copy GLX_EXT_texture_from_pixmap because copying of each 3d frame would be to slow.

redirected XVideo: Nearly the same situation like for redirected GLX, but the interface is already there (since XOrg 7.2). But it's a little more difficult to make to the video acceleration engines render to offscreen memory and zero copy GLX_EXT_texture_from_pixmap is also needed to make it work with fast enough.

Questions/Answers about GLX_EXT_texture_from_pixmap

(A: agd5f, ajax)

  1. "GLX_EXT_texture_from_pixmap is missing" 
           * some cards like R300 radeon support indirect context only and this happens on such when trying to use in direct context 
  1. Does setting LIBGL_ALWAYS_INDIRECT=1 have bad (performance) impact on other stuff? 
           * For some stuff, yes. 
  1. Why GLX_EXT_texture_from_pixmap is not supported in direct context on r300? 
           * The whole point of only doing GLX_EXT_texture_from_pixmap in indirect contexts right now is that it's _hard_ to do in a direct context. 
           * We'll fix it. TTM is needed first.