Teknik Telekomunikasi    
   
Daftar Isi
(Sebelumnya) Graphical Environment ManagerGraphics Layout Engine (Berikutnya)

Graphics hardware and FOSS

Free and open source software (FOSS) can be used with a variety of graphics hardware, largely via the X.Org project. There are varying levels of support, ranging from completely working drivers to unsupported hardware. Some manufacturers do not provide open source drivers or technical documentation suitable for independent developers to write accelerated 3D device drivers; support for products from these companies can be limited: they may provide only binary drivers (known as binary blobs) or lack of documentation may leave developers of open source drivers to reverse engineer their products or not support them at all. In the case of binary drivers there are also objections due to free software philosophy, software quality and security concerns.[1] There are also concerns that the redistribution of closed source Linux kernel modules may be illegal.[2]

GLX demo included with X11

A widely known source for performance information is the free3d.org site,[3] which collects 3D performance information—specifically glxgears frame rates—submitted by users. On the basis of what it concedes is an inadequate benchmark,[4] the site currently lists ATI's Radeon HD 4670 as recommended for "best 3D performance." Additionally, Phoronix routinely runs benchmarks comparing free driver performance.

Contents

Free software support

In general, the vesa driver supports most graphics cards without acceleration and with display resolutions limited to a set of resolutions programmed in the video BIOS by the manufacturer.

Also see: Kernel Documentation/fb or the Phoronix Test Suite

ATI/AMD

Currently[when?] support for ATI hardware is provided by the radeon driver, with the majority of cards being supported by either the R300g or R600g Gallium 3D drivers. R300g supports the R300, R400, and R500 series of cards, while R600g supports the R600, R700, R800, and the R900 series.[5] Older Radeon cards such as the R100 and R200 series still use a classic Mesa driver. The radeon drivers provide 2D and Xv acceleration, with 3D support available for almost all supported cards. However, proprietary firmware is still required for hardware acceleration.[6] Full Modesetting support is also available.

Feature matrices are available for radeon from Freedesktop.org. In addition, they also host the RadeonProgram, which aims to have a community maintained application compatibility database similar to the Wine project's AppDB.

ATI released programming specifications for a number of chipsets and features in 2007, 2008 and 2009.[7][8][9][10][11] AMD also does some active development and support for the radeon driver.[12] This is in direct contrast to AMD's main competitor in the graphics field Nvidia, which does offer its own proprietary driver similar to AMD Catalyst, but does not provide any support or assistance to any free graphics initiatives.[13] AMD had just two engineers working full-time on the free drivers, namely Alex Deucher and Richard Li, although they decided to work to expand their free graphics team.[14] They recently hired three more developers, with one of the developers going to be working on the desktop graphics stack and the other two on embedded open-source priorities.[15] The developers in question have now been confirmed to be veteran graphics coders Michel Dänzer (taking over from Richard) and Christian König,[16] as well as Tom Stellard.

Recently, work on performance optimizations has greatly enhanced the 3D performance of the radeon driver, especially for users of R300g.[17] In some select cases, the R300g driver can even outperform a legacy Catalyst driver in terms of 3D performance.[18] Various options and tweaks can also be enabled to optimize the free driver's speed and offer more competitive performance.[19]

Nvidia

A screenshot of REnouveau, which is a program that collects data for most of nouveau's reverse engineering work

Nvidia, in the past, provided documentation for the older RIVA TNT series chipsets and maintained the partially open source but partially obfuscated 2D-only nv driver for X.Org.[20] However, this features neither 3D acceleration nor motion compensation.[21][22] On March 26, 2010, Nvidia announced that it would stop supporting new technologies and GPUs in nv, stating that

  • Nvidia will continue to support the existing functionality and existing level of acceleration in the nv driver for existing GPUs, on existing, and (within reason) future, X server versions.
  • Nvidia will not support the xf86-video-nv driver on Fermi or later GPUs.
  • Nvidia will not support DisplayPort, on any GPU, in the xf86-video-nv driver.
—Andy Ritger, Message to the x.org mailing list[23][24]

The nouveau driver project aims to reverse engineer Nvidia's cards to produce 3D acceleration for X.Org utilizing Gallium 3D. While still at an early stage of development, several distributions of Linux, starting with Fedora,[25] have chosen to use nouveau as the default open-source driver for Nvidia cards.[26][27] The nouveau driver can already manage to offer competitive 3D performance on lower end Nvidia graphics hardware, when compared to the official binary driver.[28][29] On March 26, 2012, the Nouveau driver was marked as stable and promoted from the staging area of the Linux kernel.[30]

A feature matrix of Nouveau's current capabilities is available at the project's website.[31]

Intel

Intel has a long history of producing or commissioning open source drivers for its graphics chips, with the notable exception of their latest GMA 500 and GMA 3600/GMA 3650 chips that severely lacks documentation.[12] The driver development is outsourced to Tungsten Graphics.

There are currently two versions of the Intel X.Org driver, the xorg-video-i810 driver which supports the i810 and a number of more recent chipsets[32] and the updated xorg-video-intel driver that supports the same hardware, with the recent versions 2.0 and 2.1 adding support for later chips, including the G33, Q33 and Q35.[33]

In addition, the xorg-video-intel driver (sometimes known as the "modesetting driver") does not use the video BIOS for switching video modes; as some BIOSes include only a limited range of modes, this provides more reliable access to those supported by Intel video cards.

Unlike the radeon and nouveau drivers, Intel does not intend to utilize the Gallium 3D framework for its graphics drivers.[34] Intel has also recently put work into optimizing their free Linux drivers to have closer performance to their Windows counterparts, especially on Sandy Bridge hardware where various performance optimizations have now allowed the free Intel driver to be able to outperform their proprietary Windows drivers at certain tasks.[35][36][37] Some of these performance enhancements can also benefit users of older hardware.[38]

Matrox

Matrox develops and manufactures these products:

  • Matrox Mystique
  • Matrox Parhelia
  • Matrox G200
  • Matrox G400
  • Matrox G500

Matrox provides open source drivers for all their chipsets older than the G550; chipsets newer than the G550 are only supported by a closed source driver.

S3 Graphics

S3 Graphics develops these products:

ARM

ARM Holdings develops the Mali series GPUs and sells soft IP or hard IP to licensees. On January 21, 2012, Phoronix reported that Luc Verhaegen was driving a reverse-engineering attempt aimed at the ARM Holdings Mali series of GPUs, specifically the Mali-200 and Mali-400 versions. The reverse-engineering project was presented at FOSDEM, February 4, 2012.[39][40] On February 2nd 2013, Verhaegen demonstrated Quake III Arena in timedemo mode, running on top of the Lima driver.[41]

Imagination Technologies

Imagination Technologies develops the PowerVR series of GPUs and sells them as IP core (Intellectual Property), e.g. there are a couple of PowerVR based-Intel GPUs but mostly used in mobile SoCs. Imagination Technologies do not provide a FOSS driver nor any documentation for their products. The Free Software Foundation has put reverse-engineering of the PowerVR driver on a high-priority project list.[42]

Qualcomm

Qualcomm develops and manufactures the Adreno GPU series, mostly as part of their Snapdragon (system on chip). In 2012, Phoronix and Slashdot reported that Rob Clark was working on reverse-engineering the Qualcomm Adreno (ex ATI Imageon) GPU as found in their Snapdragon mobile platform.[43][44] Clark wrote in a referenced blog post that he is doing the project in his spare time, and that the Qualcomm platform was his only viable target for working on open 3D graphics since his employers (Texas Instruments and Linaro) were affiliated with the Imagination PowerVR and ARM Mali cores which would otherwise have been his primary targets, and that he already had working command streams for 2D support, and that 3D commands seemed to have the same characteristics.[45] The driver code was published on Gitorious under the name freedreno.[46] It has since been moved to GitHub.[47] In 2012, a working shader assembler was completed[48] and demonstration versions were developed for texture mapping[49] and phong shading[50] using the reverse-engineered shader compiler. At FOSDEM, february 2 2013, Clark demonstrated Freedreno with support for Gallium3D running desktop compositing, the XBMC media player and Quake III Arena.[51]

Broadcom

Broadcom develops and manufactures the VideoCore GPU series. E.g. the Raspberry Pi uses it. There were no FOSS drivers available for VideoCore.[52] However on October 24, 2012 the Raspberry Pi Foundation, in co-operation with Broadcom, open sourced, (using the 3-clause BSD FOSS licence) all the ARM (CPU) code that drives the GPU, through "letterbox" software interfaces. But on the Videocore GPU most of the actual video acceleration is done using firmware coded for its proprietary GPU, and this firmware wasn't open sourced.[53] Also, as there is neither toolchain available that could target this proprietary GPU, nor its ISA is documented, no possible advantage could be taken in case if the firmware source code would be made available.

Other vendors

SiS and VIA have both shown limited interest and communication regarding open source drivers; however, both have released source code which has later been integrated into X.Org by FOSS developers.[21] In July 2008, VIA opened up documentation for their products to improve its image within the Linux and open-source communities.[54] Although, so far VIA has failed to work with the open source community to provide documentation and a working DRM driver, leaving expectations for supporting the Linux operating system unfulfilled.[55] On January 6, 2011 it was announced that VIA was no longer interested in supporting free graphics initiatives.[56]

DisplayLink have announced an open source project called libdlo with the goal of bringing support for their USB graphics technology to Linux and other platforms. The code is available under the LGPL license.[57] It has not yet been integrated into an X.Org driver. DisplayLink graphics support is available through the kernel udlfb driver (with fbdev) in mainline, and udl/drm driver, which as of March 2012 is only available in the drm-next tree.

Often other non-hardware related vendors may also lend a hand to free graphics initiatives. Red Hat has some employees working full-time on several free and open source software projects, such as two full-time employees working on the free software radeon (David Airlie and JĂ©rĂ´me Glisse[58]) and one full-time employee working on the free software nouveau graphic drivers.[citation needed] In addition, the Fedora Project runs a "Fedora Graphics Test Week" event before the launch of their new Linux distribution versions in order to provide rigorous testing to free graphics drivers.[59] Other companies that have provided development or support include Novell and VMware.

Problems with binary drivers

There are a number of objections to binary-only drivers. These may be philosophical, with some feeling that drivers distributed without source code are against the beliefs of the free software movement, or pragmatic copyright, security or reliability concerns. As part of a wider campaign against binary blobs, OpenBSD lead developer Theo de Raadt has pointed out that with a binary driver there is "no way to fix it when it breaks (and it will break)" and that once a product which relies on binary drivers is declared to be end-of-life by the manufacturer, it is effectively "broken forever."[60] The project has also asserted that binary drivers "hide bugs and workarounds for bugs,"[61] a comment that has been somewhat vindicated by flaws found in binary drivers, including in October 2006 an exploitable bug in Nvidia's 3D drivers discovered by Rapid7. It is speculated that this bug has existed since 2004, although Nvidia have denied this, asserting that the issue was only communicated to them in July 2006 and that the 2004 bug was a bug in X.Org, not in Nvidia's driver.[62] Another problem with binary drivers is that they often do not work with current versions of open source software, and almost never support development snapshots of open source software - e.g. it is usually not directly possible for a developer to use Nvidia's or ATI's proprietary drivers with a development snapshot of an X server or a development snapshot of the Linux kernel.

In the Linux kernel development community, Linus Torvalds has made strong statements on the issue of binary-only modules, asserting: "I refuse to even consider tying my hands over some binary-only module", and continuing: "I want people to know that when they use binary-only modules, it's THEIR problem".[63] Another kernel developer, Greg Kroah-Hartman, has commented that a binary-only kernel module does not comply with the kernel's license—the GNU General Public License—it "just violates the GPL due to fun things like derivative works and linking and other stuff."[64]

Writer and computer scientist Peter Gutmann has expressed concerns that the digital rights management scheme in Microsoft's Windows Vista operating system may limit the availability of the documentation required to write open drivers as it "requires that the operational details of the device be kept confidential."[65]

Open hardware projects

Project VGA assembled PCB

The Project VGA aims to create a low budget, open source, VGA compatible video card. All information to create one is available, but at present there seems to be no development. Some data:[66]

  • PCI bus interface (32 bit, 33/66 MHz, 3,3/5V compatible)
  • Xilinx Spartan-3 S400 FPGA (aiming for ~100 MHz)
  • 16 MB SDRAM (aiming for ~166 MHz)
  • Onboard programmer with USB interface
  • Analog (HD15) VGA output connector.

The Open Graphics Project is another aim at creating an open hardware GPU. The Open Graphics Device v1 features dual DVI-I outputs and 100-pin IDC connector. On September 2010, the first 25 OGD1 boards were made available for grant application and purchase ($750).[67]

The Milkymist system-on-chip, targeted at embedded graphics instead of desktop computers, supports a VGA output, a limited vertex shader and a 2D texturing unit.[68]

See also

References

  1. ^ Linux Weekly News, Aug 14, 2006: X.org, distributors, and proprietary modules
  2. ^ Greg Kroah-Hartman (2006). "Myths, Lies, and Truths about the Linux kernel". Linux Symposium. http://www.kroah.com/log/linux/ols_20 06_keynote.html. "So, here's the simple answer to this issue: Closed source Linux kernel modules are illegal. That's it, it is very simple. I've had the misfortune of talking to a lot of different IP lawyers over the years about this topic, and every one that I've talked to all agree that there is no way that anyone can create a Linux kernel module, today, that can be closed source. It just violates the GPL due to fun things like derivative works and linking and other stuff. Again, it's very simple. Now no lawyer will ever come out in public and say this, as lawyer really aren't allowed to make public statements like this at all. But if you hire one, and talk to them in the client/lawyer setting, they will advise you of this issue."
  3. ^ "3D Graphics hardware performance using Free Software drivers (X.Org DRI) [Free3D"]. http://www.free3d.org/. 090501 free3d.org
  4. ^ free3d.org - FAQ: "Is glxgears an accurate measure of 3D performance? No, it sucks in multiple ways."
  5. ^ The Direction Of ATI Radeon Graphics In Ubuntu 11.04 Phoronix, March 08, 2011 (Article by Michael Larabel)
  6. ^ Details of package firmware-linux-nonfree in squeeze Debian.org
  7. ^ Michael Larabel. "AMD Releases Open-Source R600/700 3D Code". http://www.phoronix.com/scan.php?page =article&item=amd_r600_oss_3d. Retrieved 2009-01-01.
  8. ^ "LWN: AMD to open up graphics specs". http://lwn.net/Articles/248227/. Retrieved 2007-09-05.
  9. ^ Michael Larabel. AMD: GPU Specifications Without NDAs!
  10. ^ David Airlie (2007-09-12). "AMD hand me specs on a CD". Retrieved 2007-09-14. 
  11. ^ Michael Larabel (2008-02-22). "AMD Releases 3D Programming Documentation". Retrieved 2008-03-12. 
  12. ^ a b An overview of graphic card manufacturers and how well they work with Ubuntu Ubuntu Gamer, January 10, 2011 (Article by Luke Benstead)
  13. ^ Nvidia's Response To Recent Nouveau Work Phoronix, December 14, 2009 (Article by Michael Larabel)
  14. ^ AMD's Hiring Open-Source Graphics Developers Still Phoronix, May 12, 2011 (Article by Michael Larabel)
  15. ^ AMD Already Adds On Two Open-Source Developers Phoronix, May 14, 2011 (Article by Michael Larabel)
  16. ^ AMD's New Open-Source Employees Phoronix, July 5, 2011 (Article by Michael Larabel)
  17. ^ Further Testing Shows More Hope For ATI Gallium3D Phoronix, January 19, 2011 (Article by Michael Larabel)
  18. ^ The Major Open-Source ATI Improvements Over Two Years Phoronix, April 11, 2011 (Article by Michael Larabel)
  19. ^ A Fresh Look At The AMD Radeon Gallium3D Performance Phoronix, June 10, 2011 (Article by Michael Larabel)
  20. ^ X.org nv driver page
  21. ^ a b David M. Airlie (2006-07-19). "Open Source Graphic Drivers—They Don't Kill Kittens" (PDF). Proceedings of the Linux Symposium Volume One. Ottawa, Canada. http://www.linuxsymposium.org/2006/li nuxsymposium_procv1.pdf. Retrieved 2007-01-28.
  22. ^ The nv(4) man page
  23. ^ Andy Ritger (2010-03-26). "[ANNOUNCE] Deprecation of xf86-video-nv". Archived from the original on 2010-04-02. http://www.webcitation.org/5oh2tHtTD. Retrieved 2010-04-02.
  24. ^ Michael Larabel (2010-03-26). "Nvidia Drops Their Open-Source Driver, Refers Users To VESA Driver". phoronix.com. Archived from the original on 2010-04-02. http://www.webcitation.org/5oh2U9GW6. Retrieved 2010-04-02.
  25. ^ "Testing Out The Nouveau Driver On Fedora 11". http://www.phoronix.com/scan.php?page =news_item&px=NzE3OA.
  26. ^ nouveau : Open Source 3D acceleration for Nvidia cards
  27. ^ Nouveau To Enter The Ubuntu 10.04 LTS Kernel Phoronix, November 23, 2009 (Article by Michael Larabel)
  28. ^ On Low-End GPUs, Nouveau Speeds Past The Nvidia Driver Phoronix, March 19, 2011 (Article by Michael Larabel)
  29. ^ Nouveau's OpenGL Performance Approaches The Nvidia Driver Phoronix, March 21, 2011 (Article by Michael Larabel)
  30. ^ Jonathan Corbet (2012-03-23). "The Nouveau driver graduates from staging". LWN.net. http://lwn.net/Articles/488338/.
  31. ^ http://nouveau.freedesktop.org/wiki/F eatureMatrix
  32. ^ "i810 man page". Archived from the original on 2007-02-04. http://web.archive.org/web/2007020407 1849/http://intellinuxgraphics.org/ma n.html. Retrieved 2007-02-14.
  33. ^ Eric Anholt. "X.Org mailing list: xf86-video-intel 2.1.0". http://lists.freedesktop.org/archives /xorg-announce/2007-July/000318.html. Retrieved 2007-07-09.
  34. ^ "Intel & The Shortcomings Of Gallium3D". Phoronix. 2010-04-13. http://www.phoronix.com/scan.php?page =news_item&px=ODE0OQ. Retrieved 2010-10-26.
  35. ^ "More Performance Comes Out Of Intel Linux SNB". Phoronix. 2011-03-22. http://www.phoronix.com/scan.php?page =news_item&px=OTIzNQ. Retrieved 2011-03-23.
  36. ^ "Intel Sandy Bridge Performance Goes Up Again". Phoronix. 2011-03-31. http://www.phoronix.com/scan.php?page =article&item=intel_llc_caching&a mp;num=1. Retrieved 2011-03-31.
  37. ^ "Intel SNB Linux Driver Can Out Run Windows Driver". Phoronix. 2011-05-23. http://www.phoronix.com/scan.php?page =article&item=intel_snbsds_compar e&num=1. Retrieved 2011-05-23.
  38. ^ "A Historical Look At Intel Ironlake Graphics Performance". Phoronix. 2011-05-25. http://www.phoronix.com/vr.php?view=1 6049. Retrieved 2011-05-25.
  39. ^ YouTube:FOSDEM 2012 - Open-Source ARM Mali
  40. ^ Phoronix, Jan 21 2012: An Open-Source, Reverse-Engineered Mali GPU Driver
  41. ^ Quake 3 Arena timedemo on top of the lima driver!
  42. ^ Free Software Foundation, Apr 25, 2005: High Priority Free Software Projects
  43. ^ Michael Larabel (14 April 2012). "An Open-Source Graphics Driver For Snapdragon". Phoronix. http://www.phoronix.com/scan.php?page =article&item=qualcomm_freedreno. Retrieved 15 April 2012.
  44. ^ Soulskill (14 April 2012). "Open-Source Qualcomm GPU Driver Published". Slashdot. http://linux.slashdot.org/story/12/04 /14/219230/open-source-qualcomm-gpu-d river-published. Retrieved 15 April 2012.
  45. ^ Rob Clark (14 April 2012). "Fighting back against binary blobs!". Linaro. http://bloggingthemonkey.blogspot.se/ 2012/04/fighting-back-against-binary- blobs.html. Retrieved 15 April 2012.
  46. ^ Freedreno, 15 April 2012
  47. ^ Freedreno at GitHub
  48. ^ Rob Clark (29 July 2012). "freedreno update: first renders shader assembler!". http://bloggingthemonkey.blogspot.se/ 2012/07/freedreno-update-first-render s-shader.html. Retrieved 16 August 2012.
  49. ^ Rob Clark (5 August 2012). "textured cube (fullscreen!)". http://bloggingthemonkey.blogspot.se/ 2012/08/textured-cube-fullscreen.html. Retrieved 16 August 2012.
  50. ^ Rob Clark (15 August 2012). "Open Source lolscat!". http://bloggingthemonkey.blogspot.se/ 2012/08/open-source-lolscat.html. Retrieved 16 August 2012.
  51. ^ Michael Larabel (2 February 2013). "Freedreno Gallium3D Shows Much Promise". http://www.phoronix.com/scan.php?page =news_item&px=MTI5NDk. Retrieved 11 February 2013.
  52. ^ "Phoronix on the Raspberry Pi GPU". http://www.phoronix.com/scan.php?page =news_item&px=MTA1MTc.
  53. ^ opening up ARM userland code for the Raspberry Pi
  54. ^ Michael Larabel (2008-07-26). "VIA Publishes Three Programming Guides". Phoronix. http://www.phoronix.com/scan.php?page =news_item&px=NjYyMg. Retrieved 2008-08-04.
  55. ^ Michael Larabel (2009-11-21). "VIA's Linux TODO List... Maybe Look Forward To 2011?". Phoronix. http://www.phoronix.com/scan.php?page =article&item=via_2010_roadmap&am p;num=1. Retrieved 2009-12-30.
  56. ^ VIA's Open Linux Graphics Driver Has Been Defenestrated Phoronix, January 06, 2011 (Article by Michael Larabel)
  57. ^ "DisplayLink Releases Linux Source Code for its USB Graphics Processors" (Press release). DisplayLink. 2009-05-15. http://www.displaylink.com/news/news1 50509.htm. Retrieved 2009-05-15.
  58. ^ AMD's Hiring Another Open-Source Driver Developer Phoronix, December 11, 2010 (Article by Michael Larabel)
  59. ^ It's Fedora Graphics Test Week Phoronix, February 22, 2011 (Article by Michael Larabel)
  60. ^ Theo de Raadt (2006-12-03). "Open Documentation for Hardware". Presentation slides from OpenCON 2006. http://www.openbsd.org/papers/opencon 06-docs/index.html. Retrieved 2007-02-01.
  61. ^ "3.9: "Blob!"". OpenBSD. http://www.openbsd.org/lyrics.html#39. Retrieved 2007-02-12.
  62. ^ Linux - How does the Rapid7 Advisory R7-0025 affect the Nvidia Unix driver?
  63. ^ Linus Torvalds, kernel mailing list, Feb 7, 1999.
  64. ^ Myths, Lies, and Truths about the Linux kernel by Greg Kroah-Hartman
  65. ^ Peter Gutmann (2006-12-26). A Cost Analysis of Windows Vista Content Protection. Retrieved 2007-01-28. 
  66. ^ "Home of Project VGA, the low budget, open source, VGA compatible video card". http://wacco.mveas.com/. 090503 wacco.mveas.com
  67. ^ "Linux Fund: OGD1". Open Graphics Project. 2010-09-23. http://linuxfund.org/projects/ogd1/. Retrieved 2011-11-04.
  68. ^ Bourdeauducq, Sebastien (June, 2010). "A performance-driven SoC architecture for video synthesis". http://www.milkymist.org/thesis/thesi s.pdf. Retrieved 2010-11-05.

External links

(Sebelumnya) Graphical Environment ManagerGraphics Layout Engine (Berikutnya)