J'essaie actuellement de faire un programme avec OpenGL et Cuda. J'ai d'abord essayé (et réussis) à faire un 'Game Of Life'. J'essaie maintenant de faire un automate cellulaire à 1d (élémentaire).
Mon programme consiste simplement à calculer les données de cet automate, de créer la texture, puis de l'afficher. Je fais un maximum de calcul sur la carte graphique avec Cuda. Je ne fais qu'un affichage à l'écran d'une texture 2D.
J'ai un bug dans mon programme:
En FullScreen, j'ai une barre noire en haut de mon écran. Ce n'est pas dans ma texture et je pense l'avoir positionnée correctement à l'écran, je ne comprend donc pas pourquoi j'ai cette barre. Voici un screenshot de mon plein écran avec la barre noire. Ce qui est bizarre c'est que quand je quitte le plein écran (seulement en supprimant la ligne glutFullScreen() ), je n'ai pas cette barre.
Voici mon projet sur GitHub (Branche "1d"!). Tout mon code est commenté en français, mais le code (les noms de variables) sont normalement toutes en anglais. J'ai aussi un script pour donner les informations sur ma carte graphic, et les voicis.
J'utilise ArchLinux et je suis à jours.
J'aimerais bien de l'aide pour trouver les quelques erreurs dans mon programme. J'ai essayé de séparer un maximum le code entre les différents fichiers pour faciliter la lecture. Tout est commenté donc seule des compétences basiques en opengl et peut-être cuda sont necessaires pour trouver le bug, pas besoin de maitriser les automates cellulaires (même si c'est très facile de comprendre les bases: exemple).
Je pense que mon problème peut venir de 3 endroits:
1) initialisation.cu -> j'ai sûrement fait une erreur dans l'initialisation des paramètres. Si j'ai fait quelque chose de mal ici n'hésitez pas à me le faire savoir.
2) affichage.cu -> dans la méthode renderScene. Ici encore, la plupart du code OpenGL est du simple copié collé d'autre tuto que j'ai trouvé, il se peut qu'il y ait aussi une erreur ici.
3) Ma configuration -> Si le projet fonctionne sur votre machine et qu'il n'y a pas cette barre noire, alors je sais au moins que je dois chercher du côté de ma configuration système!
Pour faire tourner mon programme:
Il faut une carte graphique NVidia (désolé ). Attention à ne pas le faire tourner très longtemps: Je fais un simple test pour éviter de faire renderScene à chaque frame, mais la méthode est tout de même appellée. L'ordi risque de tourner vite en boucle et de chauffer un petit peu ^^
Il est possible d'enlever la ligne "glutIdleFunc" dans le fichier initialisation.cu pour éviter de trop appeller ma fonction.
Partager