Jump to content

ATI HD framebuffer driver (10.5/10.6) with source code


dong
 Share

900 posts in this topic

Recommended Posts

ah, I did not test the AtomBios version with 2 heads actually. You have the same card as mine. So LUT problem is from second CRTC only. I thought it's a problem of analog connector. The code for LUT correction need be modified then.

NoAtomBios version use first CRTC to drive LVDS panel, so all works.

 

Here is the output of RadeonDump: http://pastebin.ca/2051324

Edit: here is one without VGA display attached & internal display working: http://pastebin.ca/2051332

Edit3: My issues have been resolved by using the noAtomBIOS version! Thank you for this wonderful kext ;)

Link to comment
Share on other sites

Hi Dong,

 

Thank you for your testing driver.

 

I am using 10.5.8 with Radeon Mobility X1400 on my Dell Inspiron 6400 laptop. Using previous drivers, the interval VGA works fine but my external Samsung bx2431 got some weird results. Before logging into my account and Finder being launched, everything was fine. Resolution was correct and I got hardware mouse cursor. But then there was a blink of black screen and the resolution and color got messed up).

 

Then I tried the new testing driver (for 10.5). Without connecting the external monitor, there was KP and incorrect resolution in the internal VGA. With the Samsung bx2431 connected, there was totally black in the external monitor and red color, no cursor, in the internal monitor. I also tried to put EDID in RadeonController.kext but still didn't work :P

 

Is there anything else I can do? I am a newbie and I am not sure how to get debug information.

Link to comment
Share on other sites

Hello Dong,

 

Thanks for your work. I have a X1600 Mobility in my Acer Aspire 5672. With previous versions, the internal display used to work without entering EDID. External display also worked although colors messed up. I tried new 10.5 version, but I only get a grey screen on internal display and only garbled colors on external. I tried putting EDID values that work with ATIInject/Natit, nothing changed. I tried removing external display, nothing changed. It seems that computer also hung after getting grey screen.

 

Some testers had success with no Atombios version. Could you post 10.5 without Atombios so that I can test that one too?

 

Thanks

Link to comment
Share on other sites

10.5 noAtomBios version posted in topic. It works for my T60 x1400.

 

All AtomBios version also fail here. Kind hard to debug. As you may know, I never figure out the bug for 64 bit AtomBios code.

 

Some testers had success with no Atombios version. Could you post 10.5 without Atombios so that I can test that one too?
Link to comment
Share on other sites

Oh, I added a EDID checksum, it seems rejected ur EDID. Try this without that checksum to see. Only put ur EDID in LVDS one. Your another display is a DIV one, so the DACA one does not apply, but luckily its EDID is detected by the driver.

 

Hi Dong,

 

No way I get it working on my Inspiron 9400 ATI X1400.

 

I think the problem in my screen 1920x1200.

 

Back to kexts from may 2010.

 

I solved the hardwarecursor problem. I just put the property of EDID before the property of hardwarecursor.

 

Now its all perfect.

 

Thanks for your hard and good work. When you release a new version of kexts I'll test it to see I'm luck.

:)

Link to comment
Share on other sites

Hello dong,

 

I have a HD4650 1GB. What do you think is the best way to patch the ATI kexts? Is it your RadeonHD,kext or patched ATIXXX.kexts? I think your RadeonHD does the same, but automatically?

 

I use patched kexts from this thread, the graphics works, only the wakeup of the hdmi and dvi display does not work. After sleep, the computer wakes up, hd & sound working, but the display remains black/powered off. Do you have any idea how to fix this? If I use your kext, do I need to use the original ati kexts or can I use the Info.plist-modified versions?

 

Thanks for info :)

 

EDIT: The screen also remains black if I change the screen resolution from 1920x1080 to another. So it's not power management related I guess.

Link to comment
Share on other sites

Hi Dong,

 

I just tried the no-atombios 10.5 driver. No matter whether I put the EDID in the plist file, the internal LCD is black. Without the external monitor, it can actually log into the system (I can make screenshot though the screen is black). With the external monitor, it froze after getting into GUI. The internal is still black, no error message, and the external is grey.

 

And after I returned to the previous driver (the one you posted last year), I finally made it displaying correctly in the external monitor. At first, both internal and external were scrambled. But I got to reset the resolution in System Preference in blind (imagine how many times I tried), and then wow the external displayed in the right resolution and perfect color. The internal remained scramble but I don't mind to only use the external monitor anyhow.

 

PS, with the old driver, I do randomly come across KP when getting into GUI (once every 5 times).

Link to comment
Share on other sites

Updated topic with latest drivers. Please test.

 

Atombios code is the card vendor provided way to talk to card hardware. In open source driver, the legacy way to do that is by direct register I/O. Now, all moved to Atombios way. But for some old cards, the driver without Atombios code will also work. However, more code means more bugs maybe introduced as I port the code.

