Jump to content

QE problem on some Radeons investigations


  • Please log in to reply
30 replies to this topic

#1
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 3,020 posts
  • Gender:Male
  • Location:Moscow
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!!!

Attached Files



#2
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 3,020 posts
  • Gender:Male
  • Location:Moscow
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?

#3
Krazubu

Krazubu

    InsanelyMac Legend

  • Retired
  • 874 posts
Hey Slice, would any trial with my Radeon 9250 be useful considering it's a PCI card ?

#4
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 3,020 posts
  • Gender:Male
  • Location:Moscow

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.

#5
Krazubu

Krazubu

    InsanelyMac Legend

  • Retired
  • 874 posts
Ok, I'll try ASAP

#6
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 3,020 posts
  • Gender:Male
  • Location:Moscow
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

#7
Brucep

Brucep

    InsanelyMac Protégé

  • Members
  • Pip
  • 34 posts
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

#8
matthew s

matthew s

    InsanelyMac Protégé

  • Just Joined
  • Pip
  • 1 posts
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.

#9
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 3,020 posts
  • Gender:Male
  • Location:Moscow
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.

#10
Krazubu

Krazubu

    InsanelyMac Legend

  • Retired
  • 874 posts
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.

#11
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 3,020 posts
  • Gender:Male
  • Location:Moscow

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.

#12
littlestevie

littlestevie

    InsanelyMac Protégé

  • Members
  • Pip
  • 9 posts
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)

#13
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 3,020 posts
  • Gender:Male
  • Location:Moscow
Find RadeonPCI.kext and RadeonDump utility, create reports and upload at the ATI Framebuffer thread.

#14
Krazubu

Krazubu

    InsanelyMac Legend

  • Retired
  • 874 posts
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.

Attached Files



#15
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 3,020 posts
  • Gender:Male
  • Location:Moscow

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.

#16
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 3,020 posts
  • Gender:Male
  • Location:Moscow
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?

#17
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 3,020 posts
  • Gender:Male
  • Location:Moscow
I found in IOKitUser project by Apple some routings like GA.plugin. It is new chance for investigations.

#18
rjstrat

rjstrat

    InsanelyMac Protégé

  • Members
  • Pip
  • 24 posts

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

Attached Files



#19
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 3,020 posts
  • Gender:Male
  • Location:Moscow
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?

#20
rjstrat

rjstrat

    InsanelyMac Protégé

  • Members
  • Pip
  • 24 posts

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





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

© 2014 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy