Jump to content

ATI Framebuffer development


  • Please log in to reply
465 replies to this topic

#121
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 2,973 posts
  • Gender:Male
  • Location:Moscow
How to analyze the wormy codes
loc_235BD:			; CODE XREF: _HW_TMDS1OnOff+407j
....
		mov	[esp+58h+var_50], 101h
		mov	[esp+58h+var_54], 78D8h //TMDSA_DATA_SYNCHRONIZATION_R500
		mov	eax, [ebp+arg_0]
		mov	[esp+58h+var_58], eax
		call	_regw32
It means
RegWrite32(0x78D8, 0x101);

Found DDC/EDID codes
public _DDCSetClock
_DDCSetClock	proc near	; CODE XREF: _DDCInit+14p
...
		movzx	eax, ds:_ddc_io
		mov	[ebp+var_9], al
		lea	eax, [ebp+var_9]
		or	byte ptr [eax],	10h  //Clock enable
...
		lea	eax, [ebp+var_9]
		or	byte ptr [eax],	2  //ClockOut=1
...
		mov	edx, [eax+16Ch]			// address of RegWrite
		movzx	eax, [ebp+var_9]	// data to write
		mov	[esp+38h+var_34], eax  // argument 2
		mov	eax, [ebp+arg_0]		   // iomap
		mov	[esp+38h+var_38], eax  // argument 1 
		call	edx							   // call RegWrite
		mov	[esp+38h+var_38], 0FFFFFFFBh
		call	_kdelay   // kind of IODelay(0x0FFFFFFFB)
Here I see
Clock enable bit = 0x10
Data enable bit = 0x20
Clock out bit = 0x2
Data out bit = 0x4
It is differ from all previous sources.
I don't see DDC registers.

What is the registers?
R5XX_CONFIG_MEMSIZE			= 0x00F8,
	R5XX_FB_INTERNAL_ADDRESS	   = 0x0134,
It is a key for me to get QE/CI!!! R200-R400 has the same registers.

#122
dong

dong

    InsanelyMac Sage

  • Retired Developers
  • 366 posts
  • Gender:Male
Guys,
Now a new RadeonDump.zip for EDID dumping.
I've test it on my T60 as well as on my Dell. In both cases, it works.
myE510:~/Desktop/RadeonPCI dong$ ./RadeonDump -i
Found a device of class RadeonPCI: IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PCI1@1/IOPCI2PCIBridge/display@0,1/RadeonPCI
it matched on name "display"
Start I2C dump
Read EDID at position 0 failed
EDID at position 1:
0x0000: 00FFFFFFFFFFFF0010AC15A053524D34
0x0010: 240F010368221B78EECAF6A357479E23
0x0020: 114F54A54B00714F8180010101010101
0x0030: 010101010101302A009851002A403070
0x0040: 1300520E1100001E000000FD00384B1F
0x0050: 500E000A202020202020000000FF0047
0x0060: 43383131353855344D52530A000000FC
0x0070: 0044454C4C204531393646500A20004D
Slice, I now think you are not using source code from radeon-ati.
The new RadeonDump is adapted from radeon-ati and it's supposed to work for most radeon cards.

People please test it. Download and put all the files in the RadeonPCI project (get from post#28) folder. Read the header of RadeonDump.c for compiling instruction.

In this source, I can not tell the exact bus line number as the i2c structure is manually created without line information.

#123
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 2,973 posts
  • Gender:Male
  • Location:Moscow
Thanks Dong. I'll try your RadeonDump as soon as possible.

New idea.
Why ATINDRV.kext is not working for you? It is intended for R5xx.
But different I2C methods! So it simply can't get EDID for your card!
If so you need ONLY to rewrite getEDID in IONDRVSupport as you already done and leave all other methods doStatus/doControl by default to be performed by ATINDRV.
Thus your working configuration (I hope :) ):
ATILead.kext to inject name "ATY,Wormy" (or other?)
IONDRVSupport.kext with corrected getEDID
ATINDRV.kext as is.
To check you need not more then one hour.
Victory? :hysterical:

The same for OLE2.
Not for me. I will go by Joblo's way. Callisto003 works for me but without AGP acceleration - old story.

#124
dong

dong

    InsanelyMac Sage

  • Retired Developers
  • 366 posts
  • Gender:Male

