Une erreur très étrange: si j'ajoute du code spécifique à mon projet, toutes les textures que j'utilise ne contiennent rien d'autre que 0. Même si je ne suis pas en train d'exécuter le code ajouté.Compilation du code spécifique NULLs mes textures
Le code spécifique est ici les noyaux d'un échantillon nVidia CUDA [1], l'exemple Bicubic Texture Filtering, dans le noyau spécifique CatMulRom. Je l'ai tracé jusqu'à l'une des sous-fonctions. Si je réinitialise une variable, tout redevient normal. C'est vraiment, vraiment étrange et je n'ai plus aucune idée de ce que ça pourrait être. L'ajout et l'utilisation du noyau bicubique ne posent aucun problème.
Voici le changement qui « fixe » le problème:
__host__ __device__
float catrom_w1(float a)
{
a = 1; // Fix
return 1.0f + a*a*(-2.5f + 1.5f*a);
}
Si je réinitialiser la variable, il fonctionne si je ne suis pas en utilisant CatMulRom. Si j'essaie de l'utiliser, les textures sont à zéro. Les textures en question sont définies comme suit:
texture<uchar1, 2, cudaReadModeNormalizedFloat> tex;
J'ai édité loin le modèle, en espérant qu'il résoudrait le problème, mais il persiste.
[1] http://developer.download.nvidia.com/compute/cuda/sdk/website/samples.html
Quelle version de CUDA et quel système d'exploitation utilisez-vous? – karlphillip
J'utilise Windows 7 64bit et CUDA 2.2 –