After reading this osdev page, I believe KolibriOS would benefit from a simple AGP 'driver'.
Summary of the page: AGP cards always run in 1x speed mode on startup, by setting some bits we can enable the true speed the card supports. (x2, x4 or x8)
Anybody here knows more about the subject? (Eg if this is benefiteable with simple VESA drivers?)
AGP
-
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction." Albert Einstein
I know almost nothing about AGP, but imho it stays in the last century, forever.
PCIe is faster, cheaper, better standardized, not that much copper-dependant, and has no limit reached yet.
PCIe is faster, cheaper, better standardized, not that much copper-dependant, and has no limit reached yet.
Also it is hard to find AGP based mainboard
I have a lot of AGP based mainboards and AGP cards at home, I already wrote half of the code so I'll test it when I get home.
AGP is indeed old (pre 2004) but the effort required to simply enable the card is nihil to the possible speed gain (x2, x4 or even x8) on this older hardware.
AGP is indeed old (pre 2004) but the effort required to simply enable the card is nihil to the possible speed gain (x2, x4 or even x8) on this older hardware.
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction." Albert Einstein
Driver seems to be working (detection of card and its properties is correct) but i have zero increased FPS on all demos
I feel like I should focus on my main project again, so if somebody else feels like investigating, here is the code to load the driver:
AGP3 spec is here: http://download.intel.com/support/mothe ... /agp30.pdf
(see page 43-49 or appendix B for starters)
I feel like I should focus on my main project again, so if somebody else feels like investigating, here is the code to load the driver:
Spoiler:
Code: Select all
format binary as ""
use32
db 'MENUET01'
dd 1
dd start
dd i_end
dd mem
dd mem
dd 0, 0
start:
mov eax, 68
mov ebx, 16
mov ecx, drvname
int 0x40
test eax, eax
jz .fail
mov [control], eax
mov eax, 68
mov ebx, 17
mov ecx, control
int 0x40
.fail:
mov eax, -1
int 0x40
drvname db 'AGP', 0
control dd ?
dd 1
dd 0
dd 0
dd 0
i_end:
align 16
rb 16
mem:
(see page 43-49 or appendix B for starters)
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction." Albert Einstein
I think performance boost will be only for DMA transfers, not for CPU
Oh, then I wrongly assumed KolibriOS used DMA already!Serge wrote:I think performance boost will be only for DMA transfers, not for CPU
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction." Albert Einstein
It's can works on old ATI cards, but no acceleration is used nowhidnplayr wrote: Oh, then I wrongly assumed KolibriOS used DMA already!
I have some ATI rage II d, would it benefit from this, and how?Serge wrote:It's can works on old ATI cards, but no acceleration is used nowhidnplayr wrote: Oh, then I wrongly assumed KolibriOS used DMA already!
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction." Albert Einstein
No, I mean Radeons. RageII is too old
Ok, I have an ATI radeon HD 3650 on AGP I could use to test when I find the time.
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction." Albert Einstein
Hi! I have ATI Radeon 9600 on AGP. Can I help you with testing?
1. compile the code posted above and save it somewhere on your kolibrios image (for example: /rd/1/agp)Albom wrote:Hi! I have ATI Radeon 9600 on AGP. Can I help you with testing?
2. compile the driver code from SVN and save it in /rd/1/drivers/agp.obj
3. In kolibriOS, run the program you compiled in step 1, the driver will output some information on the debug board
4. now see if you notice any improvements in graphics speed
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction." Albert Einstein
I've tested the driver with the last nightbuild. Quote from the boardlog.txt:
Upd. Results of MGB:AGP driver loaded.
Searching for AGP card...
AGP3 device found
8x speed
Side band addressing
AGP device enabled
Spoiler:
Well, it seems to be working but gained result isnt as large as expected. It's because most graphical operations are performed by the CPU I think.
But hey, it works, it could be usefull in the future.
But hey, it works, it could be usefull in the future.
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction." Albert Einstein
Who is online
Users browsing this forum: No registered users and 1 guest