• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

[C,C++] Grafikkarten Treiber Funktionen

Status
Für weitere Antworten geschlossen.

gollum1990

Neues Mitglied
Hallo,

vor geraumer Zeit habe ich mal ein Ähnliches Thema eröffnet, dort ging es um die Spezifikationen der GPU von Grafikkarten. Da die Hersteller ATI und Nvidia diese Spezifikationen nicht Public macht(ATI schon, dennoch nur für Linux Treiber), wollte ich wissen, wie man den an den Treiber kommt.

Damit meine ich, wie kann ich vom Grafikkarten Treiber, die Funktionen beispielsweise in eigenen Programmen nutzen. DirectX und OpenGL machen das auch so. Kann man sowas. Ist das möglich?


MFG gollum1990
 
Werbung:
Hallo,

Damit meine ich, wie kann ich vom Grafikkarten Treiber, die Funktionen beispielsweise in eigenen Programmen nutzen. DirectX und OpenGL machen das auch so. Kann man sowas. Ist das möglich?
afaik wird OpenGL als Teil des Treibers ausgeliefert, wird bei DirectX ähnlich sein.


Da die Hersteller ATI und Nvidia diese Spezifikationen nicht Public macht(ATI schon, dennoch nur für Linux Treiber)
Die Spezifikationen für Hardware sind immer System-Unabhängig.


N43
 
Stimmt schon, dennoch, gibt es nur spezis, für zwei GPU´s.

Aber gibst da keine Möglichkeit, direkte Treiber funktionen zu nutzen?
 
Werbung:
Hallo,

da musst du über die WinAPI ran, mehr wird es da nicht geben. Vl. über das Treiber SDK, aber das ist afaik nicht gerade billig.
Und ich nehm mal an, dass die Treiber doch relativ gut geschützt sind, sodass man nicht einfach interne Funktionen aus anderen Treibern aufrufen kann.

Aber gibst da keine Möglichkeit, direkte Treiber funktionen zu nutzen?
Was erhoffst du dir denn davon? Ich glaube du hast zu große Erwartungen aus dem Treiber die ultimative 3D Beschleunigung zu holen.

Wie weit kennst du dich denn schon mit den Registern von Grafikkarten aus? Gerade in älteren Büchern gibt es noch einiges dazu, was heute kaum mehr erwähnt wird.

Ansonsten lässt sich auch mit Algorithmen und Mathematik einiges machen. Das spielt ja alles zusammen. Ist halt die Frage was du damit vorhast.


N43
 
Ich habe meine Nachforschungen schon angestellt, und siehe da, hab ich sources von ati und nvidia grafikkarten(alt) gefunden.
Dies beinhaltet, 2d und 3d sources. Sehr interessannt.(wenn du interesierst bist stelle ich die Sources per Anhang rein.)

Zu den Registern, bisher kenne ich nur ein paar Register, von den ATI Karten, die OS sind.
 
Abend,

Ich habe meine Nachforschungen schon angestellt, und siehe da, hab ich sources von ati und nvidia grafikkarten(alt) gefunden.
Dies beinhaltet, 2d und 3d sources. Sehr interessannt.(wenn du interesierst bist stelle ich die Sources per Anhang rein.)
Richtig mit Ausnutzung der GPU? Wär aber auf jedenfall interessiert.

Zu den Registern, bisher kenne ich nur ein paar Register, von den ATI Karten, die OS sind.
OS = OpenSource? Das geht bei Registern schlecht ;) Inwiefern kennst du die denn? Zum üben eignen sich die Standardisierten weit besser, also die alten EGA, (S)VGA. Die stehen dann auch auf jeder Karte zur Verfügung.


N43
 
Werbung:
Zu 1,
Ja, (Bei Geforce Serien 1,2,4 und 5, Bei Radon r100, r200, r300)
Zu 2,
OS Opensource. x.org/docs/amd , dessen register
Ega interresiert mich nicht so, VGA schon und auch VBE. Behersch das halbwegs.
 
Zu 2,
OS Opensource. x.org/docs/amd , dessen register
Ega interresiert mich nicht so, VGA schon und auch VBE. Behersch das halbwegs.
Schreib doch mal genauer was du unter kennen (der Register) und unter beherrschen (von VESA und VGA) verstehst.

Also konkret was du schon kannst.


N43


P.S.: Die Register sind nicht OpenSource, da müsste AMD schon einiges mehr offen legen, um da von OpenSource sprechen zu können.
 
Naja, ich mein das ironisch.

VGA Programmierung eher fortgeschritten(Pixel Darstellung, Linien Darstellung, Viereck Dartsllung usw... , Page Flipping, Double Buffer, bitmaps, paletten mani. usw..);

Vesa Programmierung zwischen mittel und fortgeschritten(Initalization, Pixel Darstellung, Modis, usw.)

Außerdem hab ich mal Versucht 3D darzustellen mit VGA, aber das war recht komplexx und recht schwer mit den ganzen Berechnungen. Aber zum Schluss, hat es an den Berechnungen gelegen dass ich dann damit aufgehört habe.

Einfach ein bisschen zu schwer, da die Treiber Sources, Funktionen wie Putvertexonscreen haben, reicht mir das, als wenn ich aufwendige Berechnungen schreiben, die die Performence ins Bodenlose senken.

Die Docs, die bei x.org sind, sind ziemlich schwer zu verstehen, für mich, ein paar register sind mir schon bekannt, dennoch muss ich die noch ein paar mal Lesen.
 
Werbung:
VGA Programmierung eher fortgeschritten(Pixel Darstellung, Linien Darstellung, Viereck Dartsllung usw... , Page Flipping, Double Buffer, bitmaps, paletten mani. usw..);

Vesa Programmierung zwischen mittel und fortgeschritten(Initalization, Pixel Darstellung, Modis, usw.)
Naja, wenn du nur die Register aus den AMD-Docs kennst, dann heißt das ja, dass du bisher nur mit den BIOS Funktionen gearbeitet hast. Ich weiß ja nicht, was bei usw. noch kommt, aber das was du aufgezählt hast sind m.E. nur "höhere" Grundlagen.

Außerdem hab ich mal Versucht 3D darzustellen mit VGA, aber das war recht komplexx und recht schwer mit den ganzen Berechnungen. Aber zum Schluss, hat es an den Berechnungen gelegen dass ich dann damit aufgehört habe.
Also wenn es an der Projektionsmatrix 3D -> 2D lag, da kann ich dir die Formel auch ohne Matrix geben.

Einfach ein bisschen zu schwer, da die Treiber Sources, Funktionen wie Putvertexonscreen haben, reicht mir das, als wenn ich aufwendige Berechnungen schreiben, die die Performence ins Bodenlose senken.

Die Docs, die bei x.org sind, sind ziemlich schwer zu verstehen, für mich, ein paar register sind mir schon bekannt, dennoch muss ich die noch ein paar mal Lesen.
Die Docs zu lesen wird dich kaum weiter bringen. Es gibt zum Beispiel keinen Port, um den Video Modus zu setzen. In den Referenzen steht auch nicht, mit welcher Folge von Befehlen man das machen muss.

Da musst du wirklich noch ein bischen mit VGA weiterarbeiten und die Grafikkarte(im VGA Modus) ganz ohne BIOS programmieren.


Kann sein, dass ich dich falsch einschätz, aber ich glaube du willst zu hoch einsteigen/weitermachen.


N43
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben