Error XNA 4: Could not find a Direct3D device that supports the XNA Framework HiDef profile


Hoy decidí instalar XNA 4 en el equipo del trabajo, y al querer compilarlo me apareció este bonito error:

Este mensaje dice muchas cosas jejeje:

No suitable graphics card found. (No se encuentra una tarjeta gráfica adecuada)

Could not find a Direct3D device that supports the XNA Framework HiDef profile (Ni se encuentra un dispositivo que soporte el perfil HiDef)

El equipo es un HP Pavilion con una tarjeta gráfica Nvidia Geforce 6150se, que según la Wikipedia tiene soporte de Pixel shader 3, con esa misma tarjeta en XNA 3.1 me venía andando muy bien y podía desarrollar algunos juegos.

Ahora XNA 4, maneja dos perfiles: HiDef y Reach, los cuales aseguran el desarrollo de diferentes dispositivos, el perfil Reach tiene acceso limitado a la API, sirve para equipos que no cumplen con todos los requisitos, el perfil HiDef tiene un acceso completo, cuando se crea un Proyecto de Windows o de XBox 360 se deja por defecto el perfil HiDef, mientras que si creamos un proyecto de Windows Phone se deja el perfil de Reach.

Las diferencias entre ambos perfiles se encuentran en la siguiente referencia:

http://blogs.msdn.com/b/shawnhar/archive/2010/03/12/reach-vs-hidef.aspx

Posibles Soluciones

Si tenemos una tarjeta gráfica que nos servía para desarrollar en XNA 3.1, y no queremos ni podemos conseguir una más actual que se acomode al perfil HiDef podemos hacer lo siguiente:

– Actualizar los Drivers de la tarjeta Gráfica

– Actualizar DirectX

Si después de hacerlo el error continúa, en el Visual Studio podemos indicarle que perfil queremos usar, para que no tome los perfiles por defecto.

En propiedades del proyecto y en la pestaña XNA Game Studio cambiamos el perfil a Reach:

También y es mucho mejor, cambiar el perfil desde el código, en el Constructor del juego:

graphics = new GraphicsDeviceManager(this);
graphics.GraphicsProfile = GraphicsProfile.Reach;

Si después de esto el error continúa, podemos usar una solución más descabellada, y es la que se indica en la siguiente página.

En la página lo que se hizo fue “descompilar” una de las clases de XNA, donde se encuentra el método GraphicsAdapter.IsProfileSupported, que hace las verificaciones del profile, luego crearon una librería reemplaza dicho método y hace que siempre devuelva aceptado el método.

Se debe descargar la dll, agregarlas en las referencias y en el constructor al comienzo escribir:

fbDeprofiler.DeProfiler.Run();

Espero que con esto ya se solucioné el error y puedan continuar desarrollando, y recuerden que si usan la Dll deben quitarla si van a distribuir los juegos.

Actualización 03 de Septiembre de 2011

Como la página donde se encuentra la dll fbDeprofiler.dll no funciona, busque y busque entre mis cosas y por fin encontré el archivo, así que lo dejo para puedan descargarlo.

Descargar (Download) fbDeprofiler.dll.

32 pensamientos en “Error XNA 4: Could not find a Direct3D device that supports the XNA Framework HiDef profile

  1. Hello,
    is there any person here who still has this fbDeprofiler.dll file? If so, then can anyone send me it to panabery@gmail.com ? Page where it can be found, doesn’t work anymore.

    Thanks in advance!

    (Sorry for english, I do not speak spanish).

  2. Voy a probarlo, que me sale con “Terraria”, que es un juego (Para quien no lo sepa).
    PD: Hola,
    ¿Hay alguien aquí que tenga “fbDeoprofiler.dll file”? Si lo hay, ¿Podrían enviármelo por correo a panabery@gmail.com? La página donde se encuentra no va, por lo que no puedo trabajarlo más.

    ¡Gracias por adelantado!
    [El inglés de arriba ha dicho algo así]

  3. pero que oye no entendi nada donde rayos ago esto “También y es mucho mejor, cambiar el perfil desde el código, en el Constructor del juego´´ ??????????? mandam un correo xfa!!

    • Hola, cuando estés creando un juego, también puedes cambiar el perfil desde el código, vas a la clase game1 y en constructor de la clase haces el cambio, ejemplo:
      public Game1()
      {
      graphics = new GraphicsDeviceManager(this);
      graphics.GraphicsProfile = GraphicsProfile.Reach;
      Content.RootDirectory = “Content”;
      }

  4. Pingback: Xna Framework | TagHall

  5. Hola Martin Reina te hago una consulta.

    Yo he bajado juegos que seguramente se hicieron con este programa pero no los puedo jugar porque me sale ese mensaje.

    Del juego solo tengo el .exe es posible hacerlos andar de alguna forma??

    Porque en el post solo veo que esta solución sirve solo para los desarrolladores del juego..

    Muchas gracias….

    • Hola, tienes razón, la solución la hice para los que desarrollan juegos o aplicaciones, pero si llega a salir el error en ambientes productivos o en juegos, debe ser por lo mismo, el equipo tiene una tarjeta que no soporta totalmente el juego, y la única solución sería cambiar de tarjeta de video, eso creo, ya que no me ha salido el error con los juegos que he instalado

  6. Tengo este mismo problema pero para el CastleMineZ de PC que me sale el mismo error y no me va nada de lo que e probado me pueden ayudar?

  7. Hola, gracias por el consejo, tengo un problema, y es qeu a la hora de compilar de nuevo el juego me dice “Error loading “iconos\Silver-textureGiro”. This file was compiled for the HiDef profile, and cannot be loaded into a Reach GraphicsDevice.” refiriendose a una imagen que utilizo en el juego, sabes que se puede hacer en estos casos?
    gracias!

    • Hola, para solucionar esto debes conseguir las imagenes originales, no los pbx, y luego compilarlas desde tu equipo o desde uno con la opción Reach y no con HiDef, luego si puedes importar los pbx generados.

  8. Hola, mi problema es con un juego que descargue. Me sale ese mensaje y ya probé con actualizar directX y la tarjeta gráfica y no va. Podrías explicar mejor ese método descabellado, es que no lo entendí muy bien, gracias¡

    • Hola, está solución solo aplica mientras se desarrolla un juego con Visual Studio y XNA, esta solución no aplica cuando el juego ya está publicado, la única es cambiar de tarjeta gráfica.

  9. Me pasa con el terraria pero en vez de decirme HIdef profile me dice reach profile
    Porfavor necesito saber cual es la solucion si hace un par de dias lo juegueeee!!!!
    DIOSSS

Deseas comentar o sugerir algo?

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s