New idea.
Why ATINDRV.kext is not working for you? It is intended for R5xx.
But different I2C methods! So it simply can't get EDID for your card!
If so you need ONLY to rewrite getEDID in IONDRVSupport as you already done and leave all other methods doStatus/doControl by default to be performed by ATINDRV.
Thus your working configuration (I hope :wacko: ):
ATILead.kext to inject name "ATY,Wormy" (or other?)
IONDRVSupport.kext with corrected getEDID
ATINDRV.kext as is.
To check you need not more then one hour.
Victory? :P

I hope it will work cause that will be really nice. But how if ATINDRV overwrites and only uses its own version of getEDID?

#125
justin1986

justin1986

    InsanelyMac Protégé

  • Members
  • Pip
  • 8 posts

I'm using Callisto003 Fixed, and i don't disable nothing. Just put the RadeonPci and ATILead (changing the IOPCIFamily version), loaded and voil.



Changed anything in ATILead?

I lost the ability to change resolution, and it detects my X200M as "Display". also says it has 256 RAM, while I only have 128.

EDIT: adding this from Sys Profiler. Before I installed ATILead and RadeonPCI, it always gave me 5975 as device ID.

Display:

Type: Display
Bus: PCI
VRAM (Total): 256 MB
Vendor: ATI (0x1002)
Device ID: 0x5955
Revision ID: 0x0000
Displays:
Display:
Resolution: 1024 x 768
Depth: 32-bit Color
Core Image: Software
Main Display: Yes
Mirror: Off
Online: Yes
Quartz Extreme: Not Supported

#126
asstastic

asstastic

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 318 posts
  • Gender:Male
  • Location:Austin, TX
I've been testing out latest version of RadeonDump on my mobility x1600.

At first it did nothing, then I realized I should probably have RadeonPCI kext installed. So I install kext, check to make sure it's loaded and try again. This time I get output but it still can't find EDID:
gojiras-aspire-5670:~ gojira$ /Users/gojira/Desktop/Radeon\ PCI/RadeonPCI_compiled/RadeonDump -i
  Found a device of class RadeonPCI: IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEGP@1/IOPCI2PCIBridge/VGA@0/RadeonPCI
  it matched on name "ATY,WormyParent"
  Start I2C dump
  Read EDID at position 0 failed
  Read EDID at position 1 failed
For some reason it seems to be trying to read from the VGA port(no monitor attached btw) instead of LVDS. Perhaps error is caused by com.apple.boot.plist EFI device strings(Same function as ATIinject/Natit) conflicts with RadeonPCI. If there is a possibility of conflict I can restore original boot.plist and test again. Otherwise, is there a way to get more verbose info to track down the error?

#127
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 2,973 posts
  • Gender:Male
  • Location:Moscow

I hope it will work cause that will be really nice. But how if ATINDRV overwrites and only uses its own version of getEDID?

No, ATINDRV is slave, IONDRVFramebuffer is master.
IOReturn IONDRVFramebuffer::getDDCBlock( IOIndex /* connectIndex */,
		UInt32 blockNumber,
		IOSelect blockType,
		IOOptionBits options,
		UInt8 * data, IOByteCount * length )
{
...
	err = _doStatus( this, cscGetDDCBlock, &ddcRec); // call for ATINDRV
If you rewrite this method ATINDRV will never be called for getEDID

2 asstastic
Are you use own compilation of RadeonDump latest version?
2 justin1986
make
ioreg -l -x -w 2048 >ioreg.txt
and look what drivers is loaded to what devices

#128
asstastic

asstastic

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 318 posts
  • Gender:Male
  • Location:Austin, TX

2 asstastic
Are you use own compilation of RadeonDump latest version?


ya just like the post said, i put the latest version of RadeonDump in the same folder as RadeonPCI from post #28 and compiled it using the code at the top of RadeonDump.

ok, I tested again without using EFI boot strings and got the exact same result as before.

#129
dong

dong

    InsanelyMac Sage

  • Retired Developers
  • 366 posts
  • Gender:Male

ok, I tested again without using EFI boot strings and got the exact same result as before.

I'm still looking into the linux source to find out how connector information is taken into account. At the mean time, please try this to see if your card is in the known card list.RadeonDump.zip

#130
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 2,973 posts
  • Gender:Male
  • Location:Moscow

I'm still looking into the linux source to find out how connector information is taken into account. At the mean time, please try this to see if your card is in the known card list.

I am not successful with new RadeonDump. It is much more complex code. Grates Dong! :(
No problem with known card list. Problem is in different pins for clock and data from different manufactures.
I am still trying to find data_mask/clock_mask in different combination with different registers.
What is strange: Linux uses revers 0<->1 bits (High=0 Low=1) while Windows and Wormy drivers High=1 Low=0.

#131
clefmeister

clefmeister

    InsanelyMac Protégé

  • Just Joined
  • Pip
  • 1 posts
Slice and Dong:

If either of your efforts would lead to a good driver for the X1200 series, I'd like to offer my help testing. I'm no programmer, but I can certainly test drivers with a wee bit of instruction. I'm running on a Dell Inspiron 1521, and the information I've managed to get on my graphics card is thus:

Radeon X1270 IGP (based on X700)
Codename: M690T

I'm currently using Natit on Leopard 10.5.2. System Profiler has this to say about the graphics:

ATI Radeon Xpress 1200 Series:

Chipset Model: ATI Radeon Xpress 1200 Series
Type: Display
Bus: PCI
VRAM (Total): 256 MB
Vendor: ATI (0x1002)
Device ID: 0x791f
Revision ID: 0x0000
Displays:
Display:
Resolution: 1024 x 768
Depth: 32-bit Color
Core Image: Software
Main Display: Yes
Mirror: Off
Online: Yes
Quartz Extreme: Not Supported
Display Connector:

If you need any additional information, just let me know.

#132
justin1986

justin1986

    InsanelyMac Protégé

  • Members
  • Pip
  • 8 posts

2 justin1986
make
ioreg -l -x -w 2048 >ioreg.txt
and look what drivers is loaded to what devices


No AtiLead in there. RadeonPCI is though. I used device ids 0x59751002 and 0x59551002 in Atilead info.plist

Attached Files



#133
asstastic

asstastic

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 318 posts
  • Gender:Male
  • Location:Austin, TX

I'm still looking into the linux source to find out how connector information is taken into account. At the mean time, please try this to see if your card is in the known card list.


Where can I find the known card list? I know my card has native driver support(QE/CI using all vanilla kexts, just no res change).

the new RadeonDump gives me this output:
sh-3.2# /Users/gojira/Desktop/Radeon\ PCI/RadeonPCI_compiled/RadeonDump -i
Found a device of class RadeonPCI: IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEGP@1/IOPCI2PCIBridge/VGA@0/RadeonPCI
it matched on name "ATY,WormyParent"
Card device id: 0x71c5
Start I2C dump
EDID at position 0:
Error reading EDID block
Error reading EDID block
Error reading EDID block
Error reading EDID block
Read EDID at position 0 failed
EDID at position 1:
Error reading EDID block
Error reading EDID block
Error reading EDID block
Error reading EDID block
Read EDID at position 1 failed
sh-3.2#

also most registers from 120-160 are empty:
sh-3.2# /Users/gojira/Desktop/Radeon\ PCI/RadeonPCI_compiled/RadeonDump -r 120,160
Found a device of class RadeonPCI: IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEGP@1/IOPCI2PCIBridge/VGA@0/RadeonPCI
it matched on name "ATY,WormyParent"
0x0120: 0x00000000
0x0124: 0x00000000
0x0128: 0x00000000
0x012C: 0x00000000
0x0130: 0x00800000
0x0134: 0x00000000
0x0138: 0x00000000
0x013C: 0x00000000
0x0140: 0x00000000
0x0144: 0x00000000
0x0148: 0x00000000
0x014C: 0x00000000
0x0150: 0x00000000
0x0154: 0x00000000
0x0158: 0x00000000
0x015C: 0x00000000
0x0160: 0x00000000
sh-3.2#


#134
asstastic

asstastic

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 318 posts
  • Gender:Male
  • Location:Austin, TX
Just to make sure the dump code is working right I plugged my projector into the vga port and ran RadeonDump:
h-3.2# /Users/gojira/Desktop/Radeon\ PCI/RadeonPCI_compiled/RadeonDump -i
Found a device of class RadeonPCI: IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEGP@1/IOPCI2PCIBridge/VGA@0/RadeonPCI
it matched on name "ATY,WormyParent"
Card device id: 0x71c5
Start I2C dump
EDID at position 0:
Error reading EDID block
Error reading EDID block
Error reading EDID block
Error reading EDID block
Read EDID at position 0 failed
EDID at position 1:
0x0000: 00FFFFFFFFFFFF00066B520401010101
0x0010: 000A01022E0000000800000000000000
0x0020: 000000FFFF809040904F010101010101
0x0030: 01010101010164190040410026301888
0x0040: 3600000000000018000000FC00494E46
0x0050: 4F43555352503130780A000000FE000A
0x0060: 202020202020202020202020000000FE
0x0070: 000A20202020202020202020202000D5
sh-3.2#
As you can see it is working fine. We just need to fix the code so that it runs through all possible displays connections. Should be easy to run a dump on every output (VGA, HDMI, S-Video and LVDS) and then check to see which ones have monitors attached by whether they dump an edid or not.

#135
dong

dong

    InsanelyMac Sage

  • Retired Developers
  • 366 posts
  • Gender:Male

No, ATINDRV is slave, IONDRVFramebuffer is master.

IOReturn IONDRVFramebuffer::getDDCBlock( IOIndex /* connectIndex */,
	err = _doStatus( this, cscGetDDCBlock, &ddcRec); // call for ATINDRV
If you rewrite this method ATINDRV will never be called for getEDID

I've tested new IONDRVSupport.kext with Natit, nothing improved. I guess ATINDRV subclassed IONDRVFramebuffer and overwrited these member functions instead of only providing low level implementations in IOBootNDRV class.

JAs you can see it is working fine. We just need to fix the code so that it runs through all possible displays connections. Should be easy to run a dump on every output (VGA, HDMI, S-Video and LVDS) and then check to see which ones have monitors attached by whether they dump an edid or not.

The DDC line seems determined by corresponding MASK register value. All DDC lines are forced to be detected in this new code without consideration of card type. Please give it a try.
Attached File  RadeonDump.zip   57.23KB   35 downloads

#136
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 2,973 posts
  • Gender:Male
  • Location:Moscow

I've tested new IONDRVSupport.kext with Natit, nothing improved. I guess ATINDRV subclassed IONDRVFramebuffer and overwrited these member functions instead of only providing low level implementations in IOBootNDRV class.

Complex relations
In constructor (; ATY_Wormy::ATY_Wormy(void)) I understand that when the class is created it create an instance of IONDRVFramebuffer but not override its members.

ATINDRV is called by framebuffer
err = ndrv->doDriverIO( commandID, contents, commandCode, commandKind );
; ATY_Wormy::doDriverIO(unsigned long, void *, unsigned	long, unsigned long)		public __ZN9ATY_Wormy10doDriverIOEmPvmm		push	ebp		mov	ebp, esp		push	ebx		sub	esp, 84h		mov	dword ptr [ebp-14h], 0		mov	dword ptr [ebp-54h], offset aKiondrvopencom ; "kIONDRVOpenCommand		 "		mov	dword ptr [ebp-50h], offset aKiondrvcloseco ; "kIONDRVCloseCommand		 "		mov	dword ptr [ebp-4Ch], offset aKiondrvreadcom ; "kIONDRVReadCommand		 "		mov	dword ptr [ebp-48h], offset aKiondrvwriteco ; "kIONDRVWriteCommand		 "		mov	dword ptr [ebp-44h], offset aKiondrvcontrol ; "kIONDRVControlCommand		 "		mov	dword ptr [ebp-40h], offset aKiondrvstatusc ; "kIONDRVStatusCommand		 "		mov	dword ptr [ebp-3Ch], offset aKiondrvkillioc ; "kIONDRVKillIOCommand		 "		mov	dword ptr [ebp-38h], offset aKiondrvinitial ; "kIONDRVInitializeCommand		 "		mov	dword ptr [ebp-34h], offset aKiondrvfinaliz ; "kIONDRVFinalizeCommand		 "		mov	dword ptr [ebp-30h], offset aKiondrvreplace ; "kIONDRVReplaceCommand		 "		mov	dword ptr [ebp-2Ch], offset aKiondrvsuperse ; "kIONDRVSupersededCommand		 "
Looking into wormy sources you can find all methods used
; IONDRVFramebuffer::getConnectionCount(void)
		extrn __ZN17IONDRVFramebuffer18getConnectionCountEv
It is external method so it is called from external driver IONDRVSupport.

The DDC line seems determined by corresponding MASK register value. All DDC lines are forced to be detected in this new code without consideration of card type. Please give it a try.

sergey:~/Desktop/RadeonDump sergey$ cc ./RadeonDump.c ./xf86i2c.c -o ./RadeonDump -framework IOKit -framework CoreFoundation -Wno-four-char-constants -Wall -g -arch i386
sergey:~/Desktop/RadeonDump sergey$ ./RadeonDump -i
Found a device of class RadeonPCI: IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/AGP@1/AGPGart/ATIM@5/RadeonPCI
it matched on name "display"
Card device id: 0x5835
Start I2C dump
EDID for VGA monitor:
Read EDID failed or no VGA monitor connected
EDID for DVI monitor:
Read EDID failed or no DVI monitor connected
EDID for DVI monitor:
Read EDID failed or no DVI monitor connected
EDID for CRT monitor:
Read EDID failed or no CRT monitor connected
EDID for LCD monitor:
Read EDID failed or no LCD monitor connected
sergey:~/Desktop/RadeonDump sergey$
As I previously said I don't trust Linux codes.
i2c.put_clk_mask = RADEON_GPIO_EN_1;
	i2c.put_data_mask = RADEON_GPIO_EN_0;
	i2c.get_clk_mask = RADEON_GPIO_Y_1;
	i2c.get_data_mask = RADEON_GPIO_Y_0;
These masks doesn't work for me. Windows driver has other masks (see my posts above) and doesn't work too. I don't know what is the problem. I did several attempts to change the masks in your codes but had no success yet.
Very nice that two men are successful!
I think for other it is easy to make
if(!rinfo->mon1_EDIDvalid){
			//Try to get EDID from BIOS
			if(!getEDIDfromBIOS(rinfo)){
				IOLog("ATIFB: NO EDID DATA FOUND! Trying ATI,EDID\n");
				if((data = OSDynamicCast(OSData, device->getProperty("ATI,EDID"))))
				{
					rinfo->mon1_EDIDvalid = true;
					rinfo->mon1_EDID = *(EDID *)data->getBytesNoCopy();
 				}
			} else 
				IOLog("ATIFB: EDID found from BIOS\n");
		}


#137
asstastic

asstastic

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 318 posts
  • Gender:Male
  • Location:Austin, TX

I've tested new IONDRVSupport.kext with Natit, nothing improved. I guess ATINDRV subclassed IONDRVFramebuffer and overwrited these member functions instead of only providing low level implementations in IOBootNDRV class.

The DDC line seems determined by corresponding MASK register value. All DDC lines are forced to be detected in this new code without consideration of card type. Please give it a try.
Attached File  RadeonDump.zip   57.23KB   35 downloads

No Luck with the new RadeonDump detecting the internal LCD. Looks like the problem is something else. Would a clipping from my IO Registry help in any way?
gojiras-aspire-5670:~ gojira$ /Users/gojira/Desktop/Radeon\ PCI/RadeonPCI_compiled/RadeonDump -i
Found a device of class RadeonPCI: IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEGP@1/IOPCI2PCIBridge/VGA@0/RadeonPCI
it matched on name "ATY,WormyParent"
Card device id: 0x71c5
Start I2C dump
EDID at DDC 0:
Read EDID at DDC 0 failed
EDID at DDC 1:
Read EDID at DDC 1 failed
EDID at DDC 2:
Read EDID at DDC 2 failed
gojiras-aspire-5670:~ gojira$


#138
dong

dong

    InsanelyMac Sage

  • Retired Developers
  • 366 posts
  • Gender:Male

As I previously said I don't trust Linux codes.
These masks doesn't work for me. Windows driver has other masks (see my posts above) and doesn't work too. I don't know what is the problem. I did several attempts to change the masks in your codes but had no success yet.

I know it's a little frustrating for you when testing all this, but would you give another try with this Attached File  RadeonDump.zip   70.94KB   15 downloadsThis time, register masks have a possiblity to be set by BIOS values for legacy BIOS cards.
Frankly say, corresponding code (from radeon_atombios.c) for my ATOMBIOS card is not working and thus not included here.
That also means: no new things for asstastic to test yet.

#139
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 2,973 posts
  • Gender:Male
  • Location:Moscow
It is not a big problem to test. I am ready to try more and more
sergey:~/Desktop/RadeonDumpD3 sergey$ ./RadeonDump -i
Found a device of class RadeonPCI: IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/AGP@1/AGPGart/ATIM@5/RadeonPCI
it matched on name "display"
Detected ATI Radeon Mobility 9100 IGP (U3) 5835 (device id: 0x5835)
Start I2C dump
Legacy BIOS detected
Bios Connector table: 
Port0: DDCType-0x60, DACType-2, TMDSType-1, ConnectorType-1
Port4: DDCType-0x0, DACType-0, TMDSType-0, ConnectorType-7
Port5: DDCType-0x0, DACType-2, TMDSType-0, ConnectorType-5
EDID for connector 0:
Read data failed
sergey:~/Desktop/RadeonDumpD3 sergey$
In registry explorer I have three connectors, see pict. So LCD is not first connector. Connector table is not true?
My BIOS here
00000000: 55 AA 80 E9 56 04 00 00 85 1C 00 00 00 00 00 00 	U...V...........00000010: 00 00 00 00 00 00 00 00 6C 01 00 85 1C 00 49 42 	........l.....IB00000020: 4D C7 00 00 00 00 00 00 00 00 00 00 00 00 00 00 	M...............00000030: 20 37 36 31 32 39 35 35 32 30 00 00 00 00 00 00 	 761295520......00000040: 3F 3F 00 00 00 00 00 00 04 01 00 00 00 00 00 00 	??..............00000050: 32 30 30 35 2F 30 32 2F 30 31 20 31 32 3A 31 32 	2005/02/01 12:1200000060: 00 00 00 00 E9 50 10 00 E9 04 1C 00 00 00 00 00 	.....P..........00000070: 4D DF 5B 00 4D 14 02 61 00 00 00 00 00 00 00 00 	M.[.M..a........00000080: 0D 0A 53 50 2D 32 38 20 49 47 50 39 20 56 47 41 	..SP-28 IGP9 VGA00000090: 20 42 49 4F 53 20 33 30 30 4D 68 7A 0D 0A 00 28 	 BIOS 300Mhz...(000000A0: 43 29 20 31 39 38 38 2D 32 30 30 32 2C 20 41 54 	C) 1988-2002, AT000000B0: 49 20 54 65 63 68 6E 6F 6C 6F 67 69 65 73 20 49 	I Technologies I000000C0: 6E 63 2E 20 42 4B 2D 41 54 49 20 56 45 52 30 30 	nc. BK-ATI VER00000000D0: 38 2E 30 31 37 49 2E 30 36 30 2E 30 30 30 00 20 	8.017I.060.000. 000000E0: 78 35 6F 73 63 61 72 2E 73 61 6D 20 76 36 31 31 	x5oscar.sam v611000000F0: 20 00 42 43 33 20 41 47 50 20 44 47 4E 31 55 4E 	 .BC3 AGP DGN1UN00000100: 00 00 68 00 08 A0 08 11 3C 00 68 00 85 1C 64 5E 	..h.....<.h...d^00000110: 15 02 A1 01 DF 00 80 00 F2 00 28 01 00 C0 00 90 	..........(.....00000120: 4D 14 02 61 35 58 00 00 00 00 00 00 00 00 8F 80 	M..a5X..........00000130: C4 75 6F 0A B2 06 F6 D9 00 00 C1 03 00 00 24 54 	.uo...........$T00000140: 56 53 06 DA 1A ED D1 03 00 00 23 03 00 00 A0 88 	VS........#.....00000150: 00 00 AC 02 CB 03 8F 03 00 00 00 00 00 00 00 00 	................00000160: 00 00 E1 01 00 00 00 00 00 00 00 00 50 43 49 52 	............PCIR00000170: 02 10 35 58 00 00 18 00 00 00 00 03 80 00 11 08 	..5X............00000180: 00 80 00 00 41 54 49 20 4D 4F 42 49 4C 49 54 59 	....ATI MOBILITY00000190: 20 52 41 44 45 4F 4E 20 39 30 30 30 20 49 47 50 	 RADEON 9000 IGP000001A0: 00 31 D8 D9 5E FF FF FF FF 54 4A 01 02 FF FF FF 	.1..^....TJ.....000001B0: FF 00 00 00 00 FF FF FF FF 00 00 00 00 FF FF FF 	................000001C0: FF 31 D8 D9 5E FF FF FF FF 54 4A 00 00 FF FF FF 	.1..^....TJ.....000001D0: FF 00 00 00 00 FF FF FF FF 00 00 00 00 FF FF FF 	................000001E0: FF 01 01 09 1E 03 20 03 EA 01 01 00 00 00 00 00 	...... .........000001F0: 00 08 40 00 FF FF FF 8D 00 00 00 0C 00 00 80 FF 	..@.............00000200: 1F 20 01 03 8D 00 00 00 80 F4 01 20 01 00 00 00 	. ......... ....00000210: 00 00 00 00 00 30 20 B0 A3 33 51 30 60 FF FF FF 	.....0 ..3Q0`...00000220: FF 00 00 00 00 EC 00 43 44 00 00 3C 02 00 00 00 	.......CD..<....00000230: 00 20 04 00 00 7F 80 50 20 00 00 00 04 50 60 FF 	. ....P ....P`.00000240: FF FF FF 00 00 00 00 58 20 02 41 60 FF 58 60 FF 	.......X .A`.X`.00000250: FF FF FF 00 00 00 00 54 01 FF FF FF 01 20 00 00 	.......T..... ..00000260: 00 00 00 24 00 00 00 00 00 00 4D FF FC FF 00 00 	...$......M.....00000270: 03 00 5B 84 42 F7 BF FF FF 00 00 00 00 88 42 F7 	..[.B.........B.00000280: FF FF FF 08 00 00 00 F8 43 7F FF FF FF 80 00 00 	........C......00000290: 00 7C 02 00 00 00 00 8C 02 00 00 00 80 90 02 00 	.|..............000002A0: 00 00 80 30 01 00 00 00 70 00 00 00 F4 02 34 34 	...0....p.....44000002B0: 00 00 10 40 FB FF FF FF 04 00 00 00 A8 02 1B 0A 	...@............000002C0: 00 00 64 4D FF FB FF FF 22 02 00 00 D4 42 E1 FF 	..dM...."....B..000002D0: FF FF 08 00 00 00 64 4D FF FF FF FF 00 00 00 10 	......dM........000002E0: 00 48 FF FF FF FF 00 00 00 40 10 4D FF FF FF EF 	.H.......@.M....000002F0: 00 00 00 10 DC 44 FF FE FF FF 00 01 00 00 34 60 	.....D........4`00000300: FF FF FF 73 00 00 00 84 34 60 FF FF FF FF 00 00 	...s....4`......00000310: 00 00 8C 48 00 F0 00 FF 03 02 29 00 00 00 00 00 	...H......).....00000320: 00 00 01 08 C0 00 00 00 2D 00 00 00 00 82 03 06 	........-.......00000330: 00 00 00 0A 02 00 2A 00 24 02 00 00 00 0C 00 BC 	......*.$.......00000340: 00 04 02 03 A4 00 00 82 4C 00 FE 00 81 82 4C 00 	........L.....L.00000350: FD 00 82 15 06 00 10 00 0D 02 00 01 00 82 48 00 	..............H.00000360: 3C 00 42 00 FF 03 04 54 00 03 00 05 5F 00 03 00 	<.B....T...._...00000370: 06 54 00 03 00 07 5F 00 03 00 42 00 FD 00 81 82 	.T...._...B.....00000380: 42 00 FE 00 82 48 00 3C 03 82 41 00 CF 10 00 14 	B....H.<..A.....00000390: 00 14 00 00 41 01 FF 80 75 01 F8 00 75 00 F8 00 	....A...u...u...000003A0: 75 00 CF 00 75 00 FF 18 75 02 FF 01 74 03 FF 08 	u...u...u...t...000003B0: 82 75 00 FF 09 2D C0 FC 1A 00 08 C3 00 00 00 82 	.u...-..........000003C0: 00 24 41 54 49 02 0A 0F 33 00 00 11 11 00 23 00 	.$ATI...3.....#.000003D0: 00 06 19 00 00 00 00 00 00 02 00 00 00 00 00 00 	................000003E0: 00 00 00 00 F5 03 EA 03 00 00 01 0B 00 00 00 00 	................000003F0: 00 00 00 00 00 01 67 0A 60 00 00 00 00 00 00 00 	......g.`.......

Attached Files



#140
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 2,973 posts
  • Gender:Male
  • Location:Moscow
I found Apple's X11server sources. They contains OpenGL and Framebuffer. Can it be useful for us?





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