Autor Thema: ATI und VESA 32 Bit?  (Gelesen 14401 mal)

bitmaster

  • Troll
  • Beiträge: 1 138
    • Profil anzeigen
    • OS-64 = 64 Bit Operating System
Gespeichert
« 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
In the Future everyone will need OS-64!!!

bluecode

  • Beiträge: 1 391
    • Profil anzeigen
    • lightOS
Gespeichert
« Antwort #1 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.
lightOS
"Überlegen sie mal 'nen Augenblick, dann lösen sich die ganzen Widersprüche auf. Die Wut wird noch größer, aber die intellektuelle Verwirrung lässt nach.", Georg Schramm

bitmaster

  • Troll
  • Beiträge: 1 138
    • Profil anzeigen
    • OS-64 = 64 Bit Operating System
Gespeichert
« Antwort #2 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
In the Future everyone will need OS-64!!!

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #3 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? ;)
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

Homix

  • Beiträge: 138
    • Profil anzeigen
Gespeichert
« Antwort #4 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

nooooooooos

  • Beiträge: 734
    • Profil anzeigen
Gespeichert
« Antwort #5 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

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #6 am: 11. November 2006, 18:52 »
...dann eins Gelb...
Grün. ;) Und deine Nullen sind nicht immer welche und nennen sich Alphakanal.
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

bitmaster

  • Troll
  • Beiträge: 1 138
    • Profil anzeigen
    • OS-64 = 64 Bit Operating System
Gespeichert
« Antwort #7 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
In the Future everyone will need OS-64!!!

nooooooooos

  • Beiträge: 734
    • Profil anzeigen
Gespeichert
« Antwort #8 am: 11. November 2006, 20:08 »
Also sieht ein Pixel so aus??

ATI:
FF FF FF 00

nVidia:
00 FF FF FF


Gruss
Nooooooooooos

MNemo

  • Beiträge: 547
    • Profil anzeigen
Gespeichert
« Antwort #9 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
„Wichtig ist nicht, besser zu sein als alle anderen. Wichtig ist, besser zu sein als du gestern warst!“

nooooooooos

  • Beiträge: 734
    • Profil anzeigen
Gespeichert
« Antwort #10 am: 11. November 2006, 20:45 »
Also dann benötigt ATI einen viertel weniger Speicher?

bluecode

  • Beiträge: 1 391
    • Profil anzeigen
    • lightOS
Gespeichert
« Antwort #11 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.
lightOS
"Überlegen sie mal 'nen Augenblick, dann lösen sich die ganzen Widersprüche auf. Die Wut wird noch größer, aber die intellektuelle Verwirrung lässt nach.", Georg Schramm

nooooooooos

  • Beiträge: 734
    • Profil anzeigen
Gespeichert
« Antwort #12 am: 11. November 2006, 22:30 »
Ah...danke jetz is alles kla..

Nooooooooooooooos

bitmaster

  • Troll
  • Beiträge: 1 138
    • Profil anzeigen
    • OS-64 = 64 Bit Operating System
Gespeichert
« Antwort #13 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
In the Future everyone will need OS-64!!!

nooooooooos

  • Beiträge: 734
    • Profil anzeigen
Gespeichert
« Antwort #14 am: 13. November 2006, 16:03 »
Würdest du mir....und allen anderen dann vom Eregebins berichten...?

MNemo

  • Beiträge: 547
    • Profil anzeigen
Gespeichert
« Antwort #15 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
„Wichtig ist nicht, besser zu sein als alle anderen. Wichtig ist, besser zu sein als du gestern warst!“

bitmaster

  • Troll
  • Beiträge: 1 138
    • Profil anzeigen
    • OS-64 = 64 Bit Operating System
Gespeichert
« Antwort #16 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
In the Future everyone will need OS-64!!!

Homix

  • Beiträge: 138
    • Profil anzeigen
Gespeichert
« Antwort #17 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

nooooooooos

  • Beiträge: 734
    • Profil anzeigen
Gespeichert
« Antwort #18 am: 14. November 2006, 22:36 »
Und ausserdem wird das praktisch von nix unterstützt!!

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #19 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.
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

 

Einloggen