PS3 GPU DRM Driver: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
CelesteBlue (talk | contribs) No edit summary |
||
Line 1: | Line 1: | ||
[[Category:OtherOS]] | [[Category:OtherOS]] | ||
To fully exploit the PS3 graphics potential, developer really need a proper GPU DRM driver for PS3. The problem is that Linux kernel DRM framework is very complex and not well documented. | |||
=Linux Kernel DRM Framework= | = Linux Kernel DRM Framework = | ||
==KMS== | == Kernel Mode Setting (KMS) == | ||
* CRTC -> Encoder -> Connector | * CRTC -> Encoder -> Connector | ||
* PS3 has | * PS3 has two video out connectors: HDMI and AV multi | ||
* Use PS3 AV Manager to set resolution | * Use PS3 AV Manager to set resolution | ||
* '''ps3av_cmd_video_get_monitor_info''' can be used to get current supported resolutions | * '''ps3av_cmd_video_get_monitor_info''' can be used to get current supported resolutions | ||
* It seems that head A is connected to HDMI connector. | * It seems that head A is connected to HDMI connector. | ||
==TTM== | == Translation Table Manager (TTM) == | ||
TTM is short for Translation Table Maps (?or Manager?) which was originally a new DRM map type that could be flipped into and out of a general translation table; for example an AGP or PCI Gart. Since then it has, a bit misleading, become the name of the functionality of the DRM unified memory manager for display memory. A white-paper describing the DRM memory manager can be found [https://web.archive.org/web/20070703024247/http://www.tungstengraphics.com/mm.pdf here]. | |||
* Manages memory: video memory, GART memory and system memory. | * Manages memory: video memory, GART memory and system memory. | ||
* Nouveau DRM driver e.g. manages video memory globally per device. We cannot do it because each context has its own video memory. | * Nouveau DRM driver e.g. manages video memory globally per device. We cannot do it because each context has its own video memory. | ||
=Milestones= | = Milestones = | ||
# Create initial driver infrastructure (work in progress) | # Create initial driver infrastructure (work in progress) | ||
Line 31: | Line 30: | ||
# Port some 3D open-source game to PS3 GPU DRM, e.g. quake or doom | # Port some 3D open-source game to PS3 GPU DRM, e.g. quake or doom | ||
=Links= | = Links = | ||
==DRM User-Space== | == DRM User-Space == | ||
* http://blog.mecheye.net/2012/08/lets-make-a-low-level-part-1-getting-things-going/ | * http://blog.mecheye.net/2012/08/lets-make-a-low-level-part-1-getting-things-going/ | ||
==DRM Kernel-Space== | == DRM Kernel-Space == | ||
* | * https://web.archive.org/web/20141117064052/https://www.ideasonboard.org/media/drm/ | ||
* http://lxr.free-electrons.com/source/drivers/gpu/drm/nouveau/ | * http://lxr.free-electrons.com/source/drivers/gpu/drm/nouveau/ | ||
* http://lxr.free-electrons.com/source/drivers/gpu/drm/cirrus/ | * http://lxr.free-electrons.com/source/drivers/gpu/drm/cirrus/ | ||
Line 45: | Line 44: | ||
* http://lxr.free-electrons.com/source/drivers/staging/omapdrm/ | * http://lxr.free-electrons.com/source/drivers/staging/omapdrm/ | ||
* http://git.kernel.org/?p=linux/kernel/git/mattst88/glint.git;a=tree;f=drivers/gpu/drm/glint | * http://git.kernel.org/?p=linux/kernel/git/mattst88/glint.git;a=tree;f=drivers/gpu/drm/glint | ||
* http://www.x.org/wiki/ttm | * https://web.archive.org/web/20130128022722/http://www.x.org/wiki/ttm | ||
* http://lists.freedesktop.org/archives/dri-devel/2010-April/000183.html | * http://lists.freedesktop.org/archives/dri-devel/2010-April/000183.html | ||
* http://www.mail-archive.com/dri-devel@lists.sourceforge.net/msg50049.html | * http://www.mail-archive.com/dri-devel@lists.sourceforge.net/msg50049.html | ||
* http://permalink.gmane.org/gmane.comp.video.dri.devel/47889 | * http://permalink.gmane.org/gmane.comp.video.dri.devel/47889 | ||
* https://web.archive.org/web/20070703024247/http://www.tungstengraphics.com/mm.pdf | |||
* https://www.kernel.org/doc/html/latest/gpu/i915.html | |||
* https://www.kernel.org/doc/html/latest/gpu/drm-internals.html | |||
==PS3 Kernel Drivers== | == PS3 Kernel Drivers == | ||
* http://lxr.free-electrons.com/source/arch/powerpc/include/asm/ps3av.h | * http://lxr.free-electrons.com/source/arch/powerpc/include/asm/ps3av.h | ||
* http://lxr.free-electrons.com/source/drivers/ps3/ps3av.c | * http://lxr.free-electrons.com/source/drivers/ps3/ps3av.c | ||
* http://lxr.free-electrons.com/source/drivers/video/ps3fb.c | * http://lxr.free-electrons.com/source/drivers/video/ps3fb.c | ||
{{Linux}}<noinclude>[[Category:Main]]</noinclude> | {{Linux}}<noinclude>[[Category:Main]]</noinclude> |
Latest revision as of 23:55, 6 May 2025
To fully exploit the PS3 graphics potential, developer really need a proper GPU DRM driver for PS3. The problem is that Linux kernel DRM framework is very complex and not well documented.
Linux Kernel DRM Framework[edit | edit source]
Kernel Mode Setting (KMS)[edit | edit source]
- CRTC -> Encoder -> Connector
- PS3 has two video out connectors: HDMI and AV multi
- Use PS3 AV Manager to set resolution
- ps3av_cmd_video_get_monitor_info can be used to get current supported resolutions
- It seems that head A is connected to HDMI connector.
Translation Table Manager (TTM)[edit | edit source]
TTM is short for Translation Table Maps (?or Manager?) which was originally a new DRM map type that could be flipped into and out of a general translation table; for example an AGP or PCI Gart. Since then it has, a bit misleading, become the name of the functionality of the DRM unified memory manager for display memory. A white-paper describing the DRM memory manager can be found here.
- Manages memory: video memory, GART memory and system memory.
- Nouveau DRM driver e.g. manages video memory globally per device. We cannot do it because each context has its own video memory.
Milestones[edit | edit source]
- Create initial driver infrastructure (work in progress)
- Implement unaccelerated framebuffer console
- Add hardware acceleration to framebuffer console
- Implement IOCTLs for user-space applications
- Add PS3 GPU DRM support to libdrm and implement tests for it
- Implement X11 driver for PS3 GPU DRM
- Port some 3D open-source game to PS3 GPU DRM, e.g. quake or doom
Links[edit | edit source]
DRM User-Space[edit | edit source]
DRM Kernel-Space[edit | edit source]
- https://web.archive.org/web/20141117064052/https://www.ideasonboard.org/media/drm/
- http://lxr.free-electrons.com/source/drivers/gpu/drm/nouveau/
- http://lxr.free-electrons.com/source/drivers/gpu/drm/cirrus/
- http://lxr.free-electrons.com/source/drivers/gpu/drm/mgag200/
- http://lxr.free-electrons.com/source/drivers/staging/omapdrm/
- http://git.kernel.org/?p=linux/kernel/git/mattst88/glint.git;a=tree;f=drivers/gpu/drm/glint
- https://web.archive.org/web/20130128022722/http://www.x.org/wiki/ttm
- http://lists.freedesktop.org/archives/dri-devel/2010-April/000183.html
- http://www.mail-archive.com/dri-devel@lists.sourceforge.net/msg50049.html
- http://permalink.gmane.org/gmane.comp.video.dri.devel/47889
- https://web.archive.org/web/20070703024247/http://www.tungstengraphics.com/mm.pdf
- https://www.kernel.org/doc/html/latest/gpu/i915.html
- https://www.kernel.org/doc/html/latest/gpu/drm-internals.html
PS3 Kernel Drivers[edit | edit source]
- http://lxr.free-electrons.com/source/arch/powerpc/include/asm/ps3av.h
- http://lxr.free-electrons.com/source/drivers/ps3/ps3av.c
- http://lxr.free-electrons.com/source/drivers/video/ps3fb.c