2012-03-21 12 views
6

Nuestra aplicación Direct3D9 funciona perfectamente si iniciamos Windows por completo y luego lo ejecutamos. Sin embargo, si modificamos el proceso de inicio de Windows para que Explorer no se ejecute, y solo Windows y nuestra aplicación se inicien, nuestra aplicación se ralentiza de manera horrible. El consumo de CPU llega al 50%, incluso cuando está inactivo (normalmente, está cerca de 0).La aplicación Direct3D funciona bien si Windows Explorer se está ejecutando, se ralentiza terriblemente, de lo contrario

Esto puede solucionarse iniciando el Administrador de tareas, iniciando el Explorador y reiniciando nuestra aplicación. Pero eso no es aceptable; nuestra aplicación debe ejecutarse sin Explorer.

¿Podría ser esto una cuestión de Direct3D? Nuestra aplicación es de pantalla completa, la versión de Windows es XP SP3 con todas las últimas actualizaciones y la versión de Direct3D es 9.0.c. Si esto no está relacionado con Direct3D, ¿cómo podría proceder para depurar esto?

+0

wow. No sabía que eso sucedería. seguirá esta pregunta. – mauris

+3

¿Por qué demonios querrías ejecutar la aplicación sin explorador de todos modos? Incluso en un quiosco, si quieres pantalla completa, escribe una aplicación de pantalla completa. No mates el caparazón! –

+6

Para el registro, parece que depende de alguna aplicación (generalmente un controlador de gráficos) que está esperando un gancho del explorador. (como el menú de hacer clic con el botón derecho de gráficos que algunos proveedores adjuntan al menú de clic derecho del escritorio) Ningún explorador == no se carga y el controlador de gráficos se ahoga. Tal vez. Pero realmente lo dudo. ¿Cómo está "ajustando" exactamente el proceso de inicio? –

Respuesta

11

Lo resuelto. Fuimos a Control Panel->UserAccounts->Change the way users log on or off y vimos que "Usar la pantalla de Bienvenida" estaba marcada.

Desmarque que lo resolvió. Parece que cuando la pantalla de Bienvenida está activa, ya que usa una resolución diferente a la del escritorio, se producen conflictos. Y no revisé, pero parece que esto causó que la aceleración del hardware no esté disponible temporalmente y, por lo tanto, se seleccionó la representación del software, lo que provocó la muerte de la CPU.

+1

Buena captura. Y gracias por publicar la solución para futuros buscadores. – BoBTFish

Cuestiones relacionadas