Nvidia und OpenGL

Für Fragen zu Grafik APIs wie DirectX und OpenGL sowie Shaderprogrammierung.
Antworten
Benutzeravatar
starcow
Establishment
Beiträge: 523
Registriert: 23.04.2003, 17:42
Echter Name: Mischa Schaub
Kontaktdaten:

Nvidia und OpenGL

Beitrag von starcow »

Tach Zusammen!

Ich brauch wiedermal den Rat von euch Experten.
Ich arbeite als 3D Grafiker und bin entsprechend auf verschiedenen Boards zu dieser Thematik unterwegs.
Ich stosse dabei immer wieder auf Threads wo Grafikkarten verglichen werden, mit dem Ziel die bestmögliche Performance im Viewport zu erhalten.
Der Viewport in Softimage (damit arbeit ich) läuft mit OpenGL. Die meiste 3D-Anwendungssoftware setzt bekanntlich auf OpenGL.

Nun lese ich, das NVidia ab der letzen GeForce Serie (also ab der 500 Serie - Edit: Korrigiere, es war ab der 400 Serie) die OpenGL Fähigkeiten im Treiber absichtlich "verstümmeln" soll.
Aus dem einfachen Grund, damit sie ihre Quadro Karten besser verkaufen können.

Irgendwie kann ich mir das nicht vorstellen, da so ein Leistungseinbruch unter OpenGL gegenüber Direct3D doch auch zwangsläufig der Gamer-Gemeinde auffallen müsste.
Da gäbe es doch einen riesen aufschrei!

Wenn jemand darüber bescheid weiss, dann wohl ihr, die mit OpenGL und Direct3D programmiert.
Wenn dem tatsächlich so ist, dann müsste ja ein Spiele entwickeln unter OpenGL bald hinfällig sein.
Wie seht ihr das?

Gruss starcow

Edit:

Thread auf blenderartists
http://blenderartists.org/forum/showthr ... ost1987116

Thread auf xsiforum.de
http://www.xsiforum.de/thread.php?threa ... =0&page=20
Zuletzt geändert von starcow am 22.11.2012, 00:03, insgesamt 1-mal geändert.
Freelancer 3D- und 2D-Grafik
mischaschaub.com
Benutzeravatar
mOfl
Beiträge: 37
Registriert: 23.10.2010, 21:53

Re: Nvidia und OpenGL

Beitrag von mOfl »

Nun lese ich, das NVidia ab der letzen GeForce Serie (also ab der 500 Serie) die OpenGL Fähigkeiten im Treiber absichtlich "verstümmeln" soll.
Aus dem einfachen Grund, damit sie ihre Quadro Karten besser verkaufen können.
Das halte ich jetzt mal für ein Gerücht. Es stimmt, dass die GeForce treiberseitig limitiert wird, aber nur, was die Double-Precision-Fähigkeiten betrifft. Mehr dazu hier: http://stackoverflow.com/a/3762744 Es wird ökonomisch sinnvoller sein, den gleichen Chip für beide Karten zu verwenden, aber da sie in verschiedenen Gebieten Anwendung finden, werden sie dementsprechend noch über den Treiber modifiziert. Eine Quadro wird gängigerweise für Scientific Computing verwendet, wo mehr Double-Precision-Rechnungen nötig sind als für Spiele, wo du im Allgemeinen überhaupt keine Double Precision benötigst. Das gilt auch für Blender o.ä. Deshalb wäre es unsinnig von Nvidia, die GeForce gerade in dem Punkt zu drosseln, wegen dem sie sich verkaufen soll, nämlich um Spiele schnell zu berechnen.
Wenn dem tatsächlich so ist, dann müsste ja ein Spiele entwickeln unter OpenGL bald hinfällig sein.
Das erschließt sich mir nicht. Warum sollte sich der Treiber überhaupt bei OpenGL (von Khronos, einem Konsortium, dem auch Nvidia beiwohnt) anders verhalten als bei Direct3D, das von Microsoft kommt und sozusagen von der Konkurrenz stammt?
Benutzeravatar
CodingCat
Establishment
Beiträge: 1857
Registriert: 02.03.2009, 21:25
Wohnort: Student @ KIT
Kontaktdaten:

Re: Nvidia und OpenGL

Beitrag von CodingCat »

Ich habe zu dem Thema vorhin mal etwas gegoogelt. In einem Blender Bug Report wurden tatsächlich einige Zeiten gemessen, bei denen ältere nVidia-Karten besser abschnitten als neuere. Allerdings wurde das Problem dort antiken OpenGL-Features zugeschrieben. Definitive Aussagen konnte ich keine finden, die meisten Einträge zu dem Thema bezogen sich auf dieselben drei Forenposts, deren Behauptungen in keiner Weise durch Fakten gestützt wurden.

Die Frage ist, welche Funktionalität hier überhaupt verglichen wird. Dass OpenGL auf den aktuellen nVidia-Karten generell langsamer als DirectX läuft, wage ich mal stark zu bezweifeln. Ich vermute viel mehr, dass die betroffene "verlangsamte" OpenGL-Funktionalität von DirectX überhaupt nie angeboten wurde und deshalb jetzt nach und nach aus den Konsumentenprodukten verschwindet. Modernes OpenGL ist weitestgehend deckungsgleich mit modernem DirectX. Die archaischen OpenGL-Features, auf die viele 3D-Programme noch heute aus purer Bequemlichkeit setzen, sind in dieser Umgebung vollkommen überflüssig und wären pure Verschwendung. Für Spiele hat das keine Relevanz, egal ob diese unter DirectX oder unter OpenGL laufen. Solange die Entwickler der etablierten 3D-Programme sich weigern, ihre Produkte auf die wesentlich effizientere aktuelle OpenGL API zu aktualisieren, ist eine derartige Entwicklung für Artists natürlich unangenehm.
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
Benutzeravatar
dot
Establishment
Beiträge: 1734
Registriert: 06.03.2004, 18:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: Nvidia und OpenGL

Beitrag von dot »

Die Quadros sind eben speziell für CAD Workstations etc. gedacht und bieten besseren Hardwaresupport für einige Dinge, die eben vor allem in CAD Anwendungen interessant sind, wie z.B. Linienantialiasing, bitweise Verknüpfungen als BlendOp, Quad Buffer Stereo Rendering etc.
Dass NVIDIA wirklich treiberseitig großartig irgendwelche künstlichen Einschränkungen einbaut, kann man, denk ich, nicht wirklich sagen. Man kann afaik eine GeForce so modifizieren, dass sie sich als Quadro ausgibt und dann mit den entsprechenden Treibern fahren und unter gewissen Umständen was manche Dinge betrifft ein wenig mehr Performance rausholen. Das liegt aber vermutlich eher daran, dass die Treiber eben besser an die entsprechende Anwendung angepasst sind, als daran, dass die anderen Treiber die Hardware "verstümmeln". Manche Dinge werden wohl tatsächlich aus ökonomischen Gründen treiberseitig deaktiviert, aber der Unterschied zwischen Quadro und GeForce ist sicherlich nicht nur rein im Treiber versteckt...
Benutzeravatar
starcow
Establishment
Beiträge: 523
Registriert: 23.04.2003, 17:42
Echter Name: Mischa Schaub
Kontaktdaten:

Re: Nvidia und OpenGL

Beitrag von starcow »

Danke für eure Antworten! Ich finds schon aufschlussreich was ihr da schreibt!
mOfl hat geschrieben:Das erschließt sich mir nicht. Warum sollte sich der Treiber überhaupt bei OpenGL (von Khronos, einem Konsortium, dem auch Nvidia beiwohnt) anders verhalten als bei Direct3D, das von Microsoft kommt und sozusagen von der Konkurrenz stammt?
Damit spiele ich auf folgende Aussage an:
GeForce: Fast DX, crippled OpenGL, crippled CUDA
Quadro: Fast OpenGL, crippled CUDA
Tesla: NO graphic connector, fulll CUDA performance.
Diese stammt aus dem Blenderforum:
http://blenderartists.org/forum/showthr ... ost1987116

Dieser User ist offenbar der Meinung, das man sich eine ebensogute OpenGL wie Direct3D Performance mit den teuren Quadro Karten erkaufen muss.
Consumer ware sei nur unter Direct3D schnell, nicht aber unter OpenGL.
Wie gesagt, ich persönlich kann mir wirklich nicht vorstellen, dass dies tatsächlich so ist.

Gruss starcow
Freelancer 3D- und 2D-Grafik
mischaschaub.com
Benutzeravatar
mOfl
Beiträge: 37
Registriert: 23.10.2010, 21:53

Re: Nvidia und OpenGL

Beitrag von mOfl »

Ich hab jetzt keine Quadro zur Hand, um das zu testen, aber das hört sich für mich wie eine urbane Legende an. Wenn man sich die Specs der Geforce- und Quadro-Karten mit jeweils gleichem Chip (Fermi, Kepler) ansieht, dann müssten bei üblichen Single-Precision-Anwendungen die High-End-GeForce-Modelle besser abschneiden als die Quadro, also allein von der Hardware. Wie gesagt, Quadro soll andere Sachen erledigen als GeForce, deswegen wird es Nvidia auch nicht unbedingt ein Anliegen sein, die Quadro als Gamerkarte zu verhökern. Also der Schluss von "teuer" zu "besser" klappt einfach nicht, weil man aufgrund der Anforderungen einen Geländewagen nicht sinnvoll mit einem Rennwagen vergleichen kann, auch wenn sie den gleichen Motor haben.
Benutzeravatar
eXile
Establishment
Beiträge: 1136
Registriert: 28.02.2009, 13:27

Re: Nvidia und OpenGL

Beitrag von eXile »

Allein die Aussage, dass Nvidia die Leistung der Geforce, Tegra oder Quadro verkrüppelt haben soll, sagt mir schon, dass der werte Herr etwas nicht verstanden hat: Auf jeder der aktuellen Karten steckt ein anderer Chip drauf (wenn man vielleicht von der kleinen Tesla und der Geforce 680 mal absieht). Da zu sagen, Nvidia hätte die Chips absichtlich verkrüppelt, ist einfach nicht anwendbar; eine solche Aussage hat keinen Sinngehalt. Es sind unterschiedliche Chips, nicht abgespeckte Chips.

Vielmehr ist richtig: Da sind unterschiedliche Chips drauf, welche unterschiedliche Stärken und Schwächen haben. Da hier viel zu wenig harte Fakten rumschimmen, hier ein Vergleich der Geforce 580 (GF110 Chip) mit der Quadro 5000 (GF100GL Chip).

Jeder Mensch muss jetzt individuell für seine eigenen Anwendungsbereiche die Leistungen der Karten differenziert betrachten; aber eine solche Aussage ist ja viel unsexier als schnell mal von verkrüppelter Leistung zu sprechen.
j.klugmann
Establishment
Beiträge: 201
Registriert: 07.07.2010, 13:00
Kontaktdaten:

Re: Nvidia und OpenGL

Beitrag von j.klugmann »

Ich habe mal Teile unserer Rendering Engine für Bildverarbeitung auf DirectX portiert und hatte auf Quadro Maschinen dann einen Performance-Einbruch von bis zu 15%.
Imaging-Software und bald auch Middleware: http://fd-imaging.com
Benutzeravatar
starcow
Establishment
Beiträge: 523
Registriert: 23.04.2003, 17:42
Echter Name: Mischa Schaub
Kontaktdaten:

Re: Nvidia und OpenGL

Beitrag von starcow »

eXile hat geschrieben:Allein die Aussage, dass Nvidia die Leistung der Geforce, Tegra oder Quadro verkrüppelt haben soll, sagt mir schon, dass der werte Herr etwas nicht verstanden hat...
So wie ich es jetzt verstanden habe, kursiert die Meinung, dass nicht der Chip "verkrüppelt" sein soll, sondern der Treiber. Das heiss, das bei den Treibern für die Consumer Karten die OpenGL Performance gebremst werden soll.
Freelancer 3D- und 2D-Grafik
mischaschaub.com
Matthias Gubisch
Establishment
Beiträge: 470
Registriert: 01.03.2009, 19:09

Re: Nvidia und OpenGL

Beitrag von Matthias Gubisch »

Wäre mir persönlich beim Entwickeln noch nicht aufgefallen dass OpenGL eine schlechtere Performance hat als Direct3D. Beschäftige mich allerdings auch erst seit nem knappen Jahr mit OpenGL (vorher Direct3D)

Meine Vermutung würde auch eher in die Richtung von Cats Aussage gehen:
CodingCat hat geschrieben: Für Spiele hat das keine Relevanz, egal ob diese unter DirectX oder unter OpenGL laufen. Solange die Entwickler der etablierten 3D-Programme sich weigern, ihre Produkte auf die wesentlich effizientere aktuelle OpenGL API zu aktualisieren, ist eine derartige Entwicklung für Artists natürlich unangenehm.
Bevor man den Kopf schüttelt, sollte man sich vergewissern einen zu haben
waigie
Beiträge: 82
Registriert: 20.05.2009, 19:37

Re: Nvidia und OpenGL

Beitrag von waigie »

Ich glaube wie schon meine Vorposter nicht daran das NVidia versucht die OpenGL Performance seiner Consumer Karten zu reduzieren. Was ich mir hingegen durchaus vorstellen kann, ist das in den Consumer Karten die Performance von deprecated OpenGL Funktionen zu Gunsten des modernen Ansatzes verloren geht. Immerhin ist der Standard, der viele Funktionen als deprecated markiert hat mittlerweile über 3 Jahre alt. Wenn die Entwickler ihre Programme nicht anpassen, kann es natürlich zu Leistungseinbrüchen kommen, was aber nicht an NVidia liegt. Ein interessantes Video http://www.youtube.com/watch?v=HC3JGG6xHN8 hab ich hier gefunden. Da sieht man das die OpenGL Performance neuer NVidia Karten zumindest annährend gleichwertig zu deren DirectX Performance ist.
Da bei den Quadro Karten die Zielgruppe eine andere ist, kann es hier hingegen sein das in den Treibern noch deutlich Wert auf die deprecated Funktionalität gelegt wird.
Benutzeravatar
Lynxeye
Establishment
Beiträge: 145
Registriert: 27.02.2009, 16:50
Echter Name: Lucas
Wohnort: Hildesheim
Kontaktdaten:

Re: Nvidia und OpenGL

Beitrag von Lynxeye »

NVidia hat Mittel und Wege (inkl. Hardware) eine GeForce welche sich für den Treiber als Quadro ausgibt zu verkrüppeln. Absichtlich eingebremst wird jedenfalls keine Karte in ihrem Segment.

Das immer nur dort optimiert wird wo man das Potential erkennt ist auch klar, zeigt sich zum Beispiel an der Portierung von Steam auf Linux. Dabei scheinen einige Probleme im OpenGL NVidia Treiber aufgefallen zu sein, welche auch umgehend behoben wurden und dadurch die Frameraten um bis 20% verbessert wurden.
Antworten