Contribute
Register

Radeon 6470m / 6490m Project

Status
Not open for further replies.
Re: Radeon 6470m Project

I have made "some" progress.
I did some DSDT edits to inject the Ipomoea framebuffer
(edited the personality in the kext of course).
The edits were similar to THIS one right here.
I did not get the framebuffer to be loaded on the first connector (LVDS), however,
I noticed a new subtree (something like "ATY,Display_B", will post a screenshot sometime later today) in the IOReg which shows that
the second connector was injected successfully, even though it had the wrong connect-flags so I still was not able to use the HDMI output.
Will have to re-edit the connectors in the HD3000 kexts as well.
I guess it is because of the muxless setup we have on our laptops.
Because of the muxless setup the Radeon is connected to the HD3000. In this case,
the Radeon is just used for the rendering stuff and sends it to the HD3000, which in turn sends the signals to the display.
(Have you ever tried disabling the HD3000 on Windows in "Device Management" with the Radeon being active? Black screen. :p)
Since the HD3000 is already connected to the LVDS the Radeon gets refused. At least that's what I'm thinking.
I'm pretty sure Apple is also not using a mux in their MBP 15" & 17" 2011.
There must be a way to tell the graphics drivers how to use our graphics card.
It's time a wizard joins the project to do some magic. :)
 
Re: Radeon 6470m Project

@Dewitts
The compiled files are in ~/chameleon/trunk/sym/i386

@da_beidl
I'm not really sure about this, but when I was looking for a solution for the switchable graphics problem, I found out this:
In Macs there is muxless graphics switching - the integrated GPU is always on and the discrete GPU helps it only when demanded, e.g. when playing a game. The result of this is that screen doesn't flicker when switching graphics, so you can't even notice. This is called "hybrid graphics".
In our laptop, however, there is muxed graphics switching - only one GPU can run at one time, so when you need some extra processing power, the integrated GPU disconnects and the discrete GPU comes to work. You can see it in Windows, that you can switch between IGPU and DGPU manually in Ati Catalyst or so. When doing this, the screen goes blank for a few seconds. This is called "switchable graphics."

http://www.rage3d.com/articles/amd_powe ... interview/
...
Switchable's main benefit is most of the time for power saving; no need for higher power GPU to be used. Earlier versions of switchable graphics required rebooting to move from integrated to discrete, as you can have only one GPU enabled at a time - not a good user experience with BIOS manipulation and system reboots required.

The second version switched on the fly without reboot, but with a switching time for the OS to swap video drivers, as Windows didn't allow two drivers to be loaded for one adapter, which is how the display appeared to it. The time to switch was longer from IGP to Discrete than vice versa, and users experienced screen flickering as the swap occurred via muxers.

The third version is cross display: no muxers, using displays connected to the integrated GPU and nothing connected to discrete GPU. The Discrete GPU (dGPU) goes to low power or off state, until an application requires the power of discrete to be used to render, but outputted via the IGP's display connection. This version is switching between GPU and IGP based on application triggers; no reboot, no flickering; instantaneous.
...
I believe we use the second version and macs use the third.

http://www.amd.com/us/products/technolo ... phics.aspx

Supported Hardware

AMD Radeon™ HD 6000M Series Graphics:
AMD Radeon™ HD 6500M Series
AMD Radeon™ HD 6300M Series

So, no love for us.
 
Re: Radeon 6470m Project

da_beidl said:
I have made "some" progress.
I did some DSDT edits to inject the Ipomoea framebuffer
(edited the personality in the kext of course).
The edits were similar to THIS one right here.
I did not get the framebuffer to be loaded on the first connector (LVDS), however,
I noticed a new subtree (something like "ATY,Display_B", will post a screenshot sometime later today) in the IOReg which shows that
the second connector was injected successfully, even though it had the wrong connect-flags so I still was not able to use the HDMI output.
Will have to re-edit the connectors in the HD3000 kexts as well.
I guess it is because of the muxless setup we have on our laptops.
Because of the muxless setup the Radeon is connected to the HD3000. In this case,
the Radeon is just used for the rendering stuff and sends it to the HD3000, which in turn sends the signals to the display.
(Have you ever tried disabling the HD3000 on Windows in "Device Management" with the Radeon being active? Black screen. :p)
Since the HD3000 is already connected to the LVDS the Radeon gets refused. At least that's what I'm thinking.
I'm pretty sure Apple is also not using a mux in their MBP 15" & 17" 2011.
There must be a way to tell the graphics drivers how to use our graphics card.
It's time a wizard joins the project to do some magic. :)

