Impossible de compiler des shaders en cg! [RESOLU]

Impossible de compiler des shaders en cg! [RESOLU] - C++ - Programmation

Marsh Posté le 24-02-2007 à 15:30:57    

J'utilise un moteur gérant le deferred shading donc je dois écrire dans plusieurs MRT (Multiple Render Targets).
 
Les fragment shaders qui sont en charge de cette tâche ont donc une déclaration qui commence ainsi:
 

Code :
  1. struct VertexToFragment
  2.   {
  3.   half4 position : COLOR0;
  4.   half4 normal  : COLOR1;
  5.   half4 albedo  : COLOR2;
  6.   };


 
Problème: sur certaines plate-formes, ça marche nickel, sur d'autres le compilateur cg me balance une exception "Unknown error" au chargement du fragment shader. Ca m'aide trop bien ce genre d'explications :whistle:
 
En fait j'ai ce problème sur Radeon9800 pour DirectX et OpenGL. Sur Radeon X1950 Pro et GeForce 6800 GS, ça tourne avec DirectX mais pas avec OpenGL. Sur mon ancienne GeForce 6600 GT, ça marchait sur les 2, même si le code a légèrement changé depuis.
 
Est-ce que ça vient des drivers de la carte graphique, de la runtime Cg (pourtant en v1.5) ?


Message édité par akalash47 le 03-03-2007 à 10:35:32
Reply

Marsh Posté le 24-02-2007 à 15:30:57   

Reply

Marsh Posté le 24-02-2007 à 15:31:47    

Ce qui est curieux, c'est que d'autres programmes qui utilisent le deferred et à peu près la même structure de fragment shader tournent bien sur la Radeon9800 en OpenGL.
 
On dirait que la compilation de petits shaders comme j'ai plait moins bien à la runtime Cg...enfin c'est mon impression.


Message édité par akalash47 le 24-02-2007 à 15:36:05
Reply

Marsh Posté le 03-03-2007 à 10:35:40    

Hé bien c'était simplement dû au fait que je ne renseignais pas la structure dans l'ordre de sa déclaration!  :D


Message édité par akalash47 le 03-03-2007 à 10:35:54
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed