Bonjour à tous,
Lorsqu'on exécute un programme opengl, est ce que toutes les opérations du pipeline graphique 3D s'exécute sur le CPU ou bien il y a des opération tel que le "Display (rendering)" qui s'exécute sur le GPU
Merci d'avance
Bonjour à tous,
Lorsqu'on exécute un programme opengl, est ce que toutes les opérations du pipeline graphique 3D s'exécute sur le CPU ou bien il y a des opération tel que le "Display (rendering)" qui s'exécute sur le GPU
Merci d'avance
la plupart devrait être sur le GPU, a condition d'avoir le driver adéquat.
Bonjour,
J'ai pas de carte graphique sur mon Pc et je peux exécuter des programmes openGl
Bonjour,
principalement le GPU, les cartes graphiques offrant des implémentations hardware d'OpenGL et Direct3D.
sous windows, s'il n'y a pas de carte graphique ou si les drivers manquent, c'est le driver OpenGL 1.1 de microsoft qui est utilisé, et qui travaille uniquement avec le CPU.
désolé les amis mais je crois que je commence à confondre certain notion
C'est quoi la différence entre une programation CPU et une programmation GPU ?
Pourquoi utilisé GLSL si opengl s'exécute sur le GPU ?
est ce que quelqu'un peut me citer les opérations du pipeline graphique qui s'exécute sur le CPU et ceux qui s'exécute sur le gpu ?
Merci encore
@3aychoucha
Si tu n'avait pas de carte graphique, tu ne pourrais pas lire ce message. Tu n'a peut être pas un "grosse" carte, mais tu a forcement une carte graphique .
Aujourd'hui, même les carte intel bas de gamme savent faire de l'openGL sans problème.
si tu as une carte graphique, presque toute les opérations sont effectuées sur le GPU, la seule chose qui s'execute sur le CPU c'est la sauce interne du driver:
* copier les données de la mémoire RAM vers la mémoire graphique
* ordonnancer les tâches a effectuer
* compiler les shaders (GLSL vers langage machine)
* transformer les données ou bufferiser les données
toutes les opérations graphiques sont faites sur le GPU:
* transformation des vertex
* tesselation/generation de geometrie
* fog
* illumination
etc etc
Re,
Ben...la différence est que le code CPU s'exécute sur le CPU et le GPU sur...le GPU!C'est quoi la différence entre une programation CPU et une programmation GPU ?
Bon, un exemple: disons que tu veuilles charger une texture:
- tu vas lire une image sur le disque, ou depuis les resources de ton projet, la décoder et la stocker temporairement dans un buffer: tout ca se passe sur le GPU
- Puis tu appeles glTexImage2D(...) pour créer ta texture OpenGL: à ce moment là ton buffer de données est transmis du CPU au GPU et ta texture est présente sur le GPU
- Si plus tard tu veux, pour une raison ou une autre, acceder aux texelsde ta texture, tu peux faire un glGetTeximage, qui copiera les du GPU vers le CPU
Euh...je crois que tu n'as pas compris ce que sont les shaders:Pourquoi utilisé GLSL si opengl s'exécute sur le GPU ?
- La carte graphique implémente un "pipeline graphique", je ne vais pas tout détailler mais en gros il y a traitement des vertices, rasterization, traitement des pixels, etc etc jusqu'à ce que ton image apparaisse à l'écran.
- Les shaders permettent de remplacer des étapes de traitement des vertices, et celle de traitement des pixels, par ton propre code, écrit en GLSL.
avant celà on parlait de pipeline fixe et le programmeur n'était pas aussi libre. Depuis il y a aussi les géometry shaders et cie, mais c plus avancé.
Hum...désolé mais non, pas d'accord. Comme dit, en l'absence de carte graphique c'est le driver software qui prend le relai (sous windows en tout cas). C lent, c moche, limité à OpenGL 1.1, mais ca tourne à 100% sur le CPU.Si tu n'avait pas de carte graphique, tu ne pourrais pas lire ce message. Tu n'a peut être pas un "grosse" carte, mais tu a forcement une carte graphique .
Sur les PC modernes il y a toujours un "chipset graphique", celui-ci a plusieurs fonctionnalités: accélération 2D, 3D, affichage.
Des fois c'est une carte dédiée, des fois c'est une petite puce directement sur la carte mère, dés fois c'est integré au CPU.
Ensuite, il y a un driver qui permet d'utiliser les fonctionnalités. La seule fonctionnalité requise explicitement, c'est l'affichage; si il y a rien qui envoie un signal vers le moniteur, pas d'affichage.....
Certaines cartes ou puces n'ont que l'affichage; pas d'accélération 2D ou 3D, dans ce cas toute la 2D ou la 3D est faite sur le CPU.
Des fois il y a de la 2D mais pas de 3D; c'est par exemple, une copie très rapide d'un bloc vers un autre (blit), scroll vertical/horizontal très rapide, dessin de formes géometriques (ronds, biseaux, etc etc) ou scaling de rectangles. La 3D est faite sur le CPU.
La plupart des cartes actuelles sont 2D et 3D, si tu as le driver approprié alors le GPU se chargera de faire la 3D.
Seuls quelques PC très spécifiques n'ont qu'une carte 2D.
D'ailleurs, mêmes les telephones portables et les consoles de jeux suivent ce système.
Merci à vos tous les amis
tu as vérifié ca comment? tu peux me montrer?
Dans ton cas fleurdelys77, tu n'as aucune accélération, autant 2D que 3D, mais tu peux quand même éxécuter des programmes OpenGL car tout passe par le CPU.désolé mais je viens de vérifier que mon PC n'a pas de carte graphique ni chipset graphique. alors comment puis je savoir si j'ai une accélération 2D ou 3D
Merci infiniment
Donc pas forcément que ça passe par le GPU,
a partir du moment ou tu as un ecran, tu as une carte graphique dont le rôle (minimum) est de transformer la mémoire graphique en signal electrique pour l'envoyer au moniteur.
Si ca n'apparaît pas dans le panneau de contrôle, c'est soit que tu n'as pas trouvé la bonne catégorie, soit que Windows l'a mise dans une autre catégorie car il n'a pas compris ce que c'était (pas les driver).
mais il y a forcément un chipset pour générer un signal VGA/DVI/HDMI/DisplayPort
(est-ce que tu conbnais la marque/le fabricant/le modèle de ton PC?)
il y en a plusieurs versions, certains ont des cartes graphiques dediées NVidia ou ATI
si il n'y a pas ces cartes, alors il y a une Intel® Graphics Media Accelerator X4500
si tu veux verifier, tu peux lancer dxdiag.exe (installé avec DirectX, je pense qu'il est de base sur windows 7)
il y aura des onglets (general, display 1...) et dans les onglets display, il donne le nom de la carte graphique.
Sous OpenGL, après la création du contexte OpenGL, tu peux utiliser
glGetString(GL_VENDOR) et glGetString(GL_RENDERER) qui te donneront le nom de la carte graphique si disponible. SI le driver n'est pas installé, ca doit retourner peut-être "Generic OpenGL" ou un truc bizarre.
Merci merci merciiiiiiiii infiniment c'est ati radeon hd 4350 (normalement elle contient une accélération 3D et 2D ? )
Permettez moi de faire un petit résumé de ce que j'ai compris et veuillez me corrigé en cas d'erreur :
1. Touts les PC sont dotés d'une carte graphique avec rôle principale est l'affichage.
2. Certaines cartes ont plus que l'affichage comme fonctionnalité: l'accélération 2D ou 3D.
3. Donc si un PC n'est pas doté ni d'accélération 2D ni 3D alors l’exécution du pipeline graphique c'est sur CPU
4. Si il est doté d'une accélération 2D et pas de 3D alors La 2D s’exécute sur la carte et la 3D sur CPU
5. et enfin s'il est doté d'une accélération 2D et 3D alors le pipeline graphique s'exécute sur le GPU
Merci encore
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager