Autor Thema: Grafikkartenstandards?  (Gelesen 15411 mal)

Netmaster

  • Beiträge: 41
    • Profil anzeigen
Gespeichert
« am: 12. April 2005, 00:08 »
Ich wollte fragen, ob irgendwelche Hardwarestandards für Grafikkarten (3D) existieren, damit meine ich die Register und Grafikkartenbios-Interrupts (Ich meine damit nicht Int10). Wäre es möglich einen 3D-tauglichen Treiber für alle NVIDIA[ATI] Chips zu schreiben?
Chaos ist die höchste Form der Ordnung ;)

BigOlly

  • Beiträge: 88
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 12. April 2005, 02:22 »
Tja Netmaster, das ist ja das große Problem mit den Grafikkarten....!
Die Antwort lautet NEIN! Es gibt keine "Standards" die über VGA und VESA hinausgehen.
Die Grafikkarten-Hersteller halten ihre Register, Befehle und Strukturen ihrer Chips streng geheim. Dies gilt sogar für ältere Chips wie Riva, Rage, Trio64 oder ET4000.

Also gilt:
Komm mit VESA aus oder zerpflücke die Linux-Treiber um herauszufinden wie was angesteuert wird.

Gruß BigOlly
====================================================
Zitat: "Es ist schwierig zu antworten, wenn man die Frage nicht versteht."
(würde mich ja mal interessieren ob jemand weiß woher dieser Satz stammt...)

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #2 am: 12. April 2005, 13:14 »
warum sollte man nicht mit vesa auskommen? man kann ja auch 3D mit vesa machen...
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

elfish_rider

  • Beiträge: 293
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 12. April 2005, 13:53 »
irgendwann wird mit VESA dann die Leistung knapp...

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #4 am: 12. April 2005, 16:22 »
Mein OS (Das recodet wird) hat 3D berechnungen drin, sogar mit Licht das aus der Perspektive kommt wenn man so will^^. So schwer ist es nicht, man muss nur extrems viel Ahnugn von Mathe haben^^
Aber es gibt eine Karte für die die Register und Befehle veröffentlicht wurden. Vodoo Banshee (2D und 3D) die erste Karte die überhaupt 3D-Unterstützung bot, sie verrichtet in meinem Rechner ihren Dienst^^
Kannst ja mal danach googlen.
Neben diesen Infos wirst du auch auch welche zu PCI brauchen, und die sind auch nicht einfach zu finden (hab bisher keine wirklich brauchbaren).
Aber abgesehen von dieser einen Karte kannst du es definitiv vergessen.
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

Svenska

  • Beiträge: 1 792
    • Profil anzeigen
Gespeichert
« Antwort #5 am: 12. April 2005, 18:20 »
Blieben noch ganz alte Karten ohne 3D-Unterstuetzung, fuer die teilweise auch die Specs offen sind; ich sah irgendwo mal die genauen Register der Trident-Chips von '92 oder so. Aber damit kannst du 3D sowieso vergessen.
Wie BigOlly sagte - du kannst gern die Linuxtreiber zerpfluecken. Die kommen zwar bei weitem nicht an die Leistung der offiziellen Treiber ran, aber besser kannst du es auch nicht tun. Vor diesem Problem steht ja Linux langsam.

Aber du kannst ja eine Art Layer schreiben, wo du also einen Treiber zwischenschieben kannst. Dann codest du zuerst einen VESA-Treiber und wenn dir die Leistung nicht ausreicht, bastelst du mit einem anderen Treiber rum, dessen Sourcen du von irgendwoher hast ... :)

Svenska (...der immer zu viel schreibt)

Netmaster

  • Beiträge: 41
    • Profil anzeigen
Gespeichert
« Antwort #6 am: 12. April 2005, 22:18 »
Thx für die Antworten... Tja, scheinbar ist die Software-Emulation die einfachste Lösung  :(

Trotzdem danke :D
Chaos ist die höchste Form der Ordnung ;)

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #7 am: 14. April 2005, 15:35 »
jap, benutz VESA und fertig, alles andere ist unnötig und du musst für alles nen treiber schreiben.
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #8 am: 14. April 2005, 17:16 »
Lass dein OS Weltberühmt werden dann merken das die Grakahersteller und coden Treiber für dein OS^^ das wäre am einfachsten^^
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #9 am: 15. April 2005, 17:10 »
*g* stimmt, wobei man dann warscheinlich auch die grafik treiberfähig machen sollte, was einiges an ress verschleppen würde, wenn man dem grafiktreiber jedes punktesetzen als post schicken müsste, und dann den aktivieren und dann auf die antwort warten...
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

DarkThing

  • Beiträge: 652
    • Profil anzeigen
Gespeichert
« Antwort #10 am: 15. April 2005, 17:47 »
Wie macht das eigentlich Windows? Kann der Treiber da direkt auf die Ports etc. zugreifen (also per eigenen Funktionen, weil die Windowsfunktionen warscheinlich länger dauern würden)?

Svenska

  • Beiträge: 1 792
    • Profil anzeigen
Gespeichert
« Antwort #11 am: 15. April 2005, 17:57 »
Eine Anwendung nein, ein Treiber ja, sofern die Ports/Ressourcen dem Treiber zugewiesen wurden.
Oder?

DarkThing

  • Beiträge: 652
    • Profil anzeigen
Gespeichert
« Antwort #12 am: 15. April 2005, 18:04 »
Aha! Auf www.operating-system.org gibts das hier:


