IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Probleme GLSL avec AMD, programme en C


Sujet :

C

  1. #1
    Membre à l'essai Avatar de Mimus
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 4
    Par défaut Probleme GLSL avec AMD, programme en C
    Bonjour / Bonsoir,
    J'ai un problème de compatibilité ou version avec mes shaders,
    Je ne comprend pas l'erreur et semble récurrente chez AMD, ayant parcouru plusieurs page sur google a la recherche d'une correction pour se bug, rien a faire...

    Techno:
    Langage: C
    Libs: OpenGL, GLFW, GLEW
    OS: Window 10

    Log d'erreur:
    WARNING: warning(#272) Implicit version number 110 not supported by GL3 forward compatible context

    Materiel:
    - Processeur AMD FX 8350 Black Edition
    - Carte mère ASUS M5A97 R2.0
    - 24 Go de mémoire vive
    - Carte graphique AMD Radeon R9 270X 2Go

    Screen:
    Nom : bug.png
Affichages : 235
Taille : 10,5 Ko

    Source sur Github

    Source Shader:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    #include "visiobj.h"
     
    static void	test_shader(GLuint id, GLint type)
    {
    	GLint	log_len;
    	GLchar	*log_content;
     
    	glGetShaderiv(id, GL_INFO_LOG_LENGTH, &log_len);
    	if (log_len <= 0)
    		return ;
    	if (type == GL_VERTEX_SHADER)
    		ft_putstr("Error Vertex Shader:\n\t");
    	else if (type == GL_FRAGMENT_SHADER)
    		ft_putstr("Error Fragment Shader:\n\t");
    	else
    		ft_putstr("Error Geometry Shader:\n\t");
    	if (!(log_content = (char *)malloc(sizeof(char) * log_len)))
    		die("Malloc failure, test_shader!\n");
    	glGetShaderInfoLog(id, log_len, &log_len, log_content);
    	ft_putstr(log_content);
    	free(log_content);
    	die("\n");
    }
     
    static void	test_program(GLuint id)
    {
    	GLint	log_len;
    	GLchar	*log_content;
     
    	glGetProgramiv(id, GL_INFO_LOG_LENGTH, &log_len);
    	if (log_len <= 0)
    		return ;
    	ft_putstr("Error Program Shader:\n\t");
    	if (!(log_content = (char *)malloc(sizeof(char) * log_len)))
    		die("Malloc failure, test_program!\n");
    	glGetProgramInfoLog(id, log_len, &log_len, log_content);
    	ft_putstr(log_content);
    	free(log_content);
    	die("\n");
    }
     
    GLuint		shaders_load(const GLchar *vertex_src, const GLchar *fragment_src)
    {
    	GLuint	vertex_id;
    	GLuint	fragment_id;
    	GLuint	program;
     
    	vertex_id = glCreateShader(GL_VERTEX_SHADER);
    	glShaderSource(vertex_id, 1, &vertex_src, NULL);
    	glCompileShader(vertex_id);
    	test_shader(vertex_id, GL_VERTEX_SHADER);
    	fragment_id = glCreateShader(GL_FRAGMENT_SHADER);
    	glShaderSource(fragment_id, 1, &fragment_src, NULL);
    	glCompileShader(fragment_id);
    	test_shader(fragment_id, GL_FRAGMENT_SHADER);
    	program = glCreateProgram();
    	glAttachShader(program, vertex_id);
    	glAttachShader(program, fragment_id);
    	glLinkProgram(program);
    	test_program(program);
    	glDetachShader(program, vertex_id);
    	glDetachShader(program, fragment_id);
    	glDeleteShader(vertex_id);
    	glDeleteShader(fragment_id);
    	return (program);
    }
     
    void		uniform_mat4(GLuint program, GLchar *name, GLfloat *mat)
    {
    	GLint id;
     
    	id = glGetUniformLocation(program, name);
    	glUniformMatrix4fv(id, 1, GL_FALSE, mat);
    }
    glfwinfo.exe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    GLFW header version: 3.2.1
    GLFW library version: 3.2.1
    GLFW library version string: "3.2.1 Win32 WGL EGL MinGW"
    OpenGL context version string: "4.5.13467 Compatibility Profile Context 21.19.413.0"
    OpenGL context version parsed by GLFW: 4.5.13467
    OpenGL context flags (0x00000000):
    OpenGL context flags parsed by GLFW:
    OpenGL profile mask (0x00000002): compat
    OpenGL profile mask parsed by GLFW: compat
    OpenGL context renderer string: "AMD Radeon HD 7800 Series"
    OpenGL context vendor string: "ATI Technologies Inc."
    OpenGL context shading language version: "4.50"
    OpenGL framebuffer:
     red: 8 green: 8 blue: 8 alpha: 8 depth: 24 stencil: 8
     samples: 0 sample buffers: 0
     accum red: 0 accum green: 0 accum blue: 0 accum alpha: 0 aux buffers: 4
    Vulkan loader: available
    Vulkan required instance extensions: VK_KHR_surface VK_KHR_win32_surface
    Vulkan discrete GPU device: "AMD Radeon HD 7800 Series"
    Lien pastebin glewinfo.exe

    Si vous avez besoin d'autre information, n’hésite pas a me les demander.

  2. #2
    Expert confirmé
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 226
    Par défaut
    Il y'a un forum spécial OpenGL ici : https://www.developpez.net/forums/f5...hiques/opengl/

    Après pour ton souci quel est la version du shader que tu utilise ? (dans ton code GLSL)

    l'erreur me semble donner quelque indice :
    " WARNING: warning(#272) Implicit version number 110 not supported by GL3 forward compatible context"

    Le code de ton shader pourrait nous éclairer éventuellement.

  3. #3
    Membre à l'essai Avatar de Mimus
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 4
    Par défaut
    Bonsoir merci de votre intérêt, mais nous venons de résoudre le problème.
    et cela venais d'une faut d’inattention a la lecture du fichier quand j'ai fait ma modification de dernière minute.

    C’était une problème de priorité dans la fichier du lecture du a une parenthèse mal placer.
    https://github.com/mimusangel/VisiOb...ces/file.c#L12

    Avant cela c’était:
    if ((len = ftell(file) <= 0))

    Comme quoi j'aurai du re-tester après avoir rajouter se if

    Pour mes shaders ils sont très basic mais fonctionnel vu que c'est pour le test, mais je vous les met au cas ou cela peu aider quelqu'un.
    Vertex Shader:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    #version 330 core
    layout(location = 0) in vec3 vertexPosition;
    layout(location = 1) in vec3 vertexColor;
     
    uniform mat4 projection;
    uniform mat4 model;
    uniform mat4 view;
     
    out vec3 vColor;
     
    void main()
    {
    	mat4 mvp = projection * view * model;
    	gl_Position = mvp * vec4(vertexPosition, 1);
    	vColor = vertexColor;
    }
    Fragment Shader:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #version 330 core
    out vec3 color;
     
    in vec3 vColor;
     
    void main(){
      color = vColor;
    }
    Et Merci je n'avais pas vu qu'il y avait un forum spécifique a opengl.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme d exportation de programme avec table
    Par wil83440 dans le forum Bases de données
    Réponses: 2
    Dernier message: 25/03/2007, 14h49
  2. probleme avec un programme en JS qui realise des calculs
    Par leclone dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 17/09/2006, 18h09
  3. [TP] Problème avec mon programme de conversion
    Par Panzer95 dans le forum Turbo Pascal
    Réponses: 5
    Dernier message: 28/05/2006, 18h36
  4. Debutant en JAVA, problème avec 1er programme
    Par Gymerus dans le forum Entrée/Sortie
    Réponses: 13
    Dernier message: 07/09/2005, 12h10
  5. Réponses: 5
    Dernier message: 21/11/2004, 18h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo