Le truc à la con du jour : L’intellisense dans Visual Studio 2008 ne marche plus pour le designer WPF

31. janvier 2009

Après avoir installé le SDK de Windows 7, il y a de très grandes chances que l’intellisense ne marche plus sous Visual Studio 2008 au niveau de WPF.

Pour résoudre ce petit soucis (lié à la modification d’une clé de registre par l’installeur du Windows SDK), il suffit de taper cette ligne de commande:

 

regsvr32 "%CommonProgramFiles%\Microsoft Shared\MSEnv\TextMgrP.dll"

 

Fermez pluis relancez Visual Studio et l’intellisense est de retour :).

Windows, WPF

Le truc à la con du jour : Debugger les memory leaks avec DirectX

28. janvier 2009

Cela arrive même aux meilleurs! La fuite mémoire! Le truc horrible qui peut faire suer des heures durant.

J’ai donc découvert récemment une fuite mémoire dans Nova. Devant une telle horreur j’allais prévenir ma femme de mon indisponibilité sur les 7 prochaines nuits. Quand tout à coup j’ai découvert un superbe outil au sein même du SDK DirectX.

Lorsque l’on installe le SDK de DirectX, il ajoute un control panel spécifique. Ce dernier permet notamment d’activer le mode debug de DirectX.

image

Dans ce mode, lorsque l’on lance une application utilisant DirectX elle trace dans la fenêtre de sortie de nombreuses informations et notamment les fuites mémoires.

Dans les informations associées à une fuite, DirectX fait apparaitre le numéro d’allocation (AllocID). Or, il est possible avec le control panel de DirectX de demander un break de l’exécution lorsqu’une certaine allocation a lieu.

image

Cette merveilleuse fonctionnalité permet donc de déclencher le debuggeur à l’endroit précis ou a lieu l’allocation de mémoire qui ne sera pas libérée.

DirectX

Preview de Nova 2009

14. janvier 2009

Pour le plaisir des yeux, je viens d’ouvrir une nouvelle section sur mon blog. Cette section nommée “Previews Nova” permettra d’avoir des previews de réalisations autour de Nova.

Cela se passe par ici.

Vous y trouverez une petite application silverlight (utilisant Deep Zoom) pour bien visualiser les images de previews (amusez vous à zoomer avec la molette de la souris).

On commence la série par une image issue d’une démo réalisée par mon ami mais néanmoins artiste Mitch. La démo en question utilise notre shader de métal et une nouvelle technique de représentation du verre (notamment sur les phares).

Silverlight, Nova

Support de plus de 3Go de RAM sous Vista 32 bits

10. janvier 2009

Je viens tout juste d’installer Windows 7 (build 7000) sur ma machine. C’est vraiment un OS très prometteur qui risque bien de nous faire oublier les désagréments de Vista.

Un truc qui m’a intrigué (parmi tant d’autres) est le support direct des 4Go de RAM de ma machine.

Hélas, Visual Studio 2008 marche pour l’instant très mal sous Windows 7.

Retour donc sous Vista.

Cette histoire de 4Go m’a toutefois chiffonné. Sous Vista de base, mon système me donnait 3Go de dispo alors que sous Vista SP1 j’avais bien 4Go.

Après une petite enquête il s’avère que Vista ne donne accès aux processus qu’à 3,12 Go (c’est précis) car il faut savoir que le matériel utilise un peu de la mémoire physique pour travailler (mapping de certains ressources comme la carte son, carte graphique, etc…).

Heureusement, il existe une technique toute bête pour demander à Vista de ne plus se limiter à 3,x Go (avec un maximum a 4Go de toute manière).

Il suffit pour cela de lancer une console en mode administrator et de taper la commande suivante:

BCDEdit /set PAE forceenable

Le mode PAE est un mode étendu des processeurs x86 qui permet d’avoir un adressage sur 36 bits (contre 32 normalement). Ceci permet donc théoriquement d’avoir 64Go de RAM.

Toutefois sous Vista 32 bits cela permettra uniquement d’avoir droit à 4Go (dans l’absolu bien sûr) par processus.

On pourrait alors se demander pourquoi Microsoft n’active pas par défaut ce mode? Tout simplement parce que finalement ca ne sert à rien. Le matériel va continuer à prendre sa place, donc on ne disposera finalement que de 3,x Go et la gestion de l’adressage en 36bits plutôt qu’en 32bits ralentit le système.

Win32, Windows