Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


commit:futur:robo

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
commit:futur:robo [2017/03/13 16:47] bomancommit:futur:robo [2019/07/10 14:43] (current) boman
Line 1: Line 1:
 ====== Commit ====== ====== Commit ======
  
-====== Portage Visual Studio 2015 ======+===== VizWin/BWin Linux =====
  
-Comme je l'avais dit dans mes précédents commits, Je travaille depuis un bon bout de temps sur la mise à jour des bibliothèques & compilateurs utilisés par Metafor. Pour rappelles buts sont les suivants: +Lorsqu'on utilise Metafor sous Linuxon se rend compte que le développement a été effectué sous WindowsLes widgets de 'BWin', par exempleont été dimensionnés (en dur) suivant la largeur de la police de caractère de WindowsOn se retrouve alors avec des widgets "trop étroits" sous Ubuntu qui utilise une police plus large.
-  * **Compilation de Metafor sous MacOSX:** MacOS nécessite les versions les plus récentes de VTK et Qt pour fonctionner correctementEn particulier les versions de VTK et Qt qu'on utilisait n'étaient plus compilables depuis la mise à jour "Sierra"+
-  * **Utilisation du C++11 / C++14:** à ce niveaunous étions limités par le compilateur le plus vieux parmi ceux qu'on utilise sur toutes les machinesc'est-à-dire le compilateur Visual Studio 2012 qui ne supporte que quelques nouvelles fonctionnalités C++11 (auto, fonctions lambdas basiques, etc.).+
  
