Développeur : Cg : le « C » pour carte graphique est arrivé
Posté par Mathieu Millet (page perso, ). Modéré le 17 juin 2002.
nVidia vient de présenter « son » nouveau langage de programmation Cg (C graphique).
Ce langage qui propose un niveau d'abstraction supplémentaire par rapport à DirectX ou OpenGL, permet d'écrire du code (notamment pour la programmation des shaders) qui peut être portable sur tout type de processeur graphique (ATI, nVidia, Matrox) et toute API graphique (OpenGL, DirectX...). Il faut ensuite avoir le compilateur pour genérer le code compatible avec l'architecture et l'API.
Les spécifications de ce langage sont ouvertes et un compilateur de référence devrait bientôt être disponible. Libre aux constructeurs/éditeurs de proposer un compilateur pour son architecture.
NdA : si j'ai bien compris, avant Cg, la programmation de certaines fonctions graphiques (comme les shaders) doit être fait en assembleur pour chaque processeur graphique et chaque API.
Ce langage qui propose un niveau d'abstraction supplémentaire par rapport à DirectX ou OpenGL, permet d'écrire du code (notamment pour la programmation des shaders) qui peut être portable sur tout type de processeur graphique (ATI, nVidia, Matrox) et toute API graphique (OpenGL, DirectX...). Il faut ensuite avoir le compilateur pour genérer le code compatible avec l'architecture et l'API.
Les spécifications de ce langage sont ouvertes et un compilateur de référence devrait bientôt être disponible. Libre aux constructeurs/éditeurs de proposer un compilateur pour son architecture.
NdA : si j'ai bien compris, avant Cg, la programmation de certaines fonctions graphiques (comme les shaders) doit être fait en assembleur pour chaque processeur graphique et chaque API.
L'annonce sur vnu.net (754 hits)
Page principale du Cg (750 hits)
FAQ (371 hits)
Le site de nVidia Développeurs (343 hits)
Cgshaders (340 hits)
> Lire la dépêche (40 commentaires, moyenne: 12,3).
Vous avez demandé le commentaire #118207.




Y a quand meme des trucs qui font peur...
Au premier abord on voit des mots comme "ouvert" ou "libres aux autres frabicants", et pis on lit la FAQ:
- "developed by NVIDIA in close collaboration with Microsoft": Ne faisont pas de l'anti-redmond primaire comme on en voit trop souvent sur DLFP, mais on ne les a jamais vu aller dans le sens du libre et de l'open.
- "Who maintains the Cg Language Specification: NVIDIA maintains the Cg Language Specification and will continue to work with Microsoft to maintain compatibility with the DirectX High Level Shading Language (HLSL)": mouais, ca a l'air vachement ouvert aux concurents ces specifs !
Cg est une couche d'abstaraction sur openGl et DirectX. Ce que ca m'inspire: Nvidia et Microsoft veulent faire disparaitre les specificites d'OpenGl et de ddirectX au profit de leur nouvelle implementation, dont les spes sont editees par Nvidia. Donc on passe du closed direct x chez Microsoft au closed qui englobe directx ET opengl chez Nvidia qui roule main dans la main avec microsoft. Donc c'est TRES INQUIETANT, et je pense que c'est une belle manoeuvre pour remettre en cause l'existence d'openGL en tant qu'alternative a direct X.
Gardez a l'esprit la premiere question de la FAQ: "developed by NVIDIA in close collaboration with Microsoft". C'est du closed !!!
[^]Re: Y a quand meme des trucs qui font peur...
Ce que je ne comprends pas, c'est qu'est-ce que NVidia va gagner dans cette histoire d'association avec microsoft. C'est vrai quoi, ceux qui les interessent eux c'est de vendre du processeur, donc l'OS sur lequel tourne le jeux ils devraient s'en moquer un petit peu non ?
Et puis changer encore une fois de language çà réduit les compatibilitées, etc ....
[^]Re: Y a quand meme des trucs qui font peur...
NVidia devient l'editeur de spe du standard, a la place de directx et opengl. On peut donc s'attendre a ce qu'il edite les spes en fonctions de sa propre implementation des tecnos et tout le monde devra suivre.
Voici l'hegemonie qui arrive: Microsoft pour le soft, Nvidia pour le hard. Les spes passent par eux.
[^]Re: Y a quand meme des trucs qui font peur...
Et bien l'avantage pour NVidia c'est que si s'est eux qui font les specs et bien ils seront en avance sur leurs concurents et en plus ce sera prévu pour mieux fonctionner avec leurs cartes.
L'alliance avec microsoft leur permet d'espèrer qu'à terme les autres constructeur vont être obligé de suivre...
Et puis si ils s'entendent bien avec microsoft la xbox 2 sera aussi faite avec eux.
Donc tout bénef ;) (enfin pour eux)
[^]Re: Y a quand meme des trucs qui font peur...
contrairement à ce que semble penser JMVF, ATI est bien sur les rangs pour la XBox2. Donc MS est bien en train de faire bosser NVidia en vrai esclave :
1) qui veut faire une XBox avec moi ? nous on dirige le marché avec DirectX.
2) NVidia sont les meilleurs, MS ne veut que du meilleur (je suis ironique là, mais pas eux)
3) Quoi, ça nous coute trop cher votre GPU ! on baisse déjà notre merde à 199$ !
4) bijour monsieur ATI ! oh c'est beau ! c'est moins cher ! ca vous dit de faire une XBox2 avec nous ?
5) monsieur NVidia, on hésite sur la suite de notre collaboration, vous faites quoi pour nous ?
6) NVidia : - euh nous on peut vous aider à enterrer OpenGL
7) MS : - ok, on renforce votre hégémonie et vous renforcez la notre, "Faites nous confiance" et oubliez donc les épisodes précédent (comme OS/2 ;)
[^]Re: Y a quand meme des trucs qui font peur...
Le fait que NVIDIA veuille contrôler la spécif est pas choquant en soi : Sun fait la même chose avec Java, ça evite que n'importe qui fasse n'importe qu'oi avec le langage. ça n'empêche pas des implémentations indépendantes.
[^]Re: Y a quand meme des trucs qui font peur...
en parlant de java, il me semble qu'il est interdit par Sun de faire une JVM libre pour les derniere versions de java. Suffit de faire une license comme il faut et tu bloque un peu ce que tu veux
[^]Re: Y a quand meme des trucs qui font peur...
Je pense que c'est exactement le contraire. Depuis quelques temps (et en particulier grâce au travail de la fondation Apache et d'IBM (entre autres)), les specs qui sortent du Java Community Process peuvent être implantées en Open Source.
Par contre, comme Java est une marque déposée, tu ne peux pas te prétendre Java comme ça ! Il y a eu en particulier des problèmes pour la partie J2EE, mais bon, ça n'empêche pas JBoss et consorts d'être utilisés et considérés comme des implantations tout à fait correctes (et open source) de J2EE.
[^]Re: Y a quand meme des trucs qui font peur...
Les rapports de Sun aux ll sont un peu plus complexes. Mais évoluent dans le bon sens.
La communauté n'a pas oublié le coup de p... effectué à Blackdown au profit de Borland. Il possible de contribuer à Blackdown sous certaines conditions, notament la redistribution sous double licence par sun. D'ailleurs si quelqu'un peut me retrouver la _toute_première_ licence de blackdown (un sacré foutage de gueule), je suis prenneur.
Ensuite, il y a le cas OO, là on peut choisir de permettre le double licenciement ou pas.
Enfin, les contributions de Sun à GNOME son soit sous GPL, soit sous LGPL. De plus les développeurs Sun se soont parfaitement intégrés à la communauté GNOME.
Il semble AMHA que Sun commence à comprendre ce qu'est le ll, mais il fort possible que Sun retourne sa veste dès qu'elle ne trouvera plus son intéret à contribuer à la communauté.
[^]Re: Y a quand meme des trucs qui font peur...
Deux questions :
-- Sun n'élabore-t-il pas les spécifications de Java en collaboration avec d'autres éditeurs (dont le groupe Apache) ?
-- N'est-ce pas un avantage concurrentiel énorme pour nVidia d'annoncer dans quelque temps que son nouveau chispset Jeforce (sic) 24.2, câble la nouvelle fonction rolo.blaster.transparo.reversible [TM (très marketing)] du langage Cg 22.3 ?
Où sont les contre pouvoirs ?
[^][HS] Spécification java
Y'a bien un process "ouvert" pour les spécifications Java, cf : http://www.jcp.org/introduction/faq/(...) .
Parmi les membres du commité executif : IBM, HP, Apache.org ... : http://www.jcp.org/participation/committee/index.en.jsp(...)
Je pense que Sun garde néanmoins la main en ce qui concerne les décisions stratégiques. Les décisions techniques sont prises en collaboration avec les acteurs du marché.
C'est, AMHA, une façon de faire constructive.
[^]Re: Y a quand meme des trucs qui font peur...
Le fait que NVIDIA veuille contrôler la spécif est pas choquant en soi : Sun fait la même chose avec Java, ça evite que n'importe qui fasse n'importe qu'oi avec le langage.
Si si, c'est choquant. En tous cas moi, ça me choque. C'est précisément ce que bien des gens reprochent à Java, et c'est précisément ce qui fait qu'on puisse faire n'importe quoi avec le langage ("on" représentant ici nvidia et microsoft).
Les langages "normaux" comme C, C++, Lisp, ... ne sont pas aux mains de n'importe qui : il y a des organisations qui s'occupent les faire évoluer et de définir la norme (par exemple l'ANSI), et qui tiennent compte de tous les intérêts. Du coup l'ajout d'une nouvelle spécification au standard ne se fait qu'aprés de longues discussions et alors que la dite spécification a été longuement testée.
Dans le cas de Cg, imagine que ce langage s'impose et devienne le standard unique pour la 3D. Nvidia aurait alors beau jeu de décider d'ajouter à la norme quelque chose qui ne marche que sur leurs cartes, voire que sur les os MS...
Le même raisonnement tient pour Java, bien que Sun n'ait à priori aucun intérêt à ce genre de magouille dans un avenir proche.
Bref, ça m'inspire plus de méfiance que d'enthousiasme. Si ils décident de rendre les specs dépendantes d'une organisation rassemblant au moins tous les constructeurs de cartes graphiques, pourquoi pas. Là, ça pue le pâté.
[^]Parano ?
J'adore les précautions de langage du genre "je ne suis pas raciste, mais...". Ton raisonnement est quand même très très basé sur l'axiome "ça vient de chez MS, donc ça pue". C'est pas très fin.
Par contre, des questions se posent effectivement au sujet de Cg et de la stratégie de NVidia. En fait, Cg est un concurrent direct de du OpenGL Shading Language (cf http://www.3dlabs.com/support/developer/ogl2/sourcecode/index.htm(...) ) qui est proposé pour l'intégration dans OpenGL 2.0 (l'implantation de ce langage par 3DLabs est open source). Le langage en question est paraît-il beaucoup plus évolué que Cg et est destiné au chip graphique que 3DLabs vient d'annoncer (cf http://www.tomshardware.com/graphic/02q2/020503/index.html(...) par exemple). Pour une discussion sur ce point, cf http://www.hardware.fr/news/lire/13-06-2002/#4909(...) par exemple. SL n'est pas implantable sur les GPU actuels, ce qui explique la trouille de NVidia...
Le danger est qu'une fois de plus, un produit moins bon qu'un autre s'impose pour des raisons de marketing. Je suis d'accord qu'il s'agit d'une stratégie classique de Microsoft, mais je ne pense pas qu'il faille voir là une attaque de MS contre OpenGL (MS fait partie de l'ARB...), d'autant que Cg sera compatible OpenGL 1.4. Je pense que NVidia tente de contrer 3DLabs et utilise pour ce faire les armes dont elle dispose. C'est pas très joli, joli, mais je ne pense pas que cela présente un réel danger pour l'open source.
[^]Parano ? Et comment !
Autant je suis entièrement d'accord avec toi sur la première partie de ton post, autant je te trouve mais alors vraiment naïf quand tu penses que MS ne peut avoir de comportement de prédateur envers OpenGL vu qu'ils font partie de l'ARB ! C'est completement ignorer comment peuvent fonctionner ces comités ! Dans ce genre de regroupement, il y a toujours au moins 1 faul-cul sinon plus, toujours toujours toujours (exemple qui tue : Rambus et le JEDEC). D'ailleurs NVidia est aussi dans l'ARB...
Donc oui NVidia tente des trucs, et MS aussi. Et là leur interêts convergent.
[^]Re: Parano ? Et comment !
Entierement d'accord.
Et en plus j'ai des preuves :-)
MS n'en est pas a son coup d'essai pour remplacer OpenGL. Farenheit ca vous dit quelque chose ? il y a quelque temps, MS avait passe un accord avec Silicon Graphics pour creer l'API 3D de nouvelle generation (oui, oui ils ont essaye de controler le developpement du successeur d'OpenGL) mais ca a (evidemment) fait un bide.
Sans allez aussi loin directX est en concurence directe avec OpenGL...
[^]Re: Parano ?
Le succès du OpenGL Shading Language est lié à celui du prochain GPU de 3Dlabs (qui a l'air vraiment bien conçu) et à celui de OpenGL 2.0 (qui lui aussi paraît vraiment bien pensé).
Mais il y a une ombre au tableau, si ce langage n'est pas compatible avec DX je craint que les autres constructeurs ne se ralient au Gc de Nvidia...
[+] [^]Re: Y a quand meme des trucs qui font peur...
Gardez a l'esprit la premiere question de la FAQ: "developed by NVIDIA in close collaboration with Microsoft". C'est du closed !!!
Il me semble que la on parle de collaboration etroite et pas le logiciel closed ....
faudrait pas non plus s'enerver pour s'enerver.
RuZed
[+] [^]Second degre inside !
Il te semble bien. Ca m'aprendra a faire de l'humour.
[^]Re: Y a quand meme des trucs qui font peur...
OpenGL est a la rue pour ce qui est des shaders. Tout se fait via les extensions proprio, ce qui empèche toute portabilité simple. Il ne faut pas se leurrer, DirectX a su prendre l'avantage en releasant un nouvelle mouture quasiment tout les ans, surtout que maintenant les fabriquants taillent leurs chip en fonction de directX.
Du coup un truc comme Cg peut apporter bcp a la communauté OpenGL via une pseudo standardisation. Pseudo car ca ne change en rien les specs d'opengl en elles même.
Nvidia est un peu dans la même position qu'Intel. Ils sont suffisament gros pour conduire l'innovation ou ils veulent, et pas forcement dans le bon sens. Mais ca leur permets aussi de fournir pas mal de choses pour les developpeurs (il y a énormement d'article opengl chez nvidia).
OpenGL reste l'API de choix pour les pros, d'autant plus que ceux-ci reste (ou viennent) sous *nix. Mais cela ne mène pas openGL sur la voie du grand public (ce qui est la cible des fonctions additionnelles des cg d'aujourd'hui...).
[^]Re: Y a quand meme des trucs qui font peur...
je crois que justement, les extensions ne sont plus proprio (compatibilite assuree entre celles d'ATI et de NVidia). de +, les shadders sont des extensions avec une connotation marqueteuse tres tendances (y a deja pas mal de version differente, rien que pour directx, qui correspondent a chaque nouvel HW, et on peut obtenir des effets presque semblable si l'on a EBMP).
[+] [^]Re: Y a quand meme des trucs qui font peur...
Je ne vois pas vraiment ce qui te fais dire ça... Juste parce qu'il y a une collaboration avec Microsoft ? ou une mauvaise compréhension du terme « close » ? ou il y a quelquechose que je n'ai pas vu ?
[^]Jeu de mots (douteux ? :) )
À mon avis, c'est justement du second degré, avec un jeu de mot sur le terme anglais. un ":)" aurait peut-être été le bienvenu, mais c'est comme ça que je l'ai compris.
« Le savoir, n'est-ce pas, est un bien précieux. Trop précieux pour ne pas être partagé. »
- Battologio d'Epanalepse, in De Cape et de Crocs, Acte VII (Ayroles & Masbou)
[+] [^]Vivi...
...c'est bien ca, desole pour le manque de ;) !
[+] [^]Re: Vivi...
Ha bon... désolé d'avoir douté de ta conaissance de l'anglais... ;o)