Slice Posted June 30, 2008 Share Posted June 30, 2008 I begin new topic because I need new ideas and advices what to do. I have Radeon Mobility 9000IGP (devID=58351002) with shared memory which is the main problem. Chipset is RS300 (devID=58311002) integrated into the Radeon. I have sources of some drivers and can read binaries of any others. I also have many observations and I want to collect its in one place. Existing drivers AGPGart.kext. My own sources so I can change any what I want. Probably it works. Only with one settings I can enter GUI. ATIRadeon8500.kext. Write DevID into info.plist. Patch internal DevID to work as 4c66 - approximatly the same card. Patch initialization for DISPLAY_ADDRESS because of shared memory. After the patch I can enter GUI with hardware OpenGL. ATIRadeon8500GA.plugin. I have no sources and don't know it's protocol. How it works? ATIRadeon8500GLdriver.bundle. It is a library for hardware OpenGL. Same problem - no any information about it. ATILead.kext. In the driver I can launch any framebuffer and tune Radeon registers. Problem N1 is register F8. What I found. It is SCRATCH register used by BIOS to report to Radeon driver the size of video memory. OpenGL Extension Viewer read the value as OpenGL memory but System profiler shows other value. The register is used also in ATIRadeon8500.kext in procedure set_display_mode_and_vram. BUT. I can enter GUI only when I set F8=3Mb. Why-y-y-? The same for users of Radeon 200M IONDRVSupport and IOGraphicsFamily. I have working sources and can influence on its. But I still not find a link to GA.plugin. How they works? 0. With default system drivers I have fuzzy screen. 1. Without AGPGart I can enter GUI. All is fast except SCROLL. Any attempt to scroll a text in window lead to system hangs at all. 2. With AGPGart all is slo-o-ow. About 10 seconds on any graphics event. But SCROLL works! 3. With GA.plugin but without GL.bundle I can boot with any AGP settings and always slo-o-ow. 4. Without GA.plugin but with GL.bundle I can boot and all is fast but all OpenGL programs always crashes with log Thread 0 Crashed: 0 ...apple.ATIRadeon8500GLDriver 0x0140c284 gldChoosePixelFormat + 1974 1 GLEngine 0x00606728 gliChoosePixelFormat + 78 2 com.apple.CoreGraphics 0x904093ef _CGXGLDisplayContextForDisplayDevice + 983 So GA.plugin always delays my system in AGP mode and crash SCROLL in PCI mode. GL.bundle always crashes at one place. Other users observations. 1. Toadspit with the same chipset but with nVidia graphic card has GL crashes in AGP mode but no problem in PCI. AGP problem?! 2. Radeon200M users (PCIE graphics) can enter GUI with QE supported only with F8=3Mb as mine. And also have 10 seconds delays!!! So it is not AGP problem?! 3. Users of 4c66 that is the same Radeon but with dedicated memory and with Intel chipset report me fuzzy screen with any of my drivers. No good testings. Other observation of problematic Radeons? Advices, propositions? Now I know that GL and GA works independent. PARTIAL SUCCESS!!! I rename 9700GL to 8500GL and try it. Now OpenGL applications is no more crashes and I see spinning things in OpenGL test in XBench!!! Radeon9000GL.zip Link to comment Share on other sites More sharing options...
Slice Posted June 30, 2008 Author Share Posted June 30, 2008 GL crashes approximatly here Thread 0 crashed with i386 Thread State: eax: 0x0000001a ebx: 0x00300000 ecx:0x00000001 edx: 0x00000000 edi: 0x00000000 esi: 0xbfffe8ac ebp:0xbfffe878 esp: 0xbfffe710 ss: 0x0000002f efl: 0x00010246 eip:0x0140c284 cs: 0x00000027 ds: 0x0000002f es: 0x0000002f fs:0x00000000 gs: 0x00000037 loc_7A58: ; CODE XREF: _gldChoosePixelFormat+747j mov eax, ds:(off_299149 - 7303h)[ebx] mov eax, [eax+4] mov [ebp+var_13C], eax test eax, eax jz loc_7CE0 In register EBX I found my F8 value! Why Video_Memory_Size used as address? Link to comment Share on other sites More sharing options...
Krazubu Posted June 30, 2008 Share Posted June 30, 2008 Hey Slice, would any trial with my Radeon 9250 be useful considering it's a PCI card ? Link to comment Share on other sites More sharing options...
Slice Posted June 30, 2008 Author Share Posted June 30, 2008 Hey Slice, would any trial with my Radeon 9250 be useful considering it's a PCI card ? Can you tell your observation about graphics behaviuor with and witout any drivers? I know your card and have your ioreg. Can you try RadeonPCI by Dong to get registers dump? Any information can be useful. Link to comment Share on other sites More sharing options...
Krazubu Posted July 1, 2008 Share Posted July 1, 2008 Ok, I'll try ASAP Link to comment Share on other sites More sharing options...
Slice Posted July 2, 2008 Author Share Posted July 2, 2008 May be a problem is in IORegistry keys values? For example AAPL,vram-memory this key used by IONDRVSupport to get VRAM address and memsize. But in Real Mac I see | | | | "vendor-id" = <00001002> | | | | "device-id" = <00004966> | | | | "AAPL,vram-memory" = <9c00000004000000> | | | | "VRAM,memsize" = <0400000004000000> -- why twice? | | | | "address" = <9c008000> | | +-o ATY,Radeon9000i_B <class IONDRVDevice, registered, matched, active, busy 0, retain count 7> | | | { | | | "vendor-id" = <00001002> | | | "device-id" = <00004966> | | | "AAPL,vram-memory" = <9800000004000000> | | | "VRAM,memsize" = <0000000004000000> | | | "address" = <9a008000> I never see such values in HackOS Link to comment Share on other sites More sharing options...
Brucep Posted July 7, 2008 Share Posted July 7, 2008 hi there.. i just whant to say that thank you for all of you trying to make the x200 chipset work..!! shame i dont know much about programming and stuff.. but know that a lot of people will thank you!!! Best regards.. bruce Link to comment Share on other sites More sharing options...
matthew s Posted July 8, 2008 Share Posted July 8, 2008 Macintosh and Linux are both based off of unix. Linux has just gotten it's open source drivers for the 200m chipset to work with 3d acceleration. I don't know if linux and macs handle the drivers in a similar way, but you might want to look at the source code of the linux driver. Link to comment Share on other sites More sharing options...
Slice Posted July 9, 2008 Author Share Posted July 9, 2008 If you can see from ATI Framebuffer project I already use Linux sources. May be later I found solution. Here I want to get your observation what is wrong in existing drivers. Link to comment Share on other sites More sharing options...
Krazubu Posted July 14, 2008 Share Posted July 14, 2008 Slice, I plugged my ATI 9250 could you precise what registers range you want, and also what you call the drivers, if there's something more than the stock kexts. Link to comment Share on other sites More sharing options...
Slice Posted July 14, 2008 Author Share Posted July 14, 2008 Slice, I plugged my ATI 9250 could you precise what registers range you want, and also what you call the drivers, if there's something more than the stock kexts. To get registers you need to install RadeonPCI.kext and type in terminal ./RadeonDump -r 0,300 it is most interesting range. In my version of RadeonDump (RadeonDumpS) I make more compact output for registers. About other drivers - first I want to know about stock drivers ATIRadeon8500.kext - you need no patch ...GA.plugin ...GLDriver.bundle If you get boot into desktop with the drivers then check please OpenGL works or no. OpenGL Extension Viewer, OpenMark, xBench etc. Thank you in advance. Link to comment Share on other sites More sharing options...
littlestevie Posted July 15, 2008 Share Posted July 15, 2008 if its any help i have a Xpress 1100 which doesnt ID properly (200M) even in windows Vista X64 (infact windows vista 32bit is the only OS that ID's correctly) that is in a laptop, i would really like to help, not only for my benefit but for anyone with this graphics processor (alot of asus laptops have them) i can boot and get to the desktop but no QE and i have to boot from the DVD with "rd=disk0s3 mach_kernel" because otherwise i get a artifacted image. i have been following your guide and it only partially works for my chipset. profiler shows the Device ID as 5a62 and that i have 256MB of VRAM (even though Darwin only can find 16MB :S) oh and im not some total noob i am newish to osx but i know my way around the terminal and kext editing (been doing alot of that to get the rest of my hardware working) Thanks Little Stevie (P.S: im not requesting anything im offering in helping to get more support) System Specs: Celeron T530 1.6GHz 1MB L2 Cache 2GB DDR (system profiler cant pull the speed of it though) SB400 southbridge X1100 Graphics 80GB seagate SATA HDD 5400rpm 15.1" Widescreen (i dont think audio wifi bluetooth need to be spec'd for you) Link to comment Share on other sites More sharing options...
Slice Posted July 15, 2008 Author Share Posted July 15, 2008 Find RadeonPCI.kext and RadeonDump utility, create reports and upload at the ATI Framebuffer thread. Link to comment Share on other sites More sharing options...
Krazubu Posted July 15, 2008 Share Posted July 15, 2008 Ok, Im back with the results. I attached the 2 dumps, with and without drivers. With drivers, anything that uses OpenGL will crash as soon as it tries (screensaver panel, Xbench, OpenGL extensions viewer). I joined the crashlog, I thought it might be useful. Did this under 10.4.8, using 10.4.7 GFX kexts and OpenGL.framework PS : Maybe you already knew but I noticed that ATIRadeon8500.kext is not unibin anymore in Leopard. crashlogOGL9250PCI.txt dump9250PCIdriver.txt dump9250PCInodriver.txt Link to comment Share on other sites More sharing options...
Slice Posted July 15, 2008 Author Share Posted July 15, 2008 Ok, Im back with the results. I attached the 2 dumps, with and without drivers. With drivers, anything that uses OpenGL will crash as soon as it tries (screensaver panel, Xbench, OpenGL extensions viewer). I joined the crashlog, I thought it might be useful. Did this under 10.4.8, using 10.4.7 GFX kexts and OpenGL.framework PS : Maybe you already knew but I noticed that ATIRadeon8500.kext is not unibin anymore in Leopard. I read your reports. No answers but new questions. You have exactly the same crash.log as me. Why? 1. You have no AGPGart so it is not problem of the AGP driver. 2. Your DevID is directly supported by Radeon8500 so it is not problem of incorrect patch. 3. You have dedicated memory while I have shared memory so it is not problem of addressing. So I can suppose that the problem in ATIRadeonGLDriver or in OpenGL.framework. Thread 0 Crashed: 0 ...apple.ATIRadeon8500GLDriver 0x0ea75964 gldChoosePixelFormat + 1974 1 GLEngine 0x0e90670c gliChoosePixelFormat + 78 ATIRadeon8500.kext is PPC only in Leo because Apple didn't make a whole set of ATI drivers for R200 in Intel flavour. Significant part of PowerPC driver contains in EFI that inject it in registry | | | "driver,AAPL,MacOS,PowerPC" = <6d74656a000000000f4154592c526f636b486f70706572320000000000000000000000000000 0000101806400000006112e446973706c61795f4475616c486561640000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000016e6472 67669646f01000000> But it is useless for us. Link to comment Share on other sites More sharing options...
Slice Posted July 19, 2008 Author Share Posted July 19, 2008 I found some contradiction. Don't know how to use the knowledge. In X1000GA.plugin as well as 8500GA I see methods _radeonGAInterface dd 0 ; DATA XREF: _ATIRadeonX1000GAFactory+15Dr dd offset __QueryInterface dd offset __AddRef dd offset __Release dd offset __Probe dd offset __Start dd offset __Stop dd offset __Reset dd offset __GetCapabilities dd offset __Flush dd offset __Synchronize dd offset __GetBeamPosition dd offset __AllocateSurface dd offset __FreeSurface dd offset __LockSurface dd offset __UnlockSurface dd offset __SwapSurface dd offset __SetDestination dd offset __GetBlitter dd offset __WaitComplete dd offset __WaitSurface dd offset __SetSurface But in IOGraphics project any version I see typedef struct IOGraphicsAcceleratorInterfaceStruct { IOReturn (*Reset) (void *thisPointer, IOOptionBits options); IOReturn (*CopyCapabilities) (void *thisPointer, FourCharCode select, CFTypeRef * capabilities); #ifdef IOGA_COMPAT IOReturn (*GetBlitProc) (void *thisPointer, IOOptionBits options, IOBlitType type, IOBlitSourceDestType sourceDestType, IOBlitProcPtr * blitProc ); #else void * __gaInterfaceReserved0; #endif IOReturn (*Flush) (void *thisPointer, IOOptionBits options); #ifdef IOGA_COMPAT IOReturn (*WaitForCompletion) (void *thisPointer, IOOptionBits options, IOBlitCompletionToken completionToken); #else void * __gaInterfaceReserved1; #endif IOReturn (*Synchronize) (void *thisPointer, UInt32 options, UInt32 x, UInt32 y, UInt32 w, UInt32 h ); IOReturn (*GetBeamPosition) (void *thisPointer, IOOptionBits options, SInt32 * position); IOReturn (*AllocateSurface) (void *thisPointer, IOOptionBits options, IOBlitSurface * surface, void * cgsSurfaceID ); IOReturn (*FreeSurface) (void *thisPointer, IOOptionBits options, IOBlitSurface * surface); IOReturn (*LockSurface) (void *thisPointer, IOOptionBits options, IOBlitSurface * surface, vm_address_t * address ); IOReturn (*UnlockSurface) (void *thisPointer, IOOptionBits options, IOBlitSurface * surface, IOOptionBits * swapFlags); IOReturn (*SwapSurface) (void *thisPointer, IOOptionBits options, IOBlitSurface * surface, IOOptionBits * swapFlags); IOReturn (*SetDestination) (void *thisPointer, IOOptionBits options, IOBlitSurface * surface ); IOReturn (*GetBlitter) (void *thisPointer, IOOptionBits options, IOBlitType type, IOBlitSourceType sourceType, IOBlitterPtr * blitter ); IOReturn (*WaitComplete) (void *thisPointer, IOOptionBits options); Almost the same but some differencies. Is it significant? Link to comment Share on other sites More sharing options...
Slice Posted July 25, 2008 Author Share Posted July 25, 2008 I found in IOKitUser project by Apple some routings like GA.plugin. It is new chance for investigations. Link to comment Share on other sites More sharing options...
rjstrat Posted August 2, 2008 Share Posted August 2, 2008 I found in IOKitUser project by Apple some routings like GA.plugin. It is new chance for investigations. Hi Slice, I just returned from trip, I am posting results/errors of ATI 9800pro-i865g combo, I apologize if this is redundant, just trying to give all info possible. It is interesting that I have ATI Dev: 0x4e48, which is supposed to be native support in 9700.kext, yet nothing seems to work. With 9700GA plug I show QE and CI support, yet neither seem to function, with or without AGPGart.kext. Open GL fails to initialize and I will get blank black or white window. CI also gives same result. Also, with 9700GA plug and AGPGart loaded, I get very slow scrolling/window redraw even though I show QE/CI. Let me know if I can test anything. Thanks again for huge effort, rj 9800pro_i865g_logs.zip Link to comment Share on other sites More sharing options...
Slice Posted August 2, 2008 Author Share Posted August 2, 2008 Thanks for testing. Really new results. I see crash log is always different. Different reasons? Or different effect for a one reason? Needs to think. Aboud bad XBench UI result - no news. I think it is framebuffer problem and I am trying to make new one. ATIMonitor crashes with the same reason 3 com.apple.CoreGraphics 0x90326543 CGSNewRegionWithRect + 371 4 com.apple.CoreGraphics 0x903d4283 bindDisplayMapping + 337 5 com.apple.CoreGraphics 0x90325169 updateAllDisplayInfoAsNeeded + 193 It is allocating region to write into display. Typical task for framebuffer. And DVD crash with Binary Images Description: 0x1000 - 0x1acfff com.apple.DVDPlayer 4.6.5 /Applications/DVD Player.app/Contents/MacOS/DVD Player 0xc102000 - 0xc1a1fff ch.rafz.naegeli.christoph.xvid_codec 0.x.x /Library/QuickTime/XviD_Codec-r58 (Intel).component/Contents/MacOS/XviD_Codec 0xc257000 - 0xc2c8fff com.DivXInc.DivXDecoder 6.2.5 /Library/QuickTime/DivX Decoder.component/Contents/MacOS/DivX Decoder 0xc2d6000 - 0xc375fff com.apple.QuickTimeImporters.component 7.4.5 (67) /System/Library/QuickTime/QuickTimeImporters.component/Contents/MacOS/QuickTimeImporters 0xc399000 - 0xc4ebfff ch.rafz.naegeli.christoph.ff_avi_importer 1.0 (0.0) /Library/QuickTime/AviImporter-r7 (Intel).component/Contents/MacOS/AviImporter 0xd38d000 - 0xd3e1fff com.apple.AppleVADriver 4.0.3 /System/Library/Extensions/AppleVADriver.bundle/Contents/MacOS/AppleVADriver May be Xvid is not correct? Link to comment Share on other sites More sharing options...
rjstrat Posted August 2, 2008 Share Posted August 2, 2008 Thanks for testing. Really new results.I see crash log is always different. Different reasons? Or different effect for a one reason? Needs to think. Aboud bad XBench UI result - no news. I think it is framebuffer problem and I am trying to make new one. ATIMonitor crashes with the same reason 3 com.apple.CoreGraphics 0x90326543 CGSNewRegionWithRect + 371 4 com.apple.CoreGraphics 0x903d4283 bindDisplayMapping + 337 5 com.apple.CoreGraphics 0x90325169 updateAllDisplayInfoAsNeeded + 193 It is allocating region to write into display. Typical task for framebuffer. And DVD crash with Binary Images Description: 0x1000 - 0x1acfff com.apple.DVDPlayer 4.6.5 /Applications/DVD Player.app/Contents/MacOS/DVD Player 0xc102000 - 0xc1a1fff ch.rafz.naegeli.christoph.xvid_codec 0.x.x /Library/QuickTime/XviD_Codec-r58 (Intel).component/Contents/MacOS/XviD_Codec 0xc257000 - 0xc2c8fff com.DivXInc.DivXDecoder 6.2.5 /Library/QuickTime/DivX Decoder.component/Contents/MacOS/DivX Decoder 0xc2d6000 - 0xc375fff com.apple.QuickTimeImporters.component 7.4.5 (67) /System/Library/QuickTime/QuickTimeImporters.component/Contents/MacOS/QuickTimeImporters 0xc399000 - 0xc4ebfff ch.rafz.naegeli.christoph.ff_avi_importer 1.0 (0.0) /Library/QuickTime/AviImporter-r7 (Intel).component/Contents/MacOS/AviImporter 0xd38d000 - 0xd3e1fff com.apple.AppleVADriver 4.0.3 /System/Library/Extensions/AppleVADriver.bundle/Contents/MacOS/AppleVADriver May be Xvid is not correct? Hi Slice, I was thinking about doing fresh install of 10.4.11 on this machine, for sake of consistency of logging each change to system, maybe I can test each item as it is added to machine and post results. Maybe useful info as I have supposed native support in 9700.kext. What do you think? Also, there are so many posts with different osx versions, maybe we should test with same version? I also have Jas 10.4.8, but I have not been able to locate any earlier versions i.e. 10.4.6 etc. Thanks, rj Link to comment Share on other sites More sharing options...
Slice Posted August 2, 2008 Author Share Posted August 2, 2008 Hi Slice,I was thinking about doing fresh install of 10.4.11 on this machine, for sake of consistency of logging each change to system, maybe I can test each item as it is added to machine and post results. Maybe useful info as I have supposed native support in 9700.kext. What do you think? Also, there are so many posts with different osx versions, maybe we should test with same version? I also have Jas 10.4.8, but I have not been able to locate any earlier versions i.e. 10.4.6 etc. Thanks, rj Don't know about different versions. I found that kexts from 1.4.8 works for me but 1.4.9 - no. And I have a report that OpenGL.framework from 10.4.6 may resolve some QE problem. Advice - use older framework even in new OS version. You can find it within old drivers packages proposed in the forum. Link to comment Share on other sites More sharing options...
dlunch Posted August 13, 2008 Share Posted August 13, 2008 Hi slice, I have samsung laptop P29. with Mobility radeon 9000 IGP(devid 5835). I had sucessfully installed 10.4.9(uphuck) and upgraded to 10.4.11 with using your ATILead, AGPGart and ATIRadeon.kext, I can boot into GUI, but it's really slow. my shared memory settings is 128mb. what should i do to enable QE or 3d Acceleration? Thanks. (Sorry for bad english) Link to comment Share on other sites More sharing options...
Slice Posted August 13, 2008 Author Share Posted August 13, 2008 Hi slice,I have samsung laptop P29. with Mobility radeon 9000 IGP(devid 5835). I had sucessfully installed 10.4.9(uphuck) and upgraded to 10.4.11 with using your ATILead, AGPGart and ATIRadeon.kext, I can boot into GUI, but it's really slow. my shared memory settings is 128mb. what should i do to enable QE or 3d Acceleration? Thanks. (Sorry for bad english) Wow! You have exactly the same laptop as me. Till now I have no QE and I am trying to understand why. It is not big problem for me to make a patch to somewhat. But I need to know what is needed to be patching. I need new observations, informations and ideas. You are happy to install 10.4.11, I didn't find distr installable for me except 10.4.6. Link to comment Share on other sites More sharing options...
Slice Posted September 12, 2008 Author Share Posted September 12, 2008 A month no news here. Nobody knows how to investigate the problem. I found that GA.plugin, as well as OpenGL, works in UserSpace and perform a connection to drivers in KernelSpace. I don't understand how the system may works without it. Without it system works in software QE mode writing graphics directly to VRAM. Without Accelerator driver such as ATIRadeon8500.kext. Link to comment Share on other sites More sharing options...
Slice Posted September 12, 2008 Author Share Posted September 12, 2008 I begin to understand how GA.plugin works arg_0 = dword ptr 8 //this arg_4 = dword ptr 0Ch //options arg_8 = dword ptr 10h //*surface arg_C = dword ptr 14h //*address push ebp mov ebp, esp push esi sub esp, 34h mov esi, [ebp+arg_8] //*surface mov eax, [esi+28h] // interfaceRef=*IOBlitMemory mov edx, 0E00002D8h // kIOReturnNotReady test eax, eax jz short loc_16D8 mov eax, [eax+4] //pixelFormat test eax, eax jz short loc_16E0 mov edx, [ebp+arg_C] //*address mov [edx], eax // output parameter - pixelFormat xor edx, edx // kIOReturnSuccess Continue Link to comment Share on other sites More sharing options...
Recommended Posts