-J'ai donc porté le code pour utiliser le Visual Studio 2015 et j'en ai profité pour mettre à jour toutes mes libsLe code est donc compilable avec les toutes dernières versions de toutes les bibliothèques, sauf python qui reste en 2.7.x. La migration vers python 3 sera effectuée plus tard (c'est un travail énorme).+{{:commit:2019:bwin_avant2.png?300|avant}} {{:commit:2019:bwin_apres.png?300|après}}
  
-Le Visual Studio 2017 est sorti la semaine passée mais n'est pas encore utilisable (à cause de Parasolid entre autres qui ne le supporte pas encore) +J'ai donc passé sur tous les widgets pour effacer toutes ces tailles fixées "en dur".
  
-Le code reste évidemment compilable avec Visual Studio 2012.+Un autre problème sous Ubuntu est l'ouverture des fenêtres 'VizWin'. Elles s'ouvrent par moment avec une taille ridicule qui correspond à la taille de la fenêtre VizWin dans le QtDesigner. Normalement VizWin doit s'afficher et se redimensionner soit à la taille par défaut, soit à la taille qui a été sauvegardée précédemment. Cette opération de redimensionnement se passe mal sur le bureau Gnome et je suspecte une interaction non voulue entre cette opération de redimensionnement et les effets de bureau de Gnome où les fenêtres n'apparaissent pas d'un seul coup. Un autre facteur qui ne vient pas aider est le fait que, dans Metafor, l'interface graphique est dans un thread séparé, piloté par le thread python via des requêtes inter-threads dont je ne connais pas les détails techniques.
  
-En pratique, voici les versions utilisées sur mon PC: +J'ai essayé de jouer sur plusieurs plans pour obtenir un bon redimensionnementAu finalça marche beaucoup mieux qu'avant mais ça ne marche pas toujours. J'ai donc simplement augmenté la taille de VizWin dans le QtDesigner pour quequand ça foirela fenêtre ne soit pas minuscule.
-  * **Visual Studio 2015 Community:** appelé aussi "VS14" ou "msvc19". Supporte le C++11 et est gratuit! voir [[https://www.visualstudio.com/fr/downloads/|site microsoft]]. La version 2015, qui est difficile à trouver depuis la mise à jour 2017, est conservée sur le NAS. Au niveau du code source, tout a compilé du premier coup, sauf la visu des outils Abrawal où le compilateur ne s'en sort pas de manière assez étonnante (j'ai dû ajouter des accolades {} autour d'un bloc ''for'' alors que celles-ci ne sont pas nécessaires). +
-  * **Intel Parallel Studio 2017 Update 2 (MKLTBB):** On a maintenant la possibilité d'utiliser TBB comme threading model avec le Pardiso (à tester!).   +
-  * **zlib 1.2.11:** rien de neuf, mis à part des bug fixes. +
-  * **python 2.7.13+:** compilable grâce au travail de [[https://github.com/kovidgoyal/cpython|Kovid Goyal]], le développeur principal de Calibre,  qui maintient la compatibilité VS14 au fil des versions de python. Sans lui, je ne sais pas comment j'aurais fait pour éviter la migration python 3. +
-  * **CMake 3.7.2:** génère de nombreux warnings qu'il faudra traiter correctement (je ne l'ai pas encore fait - j'attends que tout le monde ait migré). +
-  * **Qt 5.8.0:** compatible avec notre nouveau code Qt 5.6.x (voir mes commits précédents). L'avantage d'utiliser cette version est qu'on peut maintenant simplement installer les binaires Qt à partir de l'installeur officiel (sauf sous Mac où l'installeur officiel freeze - no comment) +
-  * **VTK 7.1.0:** petits problèmes de changement de syntaxe dans les tests "longBone". J'ai également corrigé un problème de création des lumières de la scène 3D. A part ça, le gros changement de VTK7 par rapport à VTK6 est le support d'un OpenGL récent (l'option ''VTK_RENDERNING_BACKEND'' vaut ''OpenGL2'' par défautce qui correspond à de l'OpenGL 3.4 si j'ai bien compris) qui devrait améliorer grandement les perfs générales de VTK. En particuliertous les glyphs devraient être rendus à l'aide de vertex shaders au niveau du GPU. Malheureusement (pour moi) cette nouvelle implémentation moderne n'est pas utilisable sous Virtualbox qui ne gère que de l'OpenGL 1.1. J'ai donc dû compiler 2 versions; une pour ma VBox sous linux à l'ULg et une pour ma machine Windows à la maison. +
-  * **SWIG 3.0.12:** aucun problème. +
-  * **Parasolid 29.1:** dernière version en date. Visual Studio 2012 nous bloquait définitivement à la v28.1. On espère obtenir les projections parallèles en restant à jour (c'est peut-être déjà OK avec cette nouvelle version? j'ai pas testé). +
-  * **numpy 1.11.2 + dépendances:** compilent comme un charme avec tous ces outils récents.+
  
-Evidemment, il y a toutes sortes de petits "trucs" pour construire les libs (la liste est très courte par rapport à ce qu'il fallait savoir avant). J'ai fait un mémo que je donnerai à Luc lorsqu'il aura le temps de migrer ses libs. D'ici là, ne changez pas de compilateur à moins que vous vouliez compiler votre propre set de libs. +===== ProjectionSelector =====
  
-Une fois que tout le monde aura migré vers VS14 on pourra envisager de supprimer le vieux code VTK5 / Qt4 (après update des stations) et on pourra nettoyer pas mal de choses (boucles peu lisibles utilisant explicitement des itérateurs par exemple) avec le C++11. +Les cas tests de redressage pour Minitubes nécessitent l'utilisation de l'ancien projection selector codé par Ludo sur base du travail de Denis GrailletEn effet, le nouvel algorithme de Gaëtan provoque des mauvaises projections qui ne sont clairement pas normales à la surfaceLe problème avec l'ancien algorithme, c'est qu'il affiche, dans certains cas pathologiques, des infos pour dire qu'il ne s'en sort plus dans le choix des projections multiples et qu'il choisit alors la premièreCes infos sont tellement courantes dans les tests de redressage (2 tubes maillés qui sont en contact l'un dans l'autre)que le fichier de sortie devient énorme
- +
-====== Compilation MacOSX ====== +
- +
-  * Correction mineure du code source (un ''inline'' en trop dans un fichier CPP qui provoquait un "unresolved" avec ''clang''). +
-  * Problème de l'écran Retina de l'iMac du serviceLe widget Qt-VTK ne supporte pas ce "nouveau" type d'écran haute résolutionL'image est dessinée dans le quart inférieur gauche de la fenêtre graphiquePour résoudre le problème j'ai dû ajouter un appel vers une fonction ObjectiveC qui désactive explicitement la haute résolution de la fenêtre (''mtQt/osxHelper.mm''). J'espère que ce problème sera résolu dans les prochaines versions de VTK.+
  
 +J'ai donc simplement supprimé l'affichage de ces warnings (ils sont connus et ne servent que si quelqu'un voulait débuguer le truc) 
  
  
 +===== Tabs/Espaces =====
  
 +J'ai supprimé les tabs qui avaient été ajoutés lors de commits précédents (principalement par Gaëtan).
  
 + --- //[[r.boman@ulg.ac.be|boman]] 2019/07/10 14:27// 
  
commit/futur/robo.txt · Last modified: 2019/07/10 14:43 by boman

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki