Question

Comme nous apprendre à connaître la suite, la spécification est une chose et la mise en œuvre est une autre. La plupart des insectes nous nous cause, mais parfois c'est pas le cas.

Je crois qu'il serait utile de faire une petite liste de:

Quels sont les bugs connus dans les pilotes GPU, liés à la mise en œuvre des versions récentes d'OpenGL et GLSL?

S'il vous plaît rappelez-vous pour poster toujours pertinent carte graphique et version du pilote .

Était-ce utile?

La solution

Je vais commencer:

  • GPU: confirmé sur AMD / ATI Radeon HD 4650
  • Type: problème GLSL
  • Version GL liée: a confirmé 3.3, probablement 3.1 et plus (ou même avant)
  • Lien pertinent: http://forums.amd.com/devforum /messageview.cfm?catid=392&threadid=139288
  • Version du pilote: confirmé sur Catalyst 10.10 (28/09/2010)
  • Statut: en date du 2010-11-27 il a une solution, mais il aparrently n'a pas encore atteint la sortie du conducteur du public (même si le correctif est libéré, les utilisateurs avec la version pas si récente des pilotes encore être affecté comme pour mois)
  • Description:

Si dans votre variable vertex shader vous avez une de attribute (de in) dont le nom est lexicalement après gl_, alors vous ne pouvez pas utiliser des attributs intégrés, à savoir gl_VertexID et gl_InstanceID. Si vous essayez, le shader ne fonctionnera pas (écran blanc, probablement).

  • Solution (nouveau):

Disponible uniquement avec GLSL 3.3 et plus, ou avec le GL_ARB_explicit_attrib_location l'extension.

Définir l'emplacement de tout attribut explicitement égale à 0, en ajoutant layout(location=0) à sa déclaration dans le vertex shader. Vous pouvez, mais ne pas besoin d'utiliser pour d'autres attributs; l'important est que tous les besoins d'attribut ont lieu égal à 0. Une fois que vous faites cela, la dénomination n'est plus importante.

  • Solution (alternative):

Utilisez une convention de nom qui vous oblige à nommer vos variables d'attributs commençant par a_, qui ne sera pas nuire à votre lisibilité du code et fera tous être lexicalement avant gl_ (zone de sécurité).

Autres conseils

Un autre bug gl_VertexID:

  • GPU: NVIDIA GeForce 9400M
  • Type: problème GLSL
  • Version du pilote: NVDANV50Hal 1.6.36
  • OpenGL version: 2.1, 1.2 GLSL en utilisant l'extension GL_EXT_gpu_shader4

Cela se produit sur MacBooks. Il est possible que le nouveau pilote OpenGL 3.2 permettant livré avec OS X Lion a résolu le problème mais beaucoup de cadres ne sont configurés pour utiliser l'héritage 2.1 pilotes si cela est encore pertinent.

Si vous lisez gl_VertexID avant de lire un autre attribut dans un vertex shader, ce dernier attribut renvoie les données indésirables. Si l'autre attribut est gl_Color, quelle que soit la façon dont il est utilisé, rien ne sera rendu. Accès à d'autres attributs intégrés peuvent conduire à d'autres comportements étranges.

  • Solution:

Si vous devez utiliser gl_VertexID, lisez tous les autres attributs que vous aurez besoin d'abord. Si vous lisez un autre attribut premier, suivi par gl_VertexID, tout les lectures suivantes de l'attribut fonctionnera bien.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top