Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1285 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [XNA, C#] Changer le niveau de DirectX

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[XNA, C#] Changer le niveau de DirectX

n°1673506
_Raynor_
Posté le 18-01-2008 à 16:55:42  profilanswer
 

Je dois coder un jeu 2D avec XNA sur un ordinateur dont la carte graphique ne supporte pas mieux que DirectX 8.
 
Le problème c'est que XNA semble vouloir obligatoirement utiliser DirectX 9.
Nulle part je ne trouve où changer ce réglage et lui faire utiliser DirectX 8.
 
Au lancement de n'importe quel projet de jeu (même un vierge fait tout seul par Visual Studio) j'ai une NoSuitableGraphicsDeviceException ("Could not find a Direct3D device that has a Direct3D9-level driver and supports pixel shader 1.1 or greater." ).
 
Quelqu'un saurait comment faire ?


Message édité par _Raynor_ le 18-01-2008 à 16:55:59
mood
Publicité
Posté le 18-01-2008 à 16:55:42  profilanswer
 

n°1674126
Je@nb
Kindly give dime
Posté le 20-01-2008 à 22:20:17  profilanswer
 

Non pas possible : http://msdn2.microsoft.com/en-us/library/bb203925.aspx c'est dans les minimum requirements

n°1674152
bjone
Insert booze to continue
Posté le 21-01-2008 à 01:44:30  profilanswer
 

tu as deux choses:  
- l'api et ses primitives
- les capacitées du périphérique D3D (qui te donnent accès aux primitives évolués au pas)
 
il est tout à fait possible de faire du D3D7 (T&L/renderstates) ou 8 (shaders 1.x) avec Direct3D 9.
 

Citation :


To run XNA Framework games on Windows, you will need a graphics card that supports Shader Model 1.1 or greater and DirectX 9.0c. We recommend that you use a graphics card that supports Shader Model 2.0 because some samples and starter kits may require it.


 
Donc en principe du hard d3d 8 devrait marcher.

Message cité 1 fois
Message édité par bjone le 21-01-2008 à 01:56:45
n°1674224
MagicBuzz
Posté le 21-01-2008 à 10:34:00  profilanswer
 

bjone a écrit :

tu as deux choses:  
- l'api et ses primitives
- les capacitées du périphérique D3D (qui te donnent accès aux primitives évolués au pas)
 
il est tout à fait possible de faire du D3D7 (T&L/renderstates) ou 8 (shaders 1.x) avec Direct3D 9.
 

Citation :


To run XNA Framework games on Windows, you will need a graphics card that supports Shader Model 1.1 or greater and DirectX 9.0c. We recommend that you use a graphics card that supports Shader Model 2.0 because some samples and starter kits may require it.


 
Donc en principe du hard d3d 8 devrait marcher.


le souci, c'est que si tu peux effectivement faire du DX8 (même du DX1, pourquoi pas ?), XNA tente au démarrage de vérifier que la carte supporte bien DX9.
par contre, ce que je ne pige pas, c'est que DX normalement dispose d'une couche d'émulation software non ? justement pour pallier aux lacunes de la carte... le HAL si je ne me plante pas (Hardware Abstraction Layer). c'est du moins ce que j'ai toujours utilisé comme mode graphique dans les jeux qui merdaient (genre Anarchy Online et certaines versions des Catalyst, qui faisaient planter le jeu... un coup de HAL, ça ramme un bon coup, mais ça marchait nickel)
 
y'a pas une couille dans les drivers là plutôt ? ou dans le choix du device ?

Message cité 1 fois
Message édité par MagicBuzz le 21-01-2008 à 10:36:01
n°1674293
gilou
Modérateur
Modzilla
Posté le 21-01-2008 à 11:42:36  profilanswer
 

Voir en particulier la FAQ XNA sur ce point précis: http://msdn2.microsoft.com/en-us/library/bb203941.aspx
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°1674329
MagicBuzz
Posté le 21-01-2008 à 12:29:41  profilanswer
 

Ca rejoint ce que je pensais : problème de drivers non à jour (en espérant qu'il existe une version à jour)

n°1674330
bjone
Insert booze to continue
Posté le 21-01-2008 à 12:29:43  profilanswer
 

MagicBuzz a écrit :


le souci, c'est que si tu peux effectivement faire du DX8 (même du DX1, pourquoi pas ?), XNA tente au démarrage de vérifier que la carte supporte bien DX9.
par contre, ce que je ne pige pas, c'est que DX normalement dispose d'une couche d'émulation software non ? justement pour pallier aux lacunes de la carte... le HAL si je ne me plante pas (Hardware Abstraction Layer). c'est du moins ce que j'ai toujours utilisé comme mode graphique dans les jeux qui merdaient (genre Anarchy Online et certaines versions des Catalyst, qui faisaient planter le jeu... un coup de HAL, ça ramme un bon coup, mais ça marchait nickel)
 
y'a pas une couille dans les drivers là plutôt ? ou dans le choix du device ?


 
bin le mode hal est le mode par défaut. http://msdn2.microsoft.com/en-us/library/bb172547.aspx
 
après ce qui est hardware, émulé ou pas supporté, c'est les caps qui doivent le dire.

n°1674357
_Raynor_
Posté le 21-01-2008 à 13:03:34  profilanswer
 

Merci pour vos réponses,
La carte graphique étant une GeForce4 440 Go il faut que je trouve les derniers ForceWare possible pour elle.


Message édité par _Raynor_ le 21-01-2008 à 13:03:42
n°1674655
bjone
Insert booze to continue
Posté le 21-01-2008 à 18:54:57  profilanswer
 

la gf4 étant d3d8, ça devrait marcher enfin je suppose :D

n°1674670
MagicBuzz
Posté le 21-01-2008 à 19:19:56  profilanswer
 

bjone a écrit :

la gf4 étant d3d8, ça devrait marcher enfin je suppose :D


ben nan, le message d'erreur indique que le drivers doit supporter les instructions DX9C.
 
et vu au contraire que la carte ne supporte que DX8, il y a des chances pour que le drivers n'aille pas plus loin...
 
d'autant que cette carte est assez ancienne et peu performante, je suppose que nVidia ne juge pas nécessaire de maintenir une version récente des drivers, puisque de toute façon les applications nécessitant DX9 se trouveront trop justes sur une machine dotée d'une telle carte. donc rien n'est moins sûr... si les drivers forceware "classiques" passent avec, no soucy, tu pourras même faire du DX10, mais sinon... (enfin... faire... compiler avec un soft prévu pour DX10 tout du moins, évidement tu ne pourras pas utiliser les instructions DX10, ou éventuellement en mode émulé si le drivers le permet)


Message édité par MagicBuzz le 21-01-2008 à 19:20:39
mood
Publicité
Posté le 21-01-2008 à 19:19:56  profilanswer
 

n°1674692
bjone
Insert booze to continue
Posté le 21-01-2008 à 20:26:17  profilanswer
 

D3D10 n'autorise pas la rétro-compatiblité (il est hors de la discussion).
 
normalement le runtime de D3D9 s'adapte à des drivers DDI 7~9. (enfin si il expose les caps qui vontbien)
 
bon après si XNA vérifie la présence des caps génénération D3D9 c'est possible mais c'est alors en contradiction avec la doc si ça jette sur une carte D3D 8, et en contradiction avec le D3D 9 tout court qui autorise d'utiliser du hard D3D 7 (avec bien sûr uniquement que le support T&L/renderstates).
 
maintenant c'est ptet que certains examples qui jettent comme indiqué sur le lien msdn. (il est logique que des examples xbox 360 jettent sur une gf4 :D)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [XNA, C#] Changer le niveau de DirectX

 

Sujets relatifs
erreur non connu, désire changer la couleur d'un panel via les menu[C++][DirectX] Billboarding
[C++][DirectX] DXUT et FrameRate[Resolu] Condition pour changer une class
Changer la valeur d'un cookieChanger taille, couleur, police d'un texte par listbox
Visual C# : changer le framework par défautrollover d'un tableau changer les background images
Qui sait changer la version du compilateur Java Studio Creator 2.Changer caption/etat de bouttons avec MFC
Plus de sujets relatifs à : [XNA, C#] Changer le niveau de DirectX


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR