Rendu OpenGL matériel dans MATLAB

Je ne parviens pas à get un rendu OpenGL basé sur le matériel pour fonctionner dans MATLAB R2015a ou R2014b. Avant R2014b, et la réécriture de la stack graphique MATLAB, tout fonctionnait bien. De MATLAB

>> opengl info Version: '3.0 Mesa 10.6.5' Vendor: 'Intel Open Source Technology Center' Renderer: 'Mesa DRI Intel(R) Sandybridge Mobile ' MaxTextureSize: 8192 Visual: 'Visual 0xac, (RGBA 32 bits (8 8 8 8), Z depth 16 bits, Hardware acceleration, Double buffer, Antialias 4 samples)' Software: 'true' SupportsGraphicsSmoothing: 1 SupportsDepthPeelTransparency: 1 SupportsAlignVertexCenters: 1 Extensions: {199x1 cell} MaxFrameBufferSize: 8192 

Je m'attendais à ce que le «logiciel» soit faux.

 $ ldd /opt/tmw/matlab/bin/glnxa64/glren.so | grep libGL libGL.so.1 => /usr/lib/libGL.so.1 (0x00007f0a3b871000) libGLU.so.1 => /usr/lib/libGLU.so.1 (0x00007f0a3b5ef000) 

suggère que MATLAB trouve les bibliothèques système (ce qui est ce que TMW dit que je veux) et TMW confirme que les versions libGL.so.1.2.0 et libGLU.so.1.3.1 de la librairie sont compatibles.

 $ LIBGL_DEBUG=verbose matlab libGL: OpenDriver: trying /usr/lib/xorg/modules/dri/tls/i965_dri.so libGL: OpenDriver: trying /usr/lib/xorg/modules/dri/i965_dri.so libGL: Using DRI2 for screen 0 

Ne fournit aucune information utile. J'ai été en contact avec le support technique de TMW et ils ont décidé que ce n'est pas un problème MATLAB malgré

 $ glxinfo | grep render direct rendering: Yes OpenGL renderer ssortingng: Mesa DRI Intel(R) Sandybridge Mobile 

suggérant que le matériel OpenGL fonctionne en dehors de MATLAB. J'ai fait la plupart de mes tests sur Arch Linux avec une carte graphique Intel, mais j'ai aussi essayé les maps ATI et Nvidia sans aucune chance. J'ai récemment créé un chroot Debian 7, car il s'agit d'un operating system officiellement supporté, mais n'a toujours pas eu de chance avec la carte Intel.

Tout a été fait avec le kernel Arch stock. Cela pourrait-il être la cause du problème? Comment déboguer / tracer le problème?

    Pour moi les travaux suivis (sous ArchLinux avec R2017a (avant-première) avec un ordinateur portable n'ayant que des charts Intel):

     export LD_PRELOAD=/usr/lib/libstdc++.so export LD_LIBRARY_PATH=/usr/lib/xorg/modules/dri/ /net/sw/MATLAB/R2017a/bin/glnxa64/MATLAB 

    Notez que dans la dernière étape, j'appelle directement l'exécutable MATLAB (pas le script d'assistance qui effectue une manipulation LD_ *)

     >> opengl info Version: '3.0 Mesa 17.0.0' Vendor: 'Intel Open Source Technology Center' Renderer: 'Mesa DRI Intel(R) Haswell Mobile ' MaxTextureSize: 16384 Visual: 'Visual 0xcb, (RGBA 32 bits (8 8 8 8), Z depth 16 bits, Hardware acceleration, Double buffer, Antialias 8 samples)' Software: 'false' HardwareSupportLevel: 'full' SupportsGraphicsSmoothing: 1 SupportsDepthPeelTransparency: 1 SupportsAlignVertexCenters: 1 Extensions: {230×1 cell} MaxFrameBufferSize: 16384 

    Est-ce que MATLAB a des bibliothèques libstdc ++. So.6 * dans son path d'installation? MATLAB est livré avec une version obsolète de la bibliothèque standard c ++. Si vous avez compilé Mesa avec une version plus récente de GCC, il ne parviendra pas à charger le backend d'accélération matérielle réelle, ce qui forcera le rendu du logiciel. Vous pouvez essayer de supprimer ce file uniquement de votre installation de MATLAB ( NE PAS le retirer de votre installation de dissortingbution, qui le casse complètement ), cela peut vous aider. Je le fais depuis mes installations, mais vous ne devez pas faire attention à ne pas enlever plus que nécessaire.

    Je ne sais pas si cela vous aidera, car j'attendrais un message légèrement différent de votre command opengl info , mais c'est quelque chose à essayer.