The RadeonHD_RM.resource
Posted by Hans de Ruiter
A while ago I mentioned the RadeonHD_RM.resource, and said that I'd give more details later. Several posts to this development log have come since, without a mention about this resource. Today, I'm going to deliver those details, and provide a glimpse of what is still to come.
The RadeonHD_RM.resource is a "render manager," hence the "RM" part of the name. It provides multiple separate drivers with access to the GPU and Video RAM (VRAM). This resource is part of the RadeonHD.chip 2D driver, and the 2D acceleration code for R600/700 chipsets (RadeonHD 2000-4000 series) has already been using it to send render commands to the GPU since the end of 2010. Since then, there have been bug-fixes, R600/R700 compositing has been implemented, and DVI output for Radeon HD 3000-4000. I have also been working on getting the RadeonHD_RM.resource ready for external drivers.
In addition to working on the driver, I also worked on a proof-of-concept test application (app). The test program allows me to test the RadeonHD_RM.resource in isolation of any 3D drivers. It has already helped me to find and eliminate several bugs, including an annoying vsync problem (fixed a few days ago).
I am pleased to announce that the RadeonHD_RM.resource has now progressed to the point where an external driver can render 3D graphics on a Radeon HD 2000-4000 card. Screenshots are at the bottom of this page, but this really is best seen in video form (hint, best viewed in HD at 720p):
You can also view the video on youtube.
NOTE: A big thank you to hostcove for helping to deliver a high quality video that was not made by pointing a camera at the screen.
Except for the Workbench screen, all of the graphics that you see in the video was rendered via the RadeonHD_RM.resource on a Radeon HD 4650. In fact, the test app doesn't even open the Picasso96API.library; it doesn't even know that Picasso96 exists. No, it's not a driver, but it demonstrates that the RadeonHD.chip driver is ready for 3D.
Features
Some of the features in the proof-of-concept are:
- GPU based 3D transformation and lighting
- Per-pixel lighting (8 lights, each rendered in its own render pass, and one controlled by the mouse)
- Bump-mapping
All of these are things that MiniGL/Warp3D cannot do. The test-app may be primarily for testing the RadeonHD_RM.resource, but it also gives you a glimpse of what will be possible when OpenGL 2+ support is finally available on AmigaOS. These new capabilities are why I embarked on the RadeonHD driver project in the first place.
What's next
Obviously, getting the Gallium3D drivers working is next, but not by me personally. Hans-Joerg Frieden has been working on porting and integrating MESA into the OS, and will continue to do so. There is still much work for me to do on the RadeonHD.chip driver itself. There are bugs to fix, and RadeonHD_RM.resource may be ready for 3D, but it's not yet ready for release.
What's most important is that an external 3D driver is now possible. We're almost there.
Projects » Amiga OS 4 Projects » RadeonHD Driver » RadeonHD Development Log » The RadeonHD_RM.resource
Post your comment
Comments
-
Awesome job Hans! Anything about it's performance?
Posted by Chip, 02/11/2011 5:26am (13 years ago)
-
Excellent !!! Thanks a lot Hans !
Posted by SOFISTISOFTWARE, 26/10/2011 6:13am (13 years ago)
-
Nice work Hans, top stuff.
Posted by Fred Booth / Old Amigan, 26/10/2011 3:05am (13 years ago)
-
Awesome, Dr. Hans, Awesome!
Perhaps in a future, your visual tracking investigations will be made using an Amiga instead of a PC :-)Posted by Joan Ball-llosera, 26/10/2011 2:53am (13 years ago)
-
Excellent work! how/where will I be able to download the drivers for my radeonhd 4650 once they have been completed?
Posted by Steve, 24/10/2011 4:54pm (13 years ago)
-
Excellent work. Thanks for the preview.
Posted by gregthecanuck, 24/10/2011 2:09pm (13 years ago)
RSS feed for comments on this page | RSS feed for all comments
Projects » Amiga OS 4 Projects » RadeonHD Driver » RadeonHD Development Log » The RadeonHD_RM.resource