Lowlevel

Lowlevel => Lowlevel-Coding => Thema gestartet von: bitmaster am 08. November 2006, 17:30

Titel: ATI und VESA 32 Bit?
Beitrag von: bitmaster am 08. November 2006, 17:30
Hallo!

Also ich habe mal eine Frage bezüglich VESA und ATI. Ich habe öffters gehört das ATI Grafikkarten nicht in der lage seien 32 Bit pro Farbe zu akzeptieren (24 Bit + 8 Bit verwerfen). Es würde nur mit 24 Bit Funktionieren selbst wenn in dem Info-Block dann 32 steht. Ist das so richtig? Weil einige Leute anscheinent Probleme mit meinem OS haben die eine ATI Grafikkarte besitzen wollte ich einfach mal nachfragen ob ihr schon erfahrungen damit gemacht habt. Ich persönlich besitze z.Z. nur eine Nvidia Grafikkarte und kann leider nicht herausfinden wieso mein OS nicht auf ATI Karten funktioniert. Wenn ein Intel Grafikchip verwendet wird, funktioniert mein OS genauso gut wie bei einer Nvidia Karte. Nur bei ATI entstehen Grafikfehler (das Bild ist nicht zu erkennen).

vielen dank

bitmaster
Titel: Re: ATI und VESA 32 Bit?
Beitrag von: bluecode am 08. November 2006, 21:01
afaik sind nur die Bytes für rot/grün/blau vertauscht. Aber es steht iirc in einer der VESA Strukturen, welche bits für was verwendet werden.
Titel: Re: ATI und VESA 32 Bit?
Beitrag von: bitmaster am 08. November 2006, 21:16
afaik sind nur die Bytes für rot/grün/blau vertauscht. Aber es steht iirc in einer der VESA Strukturen, welche bits für was verwendet werden.
Ach so, kann auch sein das es so ist. Na ja, ich hasse ja immer die Ausnahmen. Dann wird mein OS fürs erste erstmal keine ATI Karten unterstützen. Kann man die rot/gelb/blau positionen nicht einstellen?

thx

bitmaster
Titel: Re: ATI und VESA 32 Bit?
Beitrag von: kevin am 11. November 2006, 11:26
hab beide graka Implementationen in TOS implementiert, und funktioniert unter bochs hervorragend....
Könnte das nicht auch daran liegen, daß bochs keine ATI-Karte emuliert? ;)
Titel: Re: ATI und VESA 32 Bit?
Beitrag von: Homix am 11. November 2006, 17:42
hi
nVidia Grakas haben 32-Bit, ATI-Karten 24-Bit, da ATI bei jedem Pixel den 4ten Kanal (Alpha) weglässt. (Bochs nutzt afaik auch nur 24-Bit, aber weiss nicht ob sie das in neueren Versionen geändert haben).

-> einfach beide Methoden implementieren

Grüsse,
Stefan
Titel: Re: ATI und VESA 32 Bit?
Beitrag von: nooooooooos am 11. November 2006, 18:45
Ich check irgendwie den Unterschied nich...Da ist doch einfach zuerst ein Byte Rot, dann eins Gelb und noch eins Blau und am Schluss ein Byte Nullen...Hä??

Noooooooooos
Titel: Re: ATI und VESA 32 Bit?
Beitrag von: kevin am 11. November 2006, 18:52
...dann eins Gelb...
Grün. ;) Und deine Nullen sind nicht immer welche und nennen sich Alphakanal.
Titel: Re: ATI und VESA 32 Bit?
Beitrag von: bitmaster am 11. November 2006, 18:56
@nooooooooos: Also so wie ich das verstanden habe nutzt ATI nur RGB. Nvidia nutzt ja Alpha + RGB. Also kann man z.B. bei Ati nicht einfach das machen, wärend es bei Nvidia wunderbar funktioniert:

mov rdi,AnfangdesGrafikSpeicher
mov rcx,1024*768 ;beispielsweise 1024*768
mov eax,00FFFFFFh ;beispielsweise weiß
rep stosd ;und kopieren

Bei ATI würde der Null-Wert schon zur nächsten Farbe zählen. Das heißt ich müsste es so machen:

mov rdi,AnfangdesGrafikSpeicher
mov rcx,1024*768
mov al,0FFh
.1:
stosb
stosb
stosb
loop .1

Und dann brauch die CPU bei ATI Karten natürlich länger. Korrigiert mich, wenn ich was falsch verstanden habe.

thx

bitmaster
Titel: Re: ATI und VESA 32 Bit?
Beitrag von: nooooooooos am 11. November 2006, 20:08
Also sieht ein Pixel so aus??

ATI:
FF FF FF 00

nVidia:
00 FF FF FF


Gruss
Nooooooooooos
Titel: Re: ATI und VESA 32 Bit?
Beitrag von: MNemo am 11. November 2006, 20:31
Also sieht ein Pixel so aus??

ATI:
FF FF FF 00

nVidia:
00 FF FF FF


Gruss
Nooooooooooos
ne

ATI
FF FF FF

und nVidia
FF FF FF 00
Titel: Re: ATI und VESA 32 Bit?
Beitrag von: nooooooooos am 11. November 2006, 20:45
Also dann benötigt ATI einen viertel weniger Speicher?
Titel: Re: ATI und VESA 32 Bit?
Beitrag von: bluecode am 11. November 2006, 21:56
naja, bei nvidia kannst du schon auch 24bit modes verwenden, nur sind die langsamer, da man entweder mehrere 3 bytes bzw. 1 word und 1 byte schreiben muss oder aber 1 dword lesen und 1 schreiben. Bei 32bit modes musst du nur 1 dword schreiben, das geht schneller.
Titel: Re: ATI und VESA 32 Bit?
Beitrag von: nooooooooos am 11. November 2006, 22:30
Ah...danke jetz is alles kla..

Nooooooooooooooos
Titel: Re: ATI und VESA 32 Bit?
Beitrag von: bitmaster am 12. November 2006, 21:41
Hmm... Das VESA Dokument empfiehlt aber auch an manchen Stellen 32 Bit zu nemen da dies schneller ist. Ich habe keine Stelle gefunden an der gesagt wird das ATI die 32 Bit Schreibweise nicht unterstützt. In meinem OS prüfe ich ja die jeweiligen Moden immer auf 32 Bit bevor ich den setzte. Also dann müssten ATI Grafikkarten 32 Bit unterstützen, fehlschlicherweise 32 Bit beim Prüfen ausgeben oder mein OS müsste bei ATI Karten anzeigen das keiner der gewünschten Moden mit der verwendeten Grafikkarte nutzbar sind. Hmm... irgendwie sollte ich mir mal eine ATI Karte besorgen um das herauszufinden.

bitmaster
Titel: Re: ATI und VESA 32 Bit?
Beitrag von: nooooooooos am 13. November 2006, 16:03
Würdest du mir....und allen anderen dann vom Eregebins berichten...?
Titel: Re: ATI und VESA 32 Bit?
Beitrag von: MNemo am 13. November 2006, 17:08
Mir fällt gerade ein:
ich hab mal mit TP ein kleines prog geschirem, das bmp's anzeigt, dazu hab ich vesa und 32bit benutzt und das hat auf nVidia und ATI gefunzt (da hab ich nicht auf unterschiede ge achtet)

ich guck ma ob ich die sourcen noch hab
Titel: Re: ATI und VESA 32 Bit?
Beitrag von: bitmaster am 14. November 2006, 21:36
So, dann habe ich noch mal eine Frage. Aus der VESA Spesifikation konnte ich das irgendwie nicht erfassen. Was genau ist der Unterschied zwischen VESA 2.0 und VESA 3.0 und wie aktiviert man VESA 3.0 (also was muss man anders machen als bei 2.0)?

thx

bitmaster
Titel: Re: ATI und VESA 32 Bit?
Beitrag von: Homix am 14. November 2006, 21:52
hi,
also aktivieren, keine Ahnung, müsste sicherlich in den Dokus stehen, welche Parameter man ändern muss (oder wird nicht immer automatisch die höchste VESA Version genommen ? )
Soweit ich gehört habe, kann man mit VESA 3.0 die Bildschirmfrequenz ändern (z.B. auf 85 Hz) oder per PMode die Auflösung und so ändern, was aber sehr kompliziert sein soll  :-D

Grüsse,
Stefan
Titel: Re: ATI und VESA 32 Bit?
Beitrag von: nooooooooos am 14. November 2006, 22:36
Und ausserdem wird das praktisch von nix unterstützt!!
Titel: Re: ATI und VESA 32 Bit?
Beitrag von: kevin am 15. November 2006, 08:16
ich hab mal mit TP ein kleines prog geschirem, das bmp's anzeigt, dazu hab ich vesa und 32bit benutzt und das hat auf nVidia und ATI gefunzt (da hab ich nicht auf unterschiede ge achtet)
Unter reinem DOS oder unter Windows? Wenn letzteres, wird das sowieso alles nur (afaik per DirectX) emuliert, da kann es gar keine Unterschiede geben.
Titel: Re: ATI und VESA 32 Bit?
Beitrag von: MNemo am 15. November 2006, 15:53
ich hab mal mit TP ein kleines prog geschirem, das bmp's anzeigt, dazu hab ich vesa und 32bit benutzt und das hat auf nVidia und ATI gefunzt (da hab ich nicht auf unterschiede ge achtet)
Unter reinem DOS oder unter Windows? Wenn letzteres, wird das sowieso alles nur (afaik per DirectX) emuliert, da kann es gar keine Unterschiede geben.
da hab ich gar nicht dran gedacht, das war unter windows, und den cod find ich auch nicht mehr
Titel: Re: ATI und VESA 32 Bit?
Beitrag von: nooooooooos am 16. November 2006, 18:11
Neee....ich meinte eigendlich, dass fast keine Graka VESA 3 unterstützt.
Titel: Re: ATI und VESA 32 Bit?
Beitrag von: bitmaster am 17. November 2006, 08:42
Na ja, da es nicht so gravierende Neuerungen sind und VESA 3 nicht gerade von so vielen unterstützt wird, bleibe ich bei 2.0.

thx

bitmaster