Changer le niveau de DirectX [XNA, C#] - C#/.NET managed - Programmation
Marsh Posté le 20-01-2008 à 22:20:17
Non pas possible : http://msdn2.microsoft.com/en-us/library/bb203925.aspx c'est dans les minimum requirements
Marsh Posté le 21-01-2008 à 01:44:30
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 : |
Donc en principe du hard d3d 8 devrait marcher.
Marsh Posté le 21-01-2008 à 10:34:00
bjone a écrit : tu as deux choses:
|
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 ?
Marsh Posté le 21-01-2008 à 11:42:36
Voir en particulier la FAQ XNA sur ce point précis: http://msdn2.microsoft.com/en-us/library/bb203941.aspx
A+,
Marsh Posté le 21-01-2008 à 12:29:41
Ca rejoint ce que je pensais : problème de drivers non à jour (en espérant qu'il existe une version à jour)
Marsh Posté le 21-01-2008 à 12:29:43
MagicBuzz a écrit : |
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.
Marsh Posté le 21-01-2008 à 13:03:34
Merci pour vos réponses,
La carte graphique étant une GeForce4 440 Go il faut que je trouve les derniers ForceWare possible pour elle.
Marsh Posté le 21-01-2008 à 18:54:57
ReplyMarsh Posté le 21-01-2008 à 19:19:56
bjone a écrit : la gf4 étant d3d8, ça devrait marcher enfin je suppose |
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)
Marsh Posté le 21-01-2008 à 20:26:17
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 )
Marsh Posté le 18-01-2008 à 16:55:42
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