Well reading some of that made me think about something I read a few pages back and a conclusion I came to plus a question..

I remember reading that the graphics switches automatically when you use something that puts the card under strain. Maybe checking whilst using something like iMovie would be an idea?
The hd3000 I think is recognised because we have macbook pro 8,1.... So would removing it make it more likely to use the radeon card as the primary?

I can't access my windows now for some reason, it tells me I need to repair it but I can't see the windows install because I don't have the drivers installed...

ATY,display b now showing would suggest you're making progress and it now recognises it :) :thumbup:
 
Re: Radeon 6470m Project

frantisek.nesveda said:
@Dewitts
The compiled files are in ~/chameleon/trunk/sym/i386

In there I have boot0 boot1 etc but they're folders not files :?
 
Re: Radeon 6470m Project

Dewitts said:
da_beidl said:
I have made "some" progress.
I did some DSDT edits to inject the Ipomoea framebuffer
(edited the personality in the kext of course).
The edits were similar to THIS one right here.
I did not get the framebuffer to be loaded on the first connector (LVDS), however,
I noticed a new subtree (something like "ATY,Display_B", will post a screenshot sometime later today) in the IOReg which shows that
the second connector was injected successfully, even though it had the wrong connect-flags so I still was not able to use the HDMI output.
Will have to re-edit the connectors in the HD3000 kexts as well.
I guess it is because of the muxless setup we have on our laptops.
Because of the muxless setup the Radeon is connected to the HD3000. In this case,
the Radeon is just used for the rendering stuff and sends it to the HD3000, which in turn sends the signals to the display.
(Have you ever tried disabling the HD3000 on Windows in "Device Management" with the Radeon being active? Black screen. :p)
Since the HD3000 is already connected to the LVDS the Radeon gets refused. At least that's what I'm thinking.
I'm pretty sure Apple is also not using a mux in their MBP 15" & 17" 2011.
There must be a way to tell the graphics drivers how to use our graphics card.
It's time a wizard joins the project to do some magic. :)

Well reading some of that made me think about something I read a few pages back and a conclusion I came to plus a question..

I remember reading that the graphics switches automatically when you use something that puts the card under strain. Maybe checking whilst using something like iMovie would be an idea?
The hd3000 I think is recognised because we have macbook pro 8,1.... So would removing it make it more likely to use the radeon card as the primary?

I can't access my windows now for some reason, it tells me I need to repair it but I can't see the windows install because I don't have the drivers installed...

ATY,display b now showing would suggest you're making progress and it now recognises it :) :thumbup:
Get a Linux Live CD and set the flag for the Windows partition to "boot", then repair using the Windows install DVD.

I'm already using the MBP8,2 smbios, and I have to edit its connector info in the HD3000 kext for that reason.
Maybe with the correct connector info and the personalities being fixed, we can get this thing working.
Someone know a good game on OSX? :p

@frantisek.nesveda:
In this case: well, ****.
Just wondering why the 6490M inside of the MBP 15" would have the 3rd version switching while we have 2nd.
 
Re: Radeon 6470m Project

Hey da_beidl I knew I had seen the aty in the ioreg on 1 of these many posts, I'm curious does it show up like this under pci cards too?
BY THE WAY THIS ISN'T MINE
index.php
 
Re: Radeon 6470m Project

Looks similar except of the AMDNDRVService subtree.
Screenshot attached (and yes, I've got the best name :D)

EDIT: values I've injected into the DGFX device.
Code:
Method (_DSM, 4, NotSerialized)
                {
                    Store (Package (0x1A)
                        {
                            "@0,compatible", 
                            Buffer (0x0C)
                            {
                                "ATY,Ipomoea"
                            }, 
                            "@0,deviceType", 
                            Buffer (0x08)
                            {
                                "display"
                            }, 
                            "@0,VRAM,memsize", 
                            Buffer (0x04)
                            {
                                0x00, 0x00, 0x00, 0x40
                            }, 
                            "@0,display-connect-flags", 
                            Buffer (0x02)
                            {
                                0x00, 0x04
                            }, 
                            "@0,name", 
                            Buffer (0x0E)
                            {
                                "ATY,Display_A"
                            }, 
                            "@1,compatible", 
                            Buffer (0x0C)
                            {
                                "ATY,Ipomoea"
                            }, 
                            "@1,device_type", 
                            Buffer (0x08)
                            {
                                "display"
                            }, 
                            "@1,VRAM,memsize", 
                            Buffer (0x08)
                            {
                                0x00, 0x00, 0x00, 0x40
                            }, 
                            "@1,display-connect-flags", 
                            Buffer (0x02)
                            {
                                0x00, 0x04
                            }, 
                            "@1,name", 
                            Buffer (0x0E)
                            {
                                "ATY,Display_B"
                            }, 
                            "device_type", 
                            Buffer (0x12)
                            {
                                "ATY,IpomoeaParent"
                            }, 
                            "VRAM,totalsize", 
                            Buffer (0x04)
                            {
                                0x00, 0x00, 0x00, 0x40
                            }, 
                            "model", 
                            Buffer (0x14)
                            {
                                "AMD Radeon HD 6490M"
                            }
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }
 

Attachments

  • IOReg+PCIe.tiff
    574.1 KB · Views: 278
Re: Radeon 6470m Project

ahh Just the man!!!
I've found this: http://codykrieger.com/gfxCardStatus/ And I thought it would be rather useful!
Also i'm still stuck at the building of the chameleon, I managed to find a buildbot for the chameleon on their site but it means it was the standard chameleon build (macman apparently updated the ati.c to recognise the card but i'm no further along) i'll attach it here for you to test with your adaptations... maybe the combination of the 2 will sync together for it to work. Actually after reading past posts I just noticed you already tried the standard 1.
I've just had a look through IOReg and i'm not sure if it is due to the new bootloader or not as I never paid that much attention but according to the screenshot i'll attach the kext linked to my card is the ati3000gldriver :?: Lol I think i'm about 3 days behind you, you've already seen that as my id shows up in IOReg as g too

So 2 things (which might get me to where you are) the edit you put into your last post... Should I just cut n paste that under DGFX?

And earlier you asked if I had changes gfx0 to IGPU.... Should I still do that?????
 
Re: Radeon 6470m Project

Dewitts said:
ahh Just the man!!!
I've found this: http://codykrieger.com/gfxCardStatus/ And I thought it would be rather useful!
Also i'm still stuck at the building of the chameleon, I managed to find a buildbot for the chameleon on their site but it means it was the standard chameleon build (macman apparently updated the ati.c to recognise the card but i'm no further along) i'll attach it here for you to test with your adaptations... maybe the combination of the 2 will sync together for it to work. Actually after reading past posts I just noticed you already tried the standard 1.
I've just had a look through IOReg and i'm not sure if it is due to the new bootloader or not as I never paid that much attention but according to the screenshot i'll attach the kext linked to my card is the ati3000gldriver :?: Lol I think i'm about 3 days behind you, you've already seen that as my id shows up in IOReg as g too

So 2 things (which might get me to where you are) the edit you put into your last post... Should I just cut n paste that under DGFX?

And earlier you asked if I had changes gfx0 to IGPU.... Should I still do that?????
Changing every occurence of GFX0 to IGPU is recommended. It allowed me to have switchable graphics enabled in the BIOS while having the DualLink patch applied.
And yes, apply the _DSM method to the DGFX. I'll play around with it a bit further.

Also, I noticed a "PP_PowerPlayEnabled" key in the MBP8,3 IORegDump. Playing around with it.
After having it applied, I tried OpenGL Extension Viewer and did a little OpenGL test... the view with the cube inside showed up for a split second and then the machine had a hang.
After a reboot, this did not happen again. Don't know if it's one of my laptops usual huccups or if it shows some progress.
 
Re: Radeon 6470m Project

Well right now i'm having issues, I tried modding my dsdt to include the code you posted to my dsdt but it won't compile correctly. When I try to fix the .dsl with dsdtfixer it has some warning come up and just quits.
I tried getting a fresh dsdt with dsdt editor and after adding the code it won't attempt to compile at all.

Having a little break before I break IT!! lol
 
Status
Not open for further replies.
Back
Top