Jump to content

ATI HD 5850, Desktop Acceleration, 2D Performance


diggen
 Share

15 posts in this topic

Recommended Posts

Hello!

 

First of all my system specs:

Processor  2.81 GHz Intel Core i7-860

Graphics  ATI Radeon HD 5850 Series 1024 MB

Mainboard ASUS P7P55D

SMBIOS iMac 11,3

 

 

I have a fully functional Hackintosh, everything works out of the box and is correctly recognised.

However, my graphics card seem not working correctly on the desktop and non-3D part. 

That means tasks like resizing windows with huge text content, creating  iTunes playlists (the animation) and websites with huge

video content like YouTube look and feel totally laggy. Basically when re-rendering is happening my graphics card doesn't kick in.

I guess that's the QE/SI part??

 

I tried the following steps to solve the problem:

- Changing the Frambuffer. I tested all of them. Right now I user the Uakari Framebuffer.

The card is recognised as a "ATI Radeon HD 5800 Series 1024 MB" (not as a 5850 though). This gives me the "best" performance.

 

- Checking AGPM.kext and editing my DeviceId + VendorId to the correct Mac-ID and setting up the threshold values .

The result was that AGPM kicks in but it is always in State 0. No performance gain, even the graphics card fan doesn't seem to get louder.

 

- Checking if IOPCIMatch contains my Device and Vendor ID. It does.


Can you please give me some advices or hints what I should do next?

 


ioreg | grep ATY
    | |   |   | +-o ATY,Uakari@0  <class AtiFbStub, id 0x1000002ce, registered, matched, active, busy 0 (128 ms), retain 8>
    | |   |   | | +-o ATY_Uakari  <class AMDFramebuffer, id 0x1000002d4, registered, matched, active, busy 0 (126 ms), retain 19>
    | |   |   | +-o ATY,Uakari@1  <class AtiFbStub, id 0x1000002cf, registered, matched, active, busy 0 (1 ms), retain 8>
    | |   |   | | +-o ATY_Uakari  <class AMDFramebuffer, id 0x1000002e0, registered, matched, active, busy 0 (1 ms), retain 18>
    | |   |   | +-o ATY,Uakari@2  <class AtiFbStub, id 0x1000002d0, registered, matched, active, busy 0 (1 ms), retain 8>
    | |   |   | | +-o ATY_Uakari  <class AMDFramebuffer, id 0x1000002ea, registered, matched, active, busy 0 (0 ms), retain 15>
    | |   |   | +-o ATY,Uakari@3  <class AtiFbStub, id 0x1000002d1, registered, matched, active, busy 0 (1 ms), retain 8>
    | |   |   | | +-o ATY_Uakari  <class AMDFramebuffer, id 0x1000002f0, registered, matched, active, busy 0 (1 ms), retain 15>
ioreg | grep AMD
    | |   |   | +-o AMD5000Controller  <class AMD5000Controller, id 0x1000002c9, registered, matched, active, busy 0 (0 ms), retain 5>
    | |   |   | | +-o ATY_Uakari  <class AMDFramebuffer, id 0x1000002d4, registered, matched, active, busy 0 (126 ms), retain 19>
    | |   |   | |   +-o AMDNDRVService  <class AtiAppServices, id 0x100000342, registered, matched, active, busy 0 (0 ms), retain 6>
    | |   |   | | +-o ATY_Uakari  <class AMDFramebuffer, id 0x1000002e0, registered, matched, active, busy 0 (1 ms), retain 18>
    | |   |   | |   +-o AMDNDRVService  <class AtiAppServices, id 0x100000348, registered, matched, active, busy 0 (0 ms), retain 6>
    | |   |   | | +-o ATY_Uakari  <class AMDFramebuffer, id 0x1000002ea, registered, matched, active, busy 0 (0 ms), retain 15>
    | |   |   | |   +-o AMDNDRVService  <class AtiAppServices, id 0x100000350, registered, matched, active, busy 0 (0 ms), retain 6>
    | |   |   | | +-o ATY_Uakari  <class AMDFramebuffer, id 0x1000002f0, registered, matched, active, busy 0 (1 ms), retain 15>
    | |   |   | |   +-o AMDNDRVService  <class AtiAppServices, id 0x100000352, registered, matched, active, busy 0 (0 ms), retain 6>
    | |   |   | +-o AMDSupport  <class AMDSupport, id 0x1000002ca, registered, matched, active, busy 0 (0 ms), retain 5>
    | |   |   | +-o AMDCypressGraphicsAccelerator  <class AMDCypressGraphicsAccelerator, id 0x1000002cc, registered, matched, active, busy 0 (0 ms), retain 65>
    | |   |   |   +-o AMDRadeonX3000_AMDAccel2DContext  <class AMDRadeonX3000_AMDAccel2DContext, id 0x100000359, !registered, !matched, active, busy 0, retain 7>
    | |   |   |   +-o AMDRadeonX3000_AMDAccel2DContext  <class AMDRadeonX3000_AMDAccel2DContext, id 0x10000035a, !registered, !matched, active, busy 0, retain 7>
    | |   |   |   +-o AMDRadeonX3000_AMDAccel2DContext  <class AMDRadeonX3000_AMDAccel2DContext, id 0x10000035b, !registered, !matched, active, busy 0, retain 6>
    | |   |   |   +-o AMDRadeonX3000_AMDAccel2DContext  <class AMDRadeonX3000_AMDAccel2DContext, id 0x10000035c, !registered, !matched, active, busy 0, retain 6>
    | |   |   |   +-o AMDRadeonX3000_AMDAccelDevice  <class AMDRadeonX3000_AMDAccelDevice, id 0x100000361, !registered, !matched, active, busy 0, retain 6>
    | |   |   |   +-o AMDRadeonX3000_AMDAccelSharedUserClient  <class AMDRadeonX3000_AMDAccelSharedUserClient, id 0x100000362, !registered, !matched, active, busy 0, retain 6>
    | |   |   |   +-o AMDR8xxGLContext  <class AMDR8xxGLContext, id 0x100000363, !registered, !matched, active, busy 0, retain 6>
    | |   |   |   +-o AMDR8xxSurface  <class AMDR8xxSurface, id 0x10000036e, !registered, !matched, active, busy 0, retain 6>
    | |   |   |   +-o AMDR8xxSurface  <class AMDR8xxSurface, id 0x10000036f, !registered, !matched, active, busy 0, retain 6>
    | |   |   |   +-o AMDR8xxSurface  <class AMDR8xxSurface, id 0x100000370, !registered, !matched, active, busy 0, retain 6>
    | |   |   |   +-o AMDR8xxSurface  <class AMDR8xxSurface, id 0x100000371, !registered, !matched, active, busy 0, retain 6>
    | |   |   |   +-o AMDRadeonX3000_AMDAccelDevice  <class AMDRadeonX3000_AMDAccelDevice, id 0x10000039f, !registered, !matched, active, busy 0, retain 6>
    | |   |   |   +-o AMDR8xxSurface  <class AMDR8xxSurface, id 0x1000003a5, !registered, !matched, active, busy 0, retain 6>
    | |   |   |   +-o AMDR8xxSurface  <class AMDR8xxSurface, id 0x1000003a6, !registered, !matched, active, busy 0, retain 6>
    | |   |   |   +-o AMDRadeonX3000_AMDAccelDevice  <class AMDRadeonX3000_AMDAccelDevice, id 0x1000003a7, !registered, !matched, active, busy 0, retain 6>
    | |   |   |   +-o AMDR8xxSurface  <class AMDR8xxSurface, id 0x1000003aa, !registered, !matched, active, busy 0, retain 6>
    | |   |   |   +-o AMDR8xxSurface  <class AMDR8xxSurface, id 0x1000003ba, !registered, !matched, active, busy 0, retain 6>
    | |   |   |   +-o AMDRadeonX3000_AMDAccelDevice  <class AMDRadeonX3000_AMDAccelDevice, id 0x1000003bf, !registered, !matched, active, busy 0, retain 6>
    | |   |   |   +-o AMDRadeonX3000_AMDAccelSharedUserClient  <class AMDRadeonX3000_AMDAccelSharedUserClient, id 0x1000003c1, !registered, !matched, active, busy 0, retain 6>
    | |   |   |   +-o AMDR8xxGLContext  <class AMDR8xxGLContext, id 0x1000003c2, !registered, !matched, active, busy 0, retain 6>
    | |   |   |   +-o AMDRadeonX3000_AMDAccelSharedUserClient  <class AMDRadeonX3000_AMDAccelSharedUserClient, id 0x1000003cd, !registered, !matched, active, busy 0, retain 6>
    | |   |   |   +-o AMDR8xxGLContext  <class AMDR8xxGLContext, id 0x1000003ce, !registered, !matched, active, busy 0, retain 6>
    | |   |   |   +-o AMDRadeonX3000_AMDAccelSharedUserClient  <class AMDRadeonX3000_AMDAccelSharedUserClient, id 0x1000003cf, !registered, !matched, active, busy 0, retain 6>
    | |   |   |   +-o AMDR8xxGLContext  <class AMDR8xxGLContext, id 0x1000003d0, !registered, !matched, active, busy 0, retain 6>
    | |   |   |   +-o AMDR8xxGLContext  <class AMDR8xxGLContext, id 0x1000003d1, !registered, !matched, active, busy 0, retain 6>
    | |   |   |   +-o AMDRadeonX3000_AMDAccelDevice  <class AMDRadeonX3000_AMDAccelDevice, id 0x1000003e3, !registered, !matched, active, busy 0, retain 6>
    | |   |   |   +-o AMDRadeonX3000_AMDAccelSharedUserClient  <class AMDRadeonX3000_AMDAccelSharedUserClient, id 0x1000003e4, !registered, !matched, active, busy 0, retain 6>
    | |   |   |   +-o AMDR8xxGLContext  <class AMDR8xxGLContext, id 0x1000003e5, !registered, !matched, active, busy 0, retain 7>
    | |   |   |   +-o AMDR8xxSurface  <class AMDR8xxSurface, id 0x1000003e6, !registered, !matched, active, busy 0, retain 6>
    | |   |   |   +-o AMDR8xxSurface  <class AMDR8xxSurface, id 0x1000003ea, !registered, !matched, active, busy 0, retain 6>
    | |   |   |   +-o AMDR8xxGLContext  <class AMDR8xxGLContext, id 0x100000529, !registered, !matched, active, busy 0, retain 6>
    | |   |   |   +-o AMDR8xxSurface  <class AMDR8xxSurface, id 0x100000531, !registered, !matched, active, busy 0, retain 6>
    | |   |   |   +-o AMDRadeonX3000_AMDAccelSharedUserClient  <class AMDRadeonX3000_AMDAccelSharedUserClient, id 0x100000533, !registered, !matched, active, busy 0, retain 6>
    | |   |   |   +-o AMDR8xxGLContext  <class AMDR8xxGLContext, id 0x100000534, !registered, !matched, active, busy 0, retain 7>
    | |   |   |   +-o AMDRadeonX3000_AMDAccelDevice  <class AMDRadeonX3000_AMDAccelDevice, id 0x100000540, !registered, !matched, active, busy 0, retain 6>
    | |   |   |   +-o AMDR8xxGLContext  <class AMDR8xxGLContext, id 0x1000005dc, !registered, !matched, active, busy 0, retain 6>
    | |   |   |   +-o AMDRadeonX3000_AMDAccelDevice  <class AMDRadeonX3000_AMDAccelDevice, id 0x1000005ec, !registered, !matched, active, busy 0, retain 6>
    | |   |   |   +-o AMDRadeonX3000_AMDAccelDevice  <class AMDRadeonX3000_AMDAccelDevice, id 0x1000005f3, !registered, !matched, active, busy 0, retain 6>
    | |   |   |   +-o AMDRadeonX3000_AMDAccelSharedUserClient  <class AMDRadeonX3000_AMDAccelSharedUserClient, id 0x1000005f4, !registered, !matched, active, busy 0, retain 6>
    | |   |   |   +-o AMDR8xxGLContext  <class AMDR8xxGLContext, id 0x1000005f5, !registered, !matched, active, busy 0, retain 6>
    | |   |   |   +-o AMDR8xxSurface  <class AMDR8xxSurface, id 0x1000005fc, !registered, !matched, active, busy 0, retain 6>
    | |   |   |   +-o AMDRadeonX3000_AMDAccelDevice  <class AMDRadeonX3000_AMDAccelDevice, id 0x100000600, !registered, !matched, active, busy 0, retain 6>
    | |   |   |   +-o AMDRadeonX3000_AMDAccelSharedUserClient  <class AMDRadeonX3000_AMDAccelSharedUserClient, id 0x100000607, !registered, !matched, active, busy 0, retain 6>
    | |   |   |   +-o AMDR8xxGLContext  <class AMDR8xxGLContext, id 0x100000608, !registered, !matched, active, busy 0, retain 7>
    | |   |   |   +-o AMDR8xxSurface  <class AMDR8xxSurface, id 0x100000609, !registered, !matched, active, busy 0, retain 6>
    | |   |   |   +-o AMDRadeonX3000_AMDAccelSharedUserClient  <class AMDRadeonX3000_AMDAccelSharedUserClient, id 0x100000631, !registered, !matched, active, busy 0, retain 6>
    | |   |   |   +-o AMDR8xxGLContext  <class AMDR8xxGLContext, id 0x100000632, !registered, !matched, active, busy 0, retain 7>
    | |   |   |   +-o AMDR8xxSurface  <class AMDR8xxSurface, id 0x10000068f, !registered, !matched, active, busy 0, retain 6>
    | |   |   |   +-o AMDR8xxSurface  <class AMDR8xxSurface, id 0x100000698, !registered, !matched, active, busy 0, retain 6>
    | |   |   |   +-o AMDR8xxSurface  <class AMDR8xxSurface, id 0x100000699, !registered, !matched, active, busy 0, retain 6>
Link to comment
Share on other sites

Thanks for the reply.

 

Now it looks like this:

				<key>iMac11,3</key>
				<dict>
                    <key>Vendor1002Device6899</key>
                    <dict>
                        <key>BoostPState</key>
                        <array>
                            <integer>0</integer>
                            <integer>1</integer>
                            <integer>2</integer>
                            <integer>3</integer>
                        </array>
                        <key>BoostTime</key>
                        <array>
                            <integer>3</integer>
                            <integer>3</integer>
                            <integer>3</integer>
                            <integer>3</integer>
                        </array>
                        <key>Heuristic</key>
                        <dict>
                            <key>ID</key>
                            <integer>0</integer>
                            <key>IdleInterval</key>
                            <integer>250</integer>
                            <key>SensorOption</key>
                            <integer>1</integer>
                            <key>SensorSampleRate</key>
                            <integer>4</integer>
                            <key>TargetCount</key>
                            <integer>5</integer>
                            <key>Threshold_High</key>
                            <array>
                                <integer>87</integer>
                                <integer>87</integer>
                                <integer>87</integer>
                                <integer>100</integer>
                            </array>
                            <key>Threshold_Low</key>
                            <array>
                                <integer>0</integer>
                                <integer>87</integer>
                                <integer>87</integer>
                                <integer>87</integer>
                            </array>
                        </dict>
                        <key>LogControl</key>
                        <integer>1</integer>
                        <key>control-id</key>
                        <integer>17</integer>
                    </dict>
				</dict>

The result, the lag still exists: 

However, it changes updateGPUHwPstate which it didn't did before the edit.

15/07/2014 11:37:48.000 kernel[0]: [AGPM Controller] build GPUDict by Vendor1002Device6899
15/07/2014 11:37:48.000 kernel[0]: AGPM: GPU = display Initialized, Control ID 17
15/07/2014 11:37:49.000 kernel[0]: AGPM: updateGPUHwPstate(0, 0): fHwPstate = 3 fFB = 0xffffff80129aa000
15/07/2014 11:37:49.000 kernel[0]: AGPM: updateGPUHwPstate(): state = 0. Calling fFB->setAggressiveness()...
15/07/2014 11:37:50.000 kernel[0]: AGPM: GPU = display G-state set to 0 from 3, ControlID = 17. SW occupancy updated.
15/07/2014 11:37:51.000 kernel[0]: AGPM: updateGPUHwPstate(0, 0): fHwPstate = 0 fFB = 0xffffff80129aa000
15/07/2014 11:37:53.000 kernel[0]: AGPM: updateGPUHwPstate(0, 0): fHwPstate = 0 fFB = 0xffffff80129aa000
15/07/2014 11:37:57.000 kernel[0]: AGPM: updateGPUHwPstate(0, 0): fHwPstate = 0 fFB = 0xffffff80129aa000
15/07/2014 11:38:35.000 kernel[0]: AGPM: updateGPUHwPstate(0, 0): fHwPstate = 0 fFB = 0xffffff80129aa000
15/07/2014 11:41:13.000 kernel[0]: AGPM: updateGPUHwPstate(0, 0): fHwPstate = 0 fFB = 0xffffff80129aa000
15/07/2014 11:41:21.000 kernel[0]: AGPM: updateGPUHwPstate(0, 0): fHwPstate = 0 fFB = 0xffffff80129aa000
15/07/2014 11:41:52.000 kernel[0]: AGPM: updateGPUHwPstate(0, 0): fHwPstate = 0 fFB = 0xffffff80129aa000
15/07/2014 11:42:33.000 kernel[0]: AGPM: updateGPUHwPstate(0, 0): fHwPstate = 0 fFB = 0xffffff80129aa000
15/07/2014 11:42:42.000 kernel[0]: AGPM: updateGPUHwPstate(0, 0): fHwPstate = 0 fFB = 0xffffff80129aa000
15/07/2014 11:42:49.000 kernel[0]: AGPM: updateGPUHwPstate(0, 0): fHwPstate = 0 fFB = 0xffffff80129aa000
15/07/2014 11:42:55.000 kernel[0]: AGPM: updateGPUHwPstate(0, 0): fHwPstate = 0 fFB = 0xffffff80129aa000
15/07/2014 11:42:56.000 kernel[0]: AGPM: updateGPUHwPstate(0, 0): fHwPstate = 0 fFB = 0xffffff80129aa000
15/07/2014 11:43:03.000 kernel[0]: AGPM: updateGPUHwPstate(0, 0): fHwPstate = 0 fFB = 0xffffff80129aa000
15/07/2014 11:43:04.000 kernel[0]: AGPM: updateGPUHwPstate(0, 0): fHwPstate = 0 fFB = 0xffffff80129aa000
15/07/2014 11:43:04.000 kernel[0]: AGPM: updateGPUHwPstate(0, 0): fHwPstate = 0 fFB = 0xffffff80129aa000

Link to comment
Share on other sites

One thing that catched my attention: After a fresh Installation I directly went to the system specs and my graphics card was recognised as a 5850, which is the correct version number of my card.

The loaded framebuffer was Uakari and the default system was a 11,1 Mac.

Again - a fresh installation without any other post-setup proceeding.

 

After I installed ##### with my DSDT and some other driver, GE=YES and AtiConfig=Uakari, the graphics card then was recognised as a 5800 which is not the correct version number. (5850 is the correct one), 

 

Whatever framebuffer or SMBIOS I use, the closest I get to is the 5800. None is giving me a correctly 5850 card version! Only after a fresh installation!

 

Any tipps how to get to the 5850? Maybe this might help me somehow...

Link to comment
Share on other sites

One more tip is using Clover...

 

Thanks. The card is now correctly shown as a 5850 with this settings: (without Clover configuration it's a ATI 5000)

<key>FBName</key>
<string>Uakari</string>
<key>Inject</key>
<dict>
<key>ATI</key>
<true/> 

However, the lag is still there :(

 

 

Editing the AGPM doesn't change anything and is the same as without Clover:

24/07/14 04:44:08,000 kernel[0]: [AGPM Controller] build GPUDict by Vendor1002Device6899
24/07/14 04:47:40,000 kernel[0]: [AGPM Controller] build GPUDict by Vendor1002Device6899
24/07/14 04:47:40,000 kernel[0]: AGPM: GPU = GFX0 Initialized, Control ID 16
24/07/14 04:47:41,000 kernel[0]: AGPM: updateGPUHwPstate(0, 0): fHwPstate = 3 fFB = 0xffffff801add0000
24/07/14 04:47:41,000 kernel[0]: AGPM: updateGPUHwPstate(): state = 0. Calling fFB->setAggressiveness()...
24/07/14 04:47:42,000 kernel[0]: AGPM: GPU = GFX0 G-state set to 0 from 3, ControlID = 16. SW occupancy updated.

... and it stays at G-State 0. Card is quiet and nothing seems to change on performance.

 

 

Thanks for your help guys.

Link to comment
Share on other sites

  • 2 weeks later...

No matter what values I change in the AGPM it is always on G-state 0. No performance increase on the desktop.

3D runs just fine in Cinebench and other Benchmark tests. It's just the QE/SI / Desktop Acceleration as I mentioned before :(

 

I changed to Clover and the card is, as I aleady said, now correctly recognised as a 5850.

Is there anything else I could try?

 

Thank in advance.

Link to comment
Share on other sites

  • 4 weeks later...

QE/CI isn't the problem, I think it's still a power management issue. You can verify you have QE/CI by checking if you have the "Translucent Menu Bar" option under Desktop & Screen Saver in System Preferences.

 

You could try flashing a different 5850 VBIOS to the card and seeing if it plays better with OS X. There is risk involved with that though. On my Gigabyte 6850 I have a custom fan curve in the VBIOS, for some reason OS X would not the fan curve until I used a Sapphire BIOS. You could also try using Radeon BIOS Editor to change the clocks so that the 2D clock is a little bit higher. 

 

Also, I think Clover can actually load another VBIOS instead of requiring you to flash it. http://clover-wiki.zetam.org/Configuration/Graphics#LoadVBios

Slice, is that correct? Will LoadVBios load a VBios for a different manufacturer's card?

  • Like 1
Link to comment
Share on other sites

  • 3 weeks later...

QE/CI isn't the problem, I think it's still a power management issue. You can verify you have QE/CI by checking if you have the "Translucent Menu Bar" option under Desktop & Screen Saver in System Preferences.

 

Thank you for the reply.

Yes, the "Translucent Menu Bar" option is under System Preferences. I can toggle it on and off and it works. So the QE/CI is not the problem, glad we could sort this out.

 

Now I will try the whole flashing / power management thing as my last attemp to make this work. However I can't test these things immediately since I'm on Windows and I dont have a dual-boot atm.

So this is what i gonna do:

 

- First of all make a backup of the original VBIOS, just in case.

- Then trying a different VBIOS like the ASUS or XFX

If this doesn't work:

- Edit two copys of the original VBIOS with some changes on the clocks.

    - On the first copy I changed the six Clock -/voltage -states sections to absurd high values (of course far bellow the maximum values) and some changes on the fan control so nothing gets overheated. 

    - The second copy were increased just by a little.

 

I'll test it with Clover's "LoadBios" method, if this doesn't work I'll flash it manually with the different .rom files.

Link to comment
Share on other sites

Unfortunately I had no success with the different .rom files from other vendors. Some have an negative impact on the fan speed, some cause fragments on the screen, but the performance was overall the same. Even my custom .rom with higher values on the clocks and voltage show no difference.

 

I'm kinda done with it, if you guys have any other suggestions please let me know.

 

I'm also thinking of buying a new graphics card with a pricing of < 150 € since this on have an annoying high frequency beeping on Windows under full power (a lot of user report this problem with this one).  If you have a good suggestion for a new graphics card please let me know.

Link to comment
Share on other sites

  • 3 months later...

BeamSyncDropper2 and deleting my AGPM kext did the job for me, the latter one is probably not necessary. I actually don't know what is happening behind the scene, I think something something with Quartz, but it definitely improves the overall performance of the tasks I described above. There is still a bit of lag but as people describing here, it is normal with Yosemite.

 

So if you have the same problem with an laggy UI then this might be the answer.

Link to comment
Share on other sites

 Share

×
×
  • Create New...