My X1400 works with legacy method. So my simplified driver only contains legacy code. What's more, the Atombios code get the connector table from video BIOS. It turns out the detected connector sequence is different compared to legacy method for my card and caused the disfunction of my driver with atombios code because of the VRAM scanout problem that mentioned in the topic.

 

Dong

 

Whats the diference between the version with the atombios code and the one without the atombios

Is one of them safer than the other?

Link to comment
Share on other sites

Updated topic with latest drivers. Please test.

 

Atombios code is the card vendor provided way to talk to card hardware. In open source driver, the legacy way to do that is by direct register I/O. Now, all moved to Atombios way. But for some old cards, the driver without Atombios code will also work. However, more code means more bugs maybe introduced as I port the code.

My X1400 works with legacy method. So my simplified driver only contains legacy code. What's more, the Atombios code get the connector table from video BIOS. It turns out the detected connector sequence is different compared to legacy method for my card and caused the disfunction of my driver with atombios code because of the VRAM scanout problem that mentioned in the topic.

 

Dong

 

Hi Dong,

 

No luck here at all.

 

Tried all combinations: No EDID informed, EDID informed, forceSwitchCrtc to true or false.

 

The external works perfectly but laptop screen gets a dark screen in NoAtomBios versión and a grey/blue screen on AtomBios version.

 

Thanks for your hard work on that. I wish I had the skills to help.

 

DoGuiTTo

Link to comment
Share on other sites

Looks like the latest version only works for my own card. It takes me a lot time to debug it already. And yes, I have not figure out a way to let people help with debug. The debugMode is not working in 2 heads mode I guess.

One possible way (but not very efficient) is to create a driver put two heads into mirror mode for hardware, but let OSX only knows one. In theory, if the one head RadeonHD works, this driver should work too. Just two displays always in mirror mode, and you can only change the resolution of the main display in OSX. It may help to generate some debug information.

Link to comment
Share on other sites

Test time again. Added forceHardwareMirror option for test purpose. Just found out previous 10.6 version only works for 10.6.5 and above. If you happened to test it on 10.6.4 and below, it's reasonable to fail.

Current 10.6 version should be compatible with 10.6.x hopefully.

Link to comment
Share on other sites

Lets turn back to old RadeonHD. See if u guys can get it work with hardwareMirror or not. If both displays successfully show same contents, plz attach the log information.

Link to comment
Share on other sites

Ati HD2300 (X1450) 718A Snowleopard 10.6.7

 

Internal screen native resolution: 1280x800

VGA external LCD resolution: 1024x768 (maximun)

 

Loaded sucessfully new RadeonHD mirror mode.

Both displays working.

 

Internal screen has get the external maximun resolution (1024x768)

 

so now:

Internal Screen: 1024x768

External LCD: 1024x768

 

Radeon dump information:

http://pastebin.com/my4T7v6U

 

Thx Dong.

Link to comment
Share on other sites

The same here.

 

ATI X1400.

 

Internal LCD does 1920x1200

External Monitor 1920x1080

 

Connecting both displays before boot works but only get 1920x1080 on internal LCD.

 

Connecting after boot time doesn't works (the screen get messy when try to activate external).

 

I think I something about the greater resolution on internal.

 

Attached is my RadeonDump.

 

Thanks for your hard work Dong.

RadeonDump_Inspiron9400_ATIX1400_1920x1200_1920x1080.rtf

Link to comment
Share on other sites

01:00.0 VGA compatible controller [0300]: ATI Technologies Inc M71 [Mobility Radeon X2100] (Secondary) [1002:7211]

 

running on 10.6.5

 

at boot up the lcd on the laptop comes on and the 46in samsung tv comes on.

 

tv display goes into 1920x1080

laptop is squished cant determine the resolution

 

dvd player doesnt work. also didnt work with single screen radian hd.kext

 

I am using SVGA for the tv. the DVI still didnt work but the DVI would be the dual head on my laptop

radian_hd_10027211.rtf

Link to comment
Share on other sites

Dong,

 

Was it supposed to work with TV-out or only DVI, HDMI etc?

I tried with TV-out but got no image at all, the main display is ok though.

 

Thanks.

 

I am using SVGA for the tv. the DVI still didnt work but the DVI would be the dual head on my laptop

Link to comment
Share on other sites

The old RadeonHD works for hardware mirror. But the combination of RadeonController/RadeonHD won't work for most ppl except me. There seems to be something happened different for the mechanism of the 2 head nubs attached to the PCI device by RadeonController and then get recognized by RadeonHD for different machines.

To gather some information for this, please boot into single user mode and type below commands:

mount -uw /

cd System/Library/Extensions

kextutil RadeonController.kext

kextutil RadeonHD.kext

ioreg -l -w0 > somePathToLogFile

 

Use kextload on 10.5

 

Then attach the output of the command and the ioreg here.

 

Thank you.

Link to comment
Share on other sites

Hardware mirror works great in the new kext now. Before external display would work but internal was corrupted. Now both displays show at external display native res. with LVDS squished.

 

2 head kexts give crash on loading.

Link to comment
Share on other sites

 Share

×
×
  • Create New...