Le truc à la con du jour : Enumérer les cartes DirectX11 présentes sur le système

26. février 2011

Problème du jour : Si l’on part du code d’énumérations des cartes présentes sur un système, on peut ne pas voir les cartes DirectX11.

Le code (sous SlimDX) standard pour énumérer les cartes présentes est le suivant:

FeatureLevel[] levels = {
                            FeatureLevel.Level_11_0
                        };
// Creation du device Factory factory = new Factory(); for (int index = 0; index < factory.GetAdapterCount(); index++) { Adapter adapter = factory.GetAdapter(index); try { device11 = new Device(adapter, DeviceCreationFlags.None, levels); break; } catch { ... } }

Le fonctionnement est donc:

  • Définir notre FeatureLevel (ici c’est bien du DirectX11)
  • Créer une Factory pour accéder à la liste des adapters (les cartes graphiques)
  • Tenter de construire notre device sur l’adapter avec le FeatureLevel attendu

 

Or si on se contente de faire cela, nous n’accèderons pas à notre carte DirectX11. En effet ce code ne marche que pour DirectX9 et 10.

Pour DirectX11 (et même si je trouve ça regrettable), il faut changer la classe de notre Factory pour que cette dernière reconnaisse les cartes DX11:

Factory1 factory = new Factory1();

C’est aussi bête que cela…

DirectX, .Net

Vivez le keynote de la PDC avec Bewise

28. octobre 2010

Si vous ne savez pas quoi faire ce soir, je vous propose de venir avec moi voir la retranscription simultanée du keynote de la PDC dans les locaux de Microsoft à Toulouse.

Toute la team Bewise sera là et on pourra discuter ensemble de toutes les annonces qui ne manqueront pas de voir le jour.

Pour s’inscrire c’est par là:

http://www.facebook.com/event.php?eid=125098587545246&index=1

L’adresse :
Microsoft - 1 Rue Marie Curie - Parc Technologique du Canal - 31520 Ramonville St-Agne

Windows Phone, .Net, Windows Forms, Windows Mobile, WPF, Visual Studio, Silverlight, DirectX, Bewise

La gloire, les femmes nues et la fortune II

11. juillet 2010

Nouvel article sur DirectX11 dans le magazine “Programmez” du mois de Juillet/Août.

Au menu cette fois-ci : la découverte de DirectCompute et la mis en œuvre d’un service de traitement d’une chaine de caractères.

Courez vite l’acheter !

Le lien sur le site du magazine.

DirectX

La gloire, les femmes nues et la fortune

7. juin 2010

Mon article sur DirectX11 vient de paraitre dans le “Programmez” de ce mois-ci. Je suis donc officiellement célèbre :).

N’hésitez donc pas à vous jeter sur le magazine qui est disponible en kiosque pour savourer (que dis-je, pour vous délecter de) cette saine lecture.

Ah, on me dit que j’en fais trop. Bon ben allez le lire si vous voulez un premier aperçu technique de DirectX 11…

PS : Le lien vers le site de Programmez

DirectX

Coup de gueule du jour : suite

28. mars 2010

Je suis obligé de blogguer sur ce que je viens de découvrir. Juste pour me calmer et ne pas avoir à tuer mon chien pour me passer les nerfs.

Donc résumé de l’épisode précédent : Direct3D11 ne fournit plus aucune API pour gérer le dessin de texte. Soit. Je veux bien. La solution semble être d’utiliser Direct2D et DirectWrite. Ok. Pas de soucis, je suis pas contrariant.

Le truc effarant, c’est que Direct2D ne supporte pas Direct3D11. Ce boulet ne sait pas dessiner sur une surface Direct3D11. Mais je suis MORT DE RIRE!!!! Mais comment on fait dans ces cas-la? On fait du GDI? On reste en Direct3D 10? On passe à OpenGL?

Mon dieu que j’en ai marre des ces mauvais qui sont pas foutus de garder une ligne de compatibilités fonctionnelles. Ca doit être la faute aux développeurs de jeux qui ne doivent pas écrire de textes dans leur application 3D.

DirectX

Coup de gueule du jour : Direct3D11

27. mars 2010

Il y avait longtemps! Direct3D 11 est soit disant une évolution de Direct3D 10 et le portage est rapide. Oui. Ou pas. Les charcutiers qui ont défini l’API de Direct3D11 devraient être lapidés avec des foies de faisans.

Alors prenons les choses pénibles dans l’ordre:

- Le framework Effect est maintenant un sample à coté. Bon soit, admettons.
- La gestion des fontes et des sprites nous a quitté après une longue maladie. Il faut vous démerder avec Direct2D et DirectWrite. Oui, pas de soucis.
- La classe Mesh a été supprimée parce que bon elle sentait le fioul. Parait-il que les développeurs de jeux (à dire avec une voix emplie de respect et d’admiration) ne s’en servent pas. Alors forcément. Pas grave, je m’en servais juste pour le calcul des intersections et pour les adjacencies. De toute manière on s’en fout on fait pas des jeux vidéos.

Bon là ca me broute de me taper des wrappers en chaine pour rajouter des fonctionnalités déjà présentes mais il faut quand même avouer que l’API est bien foutue et hormis les points du dessus ca coule assez vite à partir de Direct3D 10.

DirectX

C’est parti!!!

22. janvier 2010

Depuis le temps que j’ai envie de faire ce post, je vais enfin pouvoir me lâcher (enfin au moins un peu).

Nova 2010 est dans sa phase finale et certaines fonctionnalités peuvent désormais être annoncées. En aparté, il faut savoir que Nova 2010 est de loin la plus grosse version de Nova en termes de nouveautés.

Parmi ces dernières , une me tient particulièrement à coeur, il s’agit du support de DirectX 10. En effet, Nova 2010 est capable de rendre une scène en utilisant soit un coeur DirectX 9, soit un coeur DirectX 10 soit un coeur totalement software.

Grâce à ce mécanisme de providers, il est donc possible d’accéder aux shaders 4.0 et notamment au geometry shader qui apporte un vrai plus en termes de souplesse et de performances dans le cadre des ombres, des particules, des bones, du warping et j’en passe.

Par exemple, la même scène utilisant des bones va tourner à 100 fps sous provider DirectX 9 et à plus de 1000 sous provider DirectX 10 !

Le plus sympa dans tout ça c’est que l’utilisateur de Nova pourra aisément passer d’un provider à l’autre à l’envie et sans contrainte.

 

Oui, je sais, ça tue.

DirectX, 3D, Nova

TechDays 2010 incoming!

13. janvier 2010

Microsoft organise comme chaque année les TechDays au palais des congrés de Paris.
C’est le plus gros événement technique de l’année et ne serait-ce que pour voir des stars telles que moi (oui ça va merci), le déplacement vaut le coup.

D’ailleurs cette année j’anime deux sessions et je vous invite à vous y inscrire :)

Intégrez de la puissance supplémentaire dans vos applications de gestion grâce au GPGPU
Audience : Développeurs Enseignants et chercheurs
Niveau : Expert (400)
Le lundi 8 février 2010, 11:00- 12:00.

Coding4Fun  (avec le petit Mitsu F. (qui préfére garder l’anonymat)).
Audience : Architectes Décideur technologique Développeurs Enseignants et chercheurs Informaticiens
Niveau : Découverte (100)
Le lundi 8 février 2010, 17:30- 18:30.

J’en profite pour caler le petit logo avec le mec qui ressemble à rien…

Vignette_Speaker_H

DirectX, .Net, Divers

Article sur l’optimisation des Shaders DirectX10

29. octobre 2009

Je viens de publier un superbe article (n’ayons pas peur des mots) sur DirectX 10 et l’optimisation des shaders.

Cet article est hébergé par le célébre site www.techheadbrothers.com.

N’hesitez donc pas à aller le lire si le sujet vous intéresse.

.Net, DirectX, 3D

DirectX

14. octobre 2009

On me demande souvent en consulting ce qui fait la différence entre une version de DirectX et une autre. Des millions de choses bien sûr me viennent à l’esprit. Ceci dit pour faire court, voici pour chaque version de DirectX la fonctionnalité qui m’a le plus frappé à chaque fois:

  • DirectX 2 et 3 : Direct3D
  • DirectX 5 : DrawPrimitives (la fin de ces merdes d’execute buffers)
  • DirectX 6 : Le multi-texturing
  • DirectX 7 : Le transform and lighting (Le début des GPU)
  • DirectX 8 : Les shaders
  • DirectX 9 : Les shaders 3.0
  • DirectX 10 : Le geometry shader
  • DirectX 11: Le shader linkage (bizarrement)

Vous noterez au passage pour la petite histoire qu’il n’y a pas de DirectX 4 car à l’époque Microsoft avait lancé simultanément le développement de DirectX 4 (petite mise à jour) et de DirectX 5 (grosse update). Il s’est avéré que les retours utilisateurs se moquaient complétement de la version 4 et étaient impatient quand à la 5. DirectX 4.0 fut donc abandonné. Mais comme il existait des tonnes de documents référençant DirectX 5.0, ce dernier ne fut pas renommé en 4 et il n’y eu donc jamais de DirectX 4.0.

DirectX