Projects » Amiga OS 4 Projects » RadeonHD Driver » RadeonHD Development Log » RadeonHD.chip 0.32 - Bug-Fixes and Fully Working 2D

RadeonHD.chip 0.32 - Bug-Fixes and Fully Working 2D

If you've been keeping up-to-date with AmigaOS news, you have no doubt heard that AmigaONE X1000 First Contact machines are now shipping to customers, and that Sam460ex owners (including people with AmigaOne 500s) have received an updated RadeonHD driver. Both groups are using version 0.32 of the RadeonHD.chip driver. This marks another milestone; one that I like to call, fully working 2D.

This release provides users with full 2D support for all cards from the Radeon X1300 through to the Radeon HD 4890. Previously, Sam460ex users with Radeon HD cards had to make do without hardware accelerated compositing. Now, compositing is available for all supported cards. At this point, 2D support for all chipsets is roughly on par. I say roughly, because a few minor acceleration functions (e.g., line drawing) are still Radeon X1000 series only. However, you are unlikely to notice this, as all of the most important functions are implemented.

What's New?

I'm sure that some people will be thinking, "but wasn't compositing for Radeon HD cards done, April 2011?" Well, yes and no. Compositing was indeed operational, but one of the more advanced compositing features - using homogeneous texture coordinates - was missing for all chipsets. In fact, the primary focus of recent development has been fixing bugs. The complete list of changes since the first release is:

  • DVI/HDMI output is now supported on Radeon HD 4000 series graphics cards (R700 series chipsets);
  • Compositing supported on Radeon HD graphics cards (R600/R700 chipsets);
  • RV770 (Radeon HD 4850) and mobility Radeon HD chipsets are now supported (fixed the GPU initialisation);
  • Compositing now supports homogeneous texture coordinates with vertex arrays on all supported chipsets (useful for image warping);
  • Eliminated the intermittent graphics glitches that could occur with R600/R700 chipsets (e.g., yellow screens, fill-rect failure on 8-bit screens;
  • Fixed a bug that could cause some screens misalignement;
  • With interrupts disabled, could get multiple "vertical syncs" in one VBlank period (could cause havoc with timing). FIXED;
  • Fixed a number of R500 (Radeon X1000 series) compositing bugs that caused various things to be rendered incorrectly (e.g., the intermittent dark/black separators and backgrounds in AmiDock);
  • The mouse pointer now disappears when it's supposed to (i.e., MouseBlanker works, and SDL games no longer have two pointers);
  • Some R700 GPUs were locking up when compositing "large" vertex arrays. FIXED;
  • Screens that were larger than the display resolution were garbled. FIXED;
  • R500 vertex array clipping was one pixel larger than it was supposed to be (could cause the right-hand edge to spill over to the left most column of pixels). FIXED;
  • Fixed an R500 compositing bug that could cause corruption if one compositing¬† operation rapidly draws directly over the previous one; and,
  • WaitTOF() and similar functions could cause the machine to lockup when called from a task with a priority >= 1. FIXED.

By far the biggest problem was the driver's inability to use homogeneous texture coordinates with vertex arrays. What can homogeneous texture coordinates be used for? Well, check out another of my test programs turned demo: Composite3DDemo. This shows what can be done with Amiga OS 4.1's compositing feature, a little creative thinking, and some mathematics. Incidentally, this demo was instrumental in me discovering the R700 GPU lockup issue before anyone else did (version 0.27 had that bug). Phew!

All in all, I'm quite happy with the updated driver that I have delivered.

What's Next?

I could almost copy and paste what I wrote in the previous entry to this log. Basically, the focus moves back to working on the RadeonHD_RM.resource (important for 3D drivers), and implementing missing features such as interrupt support for Radeon HD cards.



Projects » Amiga OS 4 Projects » RadeonHD Driver » RadeonHD Development Log » RadeonHD.chip 0.32 - Bug-Fixes and Fully Working 2D

Post your comment

Comments

  • Indeed very nice to see the progress!

    Posted by Tronic, 08/02/2012 10:02am (5 years ago)

  • Nice job, man!

    Posted by Chip, 08/02/2012 9:42am (5 years ago)

RSS feed for comments on this page | RSS feed for all comments


Projects » Amiga OS 4 Projects » RadeonHD Driver » RadeonHD Development Log » RadeonHD.chip 0.32 - Bug-Fixes and Fully Working 2D