Begin AGP transaction

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
AirFlight
Member
Member
Posts: 26
Joined: Wed Dec 06, 2006 6:34 am

Begin AGP transaction

Post by AirFlight »

Code: Select all

13. AGP/CMD Transfer/Misc Registers

PCI Memory Base 0: Offset 0x0080000

Register Name Address Bits R/W Description

agpReqSize 0x000(0) 19:0 R/W Size of AGP request
agpHostAddressLow 0x004(4) 31:0 R/W Host address bits 31:0
agpHostAddressHigh 0x008(8) 31:0 R/W Host address bits 35:32
agpGraphicsAddress 0x00C(12) 24:0 R/W Graphics address bits 24:0
agpGraphicsStride 0x010(16) 16:0 R/W Graphics stride
agpMoveCMD 0x014(20) n/a W Begin AGP transaction
In http://www.o3one.org/hwdocs/video/voodoo3_spec.pdf
which Brendan showed to me
is detailed description on v3 card and there is location of AGP registers and it is explained how to move memory to frame buffer.
I dont have v3 AGP but i will try to do it on GeForce hope it is the same address. :roll:
If someone has v3 AGP (and have a plenty of time for fooling around ) :) it would be nice to try this in VESA mode after enabling AGP and tell us results.
I will write here what hapened with GeForce, but i hope that i wouldn't burn something.

@Brynet-Inc: "It was a typo" :oops:
Last edited by AirFlight on Fri Jan 26, 2007 9:26 pm, edited 2 times in total.
Just do it
User avatar
Brynet-Inc
Member
Member
Posts: 2426
Joined: Tue Oct 17, 2006 9:29 pm
Libera.chat IRC: brynet
Location: Canada
Contact:

Post by Brynet-Inc »

I really hope that was a typo.. :lol:
Image
Twitter: @canadianbryan. Award by smcerm, I stole it. Original was larger.
AirFlight
Member
Member
Posts: 26
Joined: Wed Dec 06, 2006 6:34 am

Post by AirFlight »

I think that it is big posability that AGP GPU transfer registers are different in different cards.


But i found out how to accelerate CPU access to FrameBuffer.

Steps:
1. Enable write posting
2. Enable Write-Combining for linear frame buffer.
3. Enable AGP fastest speed.

And without AGP i got 178MB/sec Frame buffer access.
Then i turned on AGP 4x and it was in front of me 720MB/sec.

So in VESA 118h mode resolution 1024x768x32bit true color
my simple bootable OperSysTest Was going 240FPS.

God Thank you.


1. write posting is something like when CPU decide to send something through PCI bus it just sends command to Northbridge and continue to go it's way, not waiting for PCI transaction to compleate.

2. writhe combining is CPU caching technique where is it waiting for for some big block amount of data to be written , not just one byte, but bad thing is that data would not be written in right order , but who cares that for FrameBuffer.

3. Agp is AGP :)


Did i just Googled something new for this forum or this was in some topic already. I am sure that 10% of people on this forum knew this but they wouldn't tell. Well Big Brother is watching.



My 1024x768 os is not finished yet, i would call it PilotOS but if somebody wants to see FPS-es like PROVE, i can send link to not BETA but GAMA version :) and put it in new topic, ofcourse with source.


How much will it be on PCI-E x16 about 1000FPS :twisted:.
This FPS is only MAX value with 100% of CPU usage. You probbably wouldn't need that much. :wink:

I lost all hope for Vesa LFB acceleration but suddenlly...


I would like to thanks to John Hinkley from http://www.fastgraphics.com on his FAST VID 1.10 wich shows how to enable write-combining.
Thanks to this site info http://www.osdev.org/osfaq2/index.php/AGP%20information
And i would like to thanks to AGP Specs. :)
And to all good people here who want to create something, and to help in rising humankind to higher level.

Now i am going to have some sleep. :).
Just do it
Post Reply