Grafikkarten SDK - woher?



  • nabend 🙂
    Seit einiger Zeit bin ich recht unzufrieden mit meinem Software Renderer, weil die Performance besonders was effekte betrifft stark eingeschränkt ist, ebenso auch bei der Geometrie (aber nicht gar so krass).
    Deshalb habe ich mich gefragt, ob es nicht eine möglichkeit gibt, die Grafikkarte anzusprechen, ohne jedoch DirectX, OGL oder sonstwas zu benutzen. Das heißt zum Beispiel Geometrieinformationen, rasterisierung usw an die Grafikkarte abzugeben.
    Meine Frage: Gibt es dazu öffentlich zugängliche SDKs z.B. von Nvidia, um Zugang zur Funktionalität der Grafikkarte zu erhalten?
    Ich habe auf der Nvidia site nachgeschaut und dort SDKs gefunden, die aber nicht deutlich betitelt waren (stand bloß SDK drauf). Und ich bin mir nicht sicher, ob es das ist was ich suche.



  • Du wirst um OpenGL oder DX nicht herumkommen. Und Spec's wie du die Grafikkarte ansprichst bekommst du zu 110% auch nicht.



  • woher bekommen es die Leute, die DirectX oder OGL entwickeln?



  • garnicht.
    die benutzen auch die treiberschnittstelle.



  • Ochh nöö, nicht schon wieder... 😞 Was haben die Leute immer für ein Problem mit den längst etablierten APIs?

    Bye, TGGC (Zu viele Primitive hier.)



  • die machens aus demselben grunde, wie die leute,die asm schreiben^^



  • Treiberschnittstelle, SDK, egal. Ich brauche Zugang zur Grafikkarte.
    Wie kann ich den Treiber aus meinem Programm aus ansprechen? Dazu muss es ja ein SDK geben. Und wie/wo bekomme ich das?

    @TGGC: Ich habe kein Problem mit denen. Ich möchte das aus Interesse, Neugier und wegen des Lerneffekts machen. Deswegen müchte ich nicht die APIs nutzen, sondern es mal selber versuchen.



  • Hoffe ich erzähle jetzt keinen Blödfug:
    Ist es nicht so, dass die Treiber extra dazu da sind, "Befehle" von OpenGL oder Direct3D abzufangen, und dann entsprechend die Graka ansteuern? D.h., dass die Grakas und insbesondere die Treiber für OpenGL und Direct3D gebaut/geproggt sind? Man sagt doch nicht umsonst : "DirectX 9 Grafikkarte".
    Und wenn du es so machen willst wie der Treiber kommste bestimmt nicht um Industriespionage und Assembler rum 😉



  • hm, was gibt es da speziell auf bestimmte APIs hinzuzuprogrammieren?
    Ich nahm an das läuft so, dass die APIs über eine Schnittstelle der Grafikkarte Informationen zu allem was die Grafikkarte so verarbeiten kann übergeben.
    Und ich möchte an diese Schnittstelle gelangen.
    Ich kann ehrlich gesagt auch nicht ganz nachvollziehen, warum diese Schnittstelle nicht öffentlich zugänglich sein sollte.
    Also, gibt es eine solche Schnittstelle zu bekommen und wenn, weiß jemand wo?



  • Von NVidia bekommst du sicher nichts, ATI hat zumindest fuer einen Linux / OpenSource-Treiber ein paar Spec's rausgerueckt.
    Schau dir die Seite mal an:
    http://dri.sourceforge.net/cgi-bin/moin.cgi/

    Inwiefern du das unter Windows verwursten kannst, weiss ich leider nicht. Du wirst wohl auch ueber einen eigenen Treiber steuern muessen, da Windows ja direktes Ansprechen der Hardware verhindert.



  • ja, das stimmt, hab ich ganz vergessen. Bin Linux gewöhnt. 🙄
    Ich hab eine nvidia grafikkarte und kann mit ATI leider nix anfangen.

    Wie kann ich denn unter Windows Hardware ansprechen? MFC?
    btw, treiber programmieren hört sich ziemlich brutal an und das war es nicht was ich ursrpünglich wollte. Aber ich schließe aus deiner Aussage, dass es als normalprogrammierer möglich ist, die grafikkarte anzusprechen. Sehe ich das richtig?



  • Wie kann ich denn unter Windows Hardware ansprechen? MFC?

    Also nicht wirklich - ich wuerde sagen C/C++ und Assembler. Du solltest dich vorher erstmal in das WDM einlesen, ein Thread dazu wurde letzte woche noch irgendwo hier im Board geschrieben.

    btw, treiber programmieren hört sich ziemlich brutal an und das war es nicht was ich ursrpünglich wollte. Aber ich schließe aus deiner Aussage, dass es als normalprogrammierer möglich ist, die grafikkarte anzusprechen. Sehe ich das richtig?

    Wenn du dich mit WDM Treiberprogrammierung rumschlagen moechtest, so ist es moeglich, Hardware direkt anzusprechen. Allerdings wirst du bei NVidia nicht um Reverse Engeneering herumkommen, und das ist glaube ich nicht das was du moechtest. Ohne Spec's wird's schwer, da du eigentlich nichts weist, also wie du die Hardware ansprechen sollst.



  • alles klar. Also kann ichs knicken.
    Nur: woher haben zum Beispiel die entwickler von OpenGL die Driver Specifications? Kann man die nur als kommerzielles Team gegen Lizenzgebühren erhalten?



  • Die OpenGL Treiber kommen vom Hersteller selber, da entwickelt kein dritter 😉

    cya
    liquid



  • Achso. 😉



  • randa schrieb:

    alles klar. Also kann ichs knicken.
    Nur: woher haben zum Beispiel die entwickler von OpenGL die Driver Specifications? Kann man die nur als kommerzielles Team gegen Lizenzgebühren erhalten?

    Du siehst das bei OpenGL falsch - die Spec's kommen von OpenGL ( Wirken ja auch die Leute von ATI, NVidia & Co mit ) , und die Hersteller muessen es in ihre Treiber implementieren.

    Und Microsoft spricht auch nur eine Schnittstelle des Treibers an, den MS warscheinlich vorgeben, denn sie koennen nicht fuer jede Karte eine eigene implementation vornehmen.



  • Weiß eigentlich jemand wie bei DX dieses Layer System funzt? Da gibts doch auch diesen komischen Thunk-Layer, weiß darüber jemand was konkretes?

    cya
    liquid


Anmelden zum Antworten