This article is within the scope of WikiProject Computing, a collaborative effort to improve the coverage of computers, computing, and information technology on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.ComputingWikipedia:WikiProject ComputingTemplate:WikiProject ComputingComputing articles
This article is within the scope of WikiProject Technology, a collaborative effort to improve the coverage of technology on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.TechnologyWikipedia:WikiProject TechnologyTemplate:WikiProject TechnologyTechnology articles
This article is within the scope of WikiProject Computer graphics, a collaborative effort to improve the coverage of computer graphics on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.Computer graphicsWikipedia:WikiProject Computer graphicsTemplate:WikiProject Computer graphicscomputer graphics articles
This article is within the scope of WikiProject Computer science, a collaborative effort to improve the coverage of Computer science related articles on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.Computer scienceWikipedia:WikiProject Computer scienceTemplate:WikiProject Computer scienceComputer science articles
This article is within the scope of WikiProject Linux, a collaborative effort to improve the coverage of Linux on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.LinuxWikipedia:WikiProject LinuxTemplate:WikiProject LinuxLinux articles
__DTSUBSCRIBEBUTTONMOBILE__{"headingLevel":2,"name":"h-85.177.255.57-2009-01-01T14:35:00.000Z","type":"heading","level":0,"id":"h-Not_always_kernel_modules_for_DRM-2009-01-01T14:35:00.000Z","replies":["c-85.177.255.57-2009-01-01T14:35:00.000Z-Not_always_kernel_modules_for_DRM"],"text":"Not always kernel modules for DRM","linkableTitle":"Not always kernel modules for DRM"}-->
For example on OpenBSD, there are no kernel modules, but there is DRI via some DRM compiled into the kernel: http://undeadly.org/cgi?action=article&sid=2008102916422185.177.255.57 (talk) 14:35, 1 January 2009 (UTC)[reply]__DTELLIPSISBUTTON__{"threadItem":{"timestamp":"2009-01-01T14:35:00.000Z","author":"85.177.255.57","type":"comment","level":1,"id":"c-85.177.255.57-2009-01-01T14:35:00.000Z-Not_always_kernel_modules_for_DRM","replies":[]}}-->
Are there video cards made at this point which are not supported by DRI under Linux? —Darxus (talk) 17:52, 14 November 2010 (UTC)[reply]__DTELLIPSISBUTTON__{"threadItem":{"timestamp":"2010-11-14T17:52:00.000Z","author":"Darxus","type":"comment","level":1,"id":"c-Darxus-2010-11-14T17:52:00.000Z-How_widely_supported?","replies":[]}}-->
__DTSUBSCRIBEBUTTONDESKTOP__{"headingLevel":2,"name":"h-JavierCantero-2014-03-24T15:04:00.000Z","type":"heading","level":0,"id":"h-DRI_is_not_a_linux_kernel_feature-2014-03-24T15:04:00.000Z","replies":["c-JavierCantero-2014-03-24T15:04:00.000Z-DRI_is_not_a_linux_kernel_feature","c-JavierCantero-2014-04-16T09:51:00.000Z-DRI_is_not_a_linux_kernel_feature"],"text":"DRI is not a linux kernel feature","linkableTitle":"DRI is not a linux kernel feature"}-->
__DTSUBSCRIBEBUTTONMOBILE__{"headingLevel":2,"name":"h-JavierCantero-2014-03-24T15:04:00.000Z","type":"heading","level":0,"id":"h-DRI_is_not_a_linux_kernel_feature-2014-03-24T15:04:00.000Z","replies":["c-JavierCantero-2014-03-24T15:04:00.000Z-DRI_is_not_a_linux_kernel_feature","c-JavierCantero-2014-04-16T09:51:00.000Z-DRI_is_not_a_linux_kernel_feature"],"text":"DRI is not a linux kernel feature","linkableTitle":"DRI is not a linux kernel feature"}-->
Recently the article was added to the "Linux kernel features" category. Well, that is wrong. DRI is not in kernel space, Direct Rendering Manager is. DRI is the infrastructure --the glue-- between X Window, Mesa, and the 3D drivers, and lives in user space. DRM refers to the part of the drivers that lives in kernel space. --JavierCantero (talk) 15:04, 24 March 2014 (UTC)[reply]__DTELLIPSISBUTTON__{"threadItem":{"timestamp":"2014-03-24T15:04:00.000Z","author":"JavierCantero","type":"comment","level":1,"id":"c-JavierCantero-2014-03-24T15:04:00.000Z-DRI_is_not_a_linux_kernel_feature","replies":[]}}-->
This page and the Gallium3D page and the Mesa page all fail to say what the story is between these two driver api models. Questions I cannot answer from reading the text:
Which one is newer? There are not enough dates on DRI article to figure this out.
Which one is better? (Or a list of trade-offs)
If Mesa was rewritten from scratch and only one of them could be used, and only present-day hardware was to be supported, which api would be used?
The Mesa software renderer in in effect one of these, right? Is it DRI or Gallium3D?
My guess is that Gallium3D is the newer one, but clarifying this would help a lot.
Spitzak (talk) 17:06, 13 May 2016 (UTC)[reply]__DTELLIPSISBUTTON__{"threadItem":{"timestamp":"2016-05-13T17:06:00.000Z","author":"Spitzak","type":"comment","level":1,"id":"c-Spitzak-2016-05-13T17:06:00.000Z-DRI_verses_Gallium3D","replies":["c-JavierCantero-2016-05-18T15:12:00.000Z-Spitzak-2016-05-13T17:06:00.000Z"]}}-->
That's mainly a fault of the Gallium3D page. Gallium3D is a new architecture for writing Mesa drivers, so it's a internal matter of Mesa not directly related to the DRI architecture (which works the same way with an old Mesa "native" driver or with a new Gallium3D one). That should be clear after reading the Mesa and Gallium3D pages (which by the way should be merged into one page) --JavierCantero (talk) 15:12, 18 May 2016 (UTC)[reply]__DTELLIPSISBUTTON__{"threadItem":{"timestamp":"2016-05-18T15:12:00.000Z","author":"JavierCantero","type":"comment","level":2,"id":"c-JavierCantero-2016-05-18T15:12:00.000Z-Spitzak-2016-05-13T17:06:00.000Z","replies":["c-Spitzak-2016-05-19T01:05:00.000Z-JavierCantero-2016-05-18T15:12:00.000Z"]}}-->
The Mesa page still talks about "DRI" and "Gallium3D" as alternative driver models. You seem to be saying that "DRI" is the OpenGL api. Are there perhaps 2 things called "DRI"?Spitzak (talk) 01:05, 19 May 2016 (UTC)[reply]__DTELLIPSISBUTTON__{"threadItem":{"timestamp":"2016-05-19T01:05:00.000Z","author":"Spitzak","type":"comment","level":3,"id":"c-Spitzak-2016-05-19T01:05:00.000Z-JavierCantero-2016-05-18T15:12:00.000Z","replies":["c-JavierCantero-2016-05-19T09:22:00.000Z-Spitzak-2016-05-19T01:05:00.000Z","c-JavierCantero-2016-05-19T09:44:00.000Z-Spitzak-2016-05-19T01:05:00.000Z"]}}-->
The Mesa page is wrong, it's mixing concepts. See for example this for a better explanation. About DRI: it's the technology that binds the direct rendering application and the X Server. DRI is sort of a "glue", distributed in several places including the client application, the X Server and even the kernel. DRI is not "the OpenGL API" but one of those pieces that form DRI is a driver (called the "DRI driver") that is wrapped to look like an OpenGL library to the client application using it (see what I've added to this article for a more detailed explanation). Mesa is where those "DRI drivers" live, but Mesa also implements OpenGL using other methods (like software rendering) that don't access to the hardware of a video card and therefore they are not DRI drivers. There are DRI drivers that are implemented using the Gallium3D architecture (such as nouveau and radeonSI) but there are also Gallium3D software rendered drivers such as swrast and llvmpipe. On the other hand there is the "classic" (not Gallium3D) intel DRI driver and the classic software rendering (non-DRI) implementation —the original one that Brian Paul wrote. In short, the concepts DRI/non-DRI and classic/Gallium3D are orthogonal. --JavierCantero (talk) 09:22, 19 May 2016 (UTC)[reply]__DTELLIPSISBUTTON__{"threadItem":{"timestamp":"2016-05-19T09:22:00.000Z","author":"JavierCantero","type":"comment","level":4,"id":"c-JavierCantero-2016-05-19T09:22:00.000Z-Spitzak-2016-05-19T01:05:00.000Z","replies":[]}}-->
I've modified the Mesa (computer graphics) page, but maybe we should copy this conversation into Talk:Mesa (computer graphics) to show the reason for the change --JavierCantero (talk) 09:44, 19 May 2016 (UTC)[reply]__DTELLIPSISBUTTON__{"threadItem":{"timestamp":"2016-05-19T09:44:00.000Z","author":"JavierCantero","type":"comment","level":4,"id":"c-JavierCantero-2016-05-19T09:44:00.000Z-Spitzak-2016-05-19T01:05:00.000Z","replies":[]}}-->
The current page incarnation ignores existence of the modesetting DIX display driver. The DIX is hardware independent, and has been around something like 8 or more years, initially available in xf86-video-modesetting package, which was later merged into xorg-x11-server to serve as the default display driver. It can be used in place of any supported DDX that has KMS support, which includes most non-ancient devices from AMD, Intel and NVidia, among others. Mrmazda (talk) 05:16, 31 August 2022 (UTC)[reply]__DTELLIPSISBUTTON__{"threadItem":{"timestamp":"20220831051600","author":"Mrmazda","type":"comment","level":1,"id":"c-Mrmazda-20220831051600-Modesetting_DIX_Display_Driver","replies":["c-CodingKoopa-20220831181900-Mrmazda-20220831051600"]}}-->
For inspiration: X.Org Server#Glamor describes Glamor, the backend for modesetting's hardware independent DDX for translating Xorg render calls to OpenGL commands. -- CodingKoopa (talk) 18:19, 31 August 2022 (UTC)[reply]__DTELLIPSISBUTTON__{"threadItem":{"timestamp":"20220831181900","author":"CodingKoopa","type":"comment","level":2,"id":"c-CodingKoopa-20220831181900-Mrmazda-20220831051600","replies":[]}}-->