MS-DOS enthält einfachste Hardwaretreiber für den Zugriff auf Festplatten, Floppy, Dateisystem, serielle und parallele Schnittstellen, die aber seit langem nicht mehr dem wahren Funktionsumfang von angeschlossener Hardware entspricht.Als Beispiel lassen sich Farbdrucker aufzählen, die zwar per Kommandobefehl den gesendeten Text ausgeben aber nicht in der Qualität oder Farbe steuerbar sind. Hardwaretreiber lassen sich nur statisch einbinden und sind auch ohne Einsatz bis zum Neustart aktiv.

nur 16Bit Real-Mode Treiber
kennt nur direkten zugriff (bedingt durch Single Tasking System)

Mit Windows 3.x wurden erstmals einheitliche Schnittstellen für Anwendungen und Treiber bereitgestellt. Treiberformate von Windows 3.x sind .386, .drv und .dll Dateien.
Unter Windows 95 bis ME sind zum großen Teil Treiber aus Windows 3.11 weiterhin einsetzbar, allerdings verlangsamt der Zugriff auf die 16Bit Treiber durch die häufigen Wechsel zwischen Real-Mode in den Protected-Mode für 32-Bit Treiber das System.
Neu hinzu kam das Treiberformat .vxd, die vollständig im Protected-Mode laufen, auch das dynamische Laden bei Anforderung ist je nach Treiber Typ möglich. Neue Funktion für Windows ist die Plug & Play Unterstützung von Hardwaregeräten, Standard Treiber liegen dem Betriebssystem bei. Das WDM Treibermodell sorgt für die Vereinheitlichung von Treibern für Windows 98 und nachfolgende Betriebssysteme, allerdings bisher nur für Geräte am USB oder Firewire Kanal.
Windows NT ermöglicht die Einstellung von Geräte Diensten, wahlweise mit manuellen oder automatischen Start oder der gänzlichen Deaktivierung des Dienstes. Als eigenes Treiberformat ist ab Windows NT .vdd (Virtual Device Driver's) verfügbar. Die Treiber befinden sich je nach Typ vom Betriebssystemkern abgeschirmt im User-Mode, im Kernel-Mode mit direktem Hardwarezugriff oder auch als virtuelle Gerätetreiber (VDD) vor.
2005 soll Windows mit dem Codenamen "Longhorn" erhältlich sein. Auf Modulbasis soll es im Kern für alle Windows Versionen gleich sein und je nach Edition um spezifische Module erweitert werden-je nach Einsatz, Sprache und Hardware.


Und noch ein Bild über sie Systemarchitektur:

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #13 am: 16. April 2005, 00:14 »
Zitat von: Svenska
Eine Anwendung nein, ein Treiber ja, sofern die Ports/Ressourcen dem Treiber zugewiesen wurden.
Oder?


Denke mal ja, insofern WIN das mit TSS macht. Ich denk, man greift einfach zu, WIN fängt die Exception ab und schaut, ob der Port noch frei ist, und entscheidet dann.

ZUM TEXT DA:

Zitat

allerdings verlangsamt der Zugriff auf die 16Bit Treiber durch die häufigen Wechsel zwischen Real-Mode in den Protected-Mode für 32-Bit Treiber das System.

also ich glaub ja nicht, dass die da immer wechseln, wozu gibt es VM86?
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

Another Stupid Coder

  • Beiträge: 749
    • Profil anzeigen
Gespeichert
« Antwort #14 am: 16. April 2005, 08:50 »
Vorallem würde ich mir ME keines Falls zum Vorbild machen, da mir wohl niemand widersprechen wird, wenn ich sage, dass es das wahrscheinlich instabilste Betriebssystem der letzten 7 Jahre war...

DarkThing

  • Beiträge: 652
    • Profil anzeigen
Gespeichert
« Antwort #15 am: 16. April 2005, 11:14 »
Alle Wins die noch auf Dos basieren kann man eh vergessen. Wenn schon dann sollte man sich die reinen NT Systeme (NT, 2000, XP, 2003) ansehen.

Zum Vergleich nochmal Linux, wieder von der Seite:

Netmaster

  • Beiträge: 41
    • Profil anzeigen
Gespeichert
« Antwort #16 am: 18. April 2005, 10:35 »
Thx für die Antworten.  :D Ich versuchs zuerst mit der Emulation (*mathe heul*)
Chaos ist die höchste Form der Ordnung ;)

clemensoft

  • Beiträge: 92
    • Profil anzeigen
    • http://www.clemensoft.de
Gespeichert
« Antwort #17 am: 30. April 2005, 16:57 »
Das wichtigste, die Projektion
3D -> 2D
X= X/Z
Y= Y/Z

für unsere Spezis (ich nenne die vierte Raumkoordinate mal T und meine damit nicht Time)
4D -> 3D
X= X/T
Y= Y/T
Z= Z/T

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #18 am: 30. April 2005, 17:04 »
Du bist bei 3D-Berechnung was mit dem Thread hier nix zu tun hat^^
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

Netmaster

  • Beiträge: 41
    • Profil anzeigen
Gespeichert
« Antwort #19 am: 23. May 2005, 23:10 »
Also hab nen Tutor zur EGA-Programmierung auf der Registerebene gefunden, da aber VGA auf EGA aufbaut, kann ich den Tut gebrauchen. Leider sind dort nicht alle Register einer VGA bzw. SVGA Grafikkarte beschrieben, weiß jemand, wie ich an diese Register herankomme, für jede Hilfe bin ich immer dankbar. :D
Chaos ist die höchste Form der Ordnung ;)

 

Einloggen