Al perfilar mi aplicación con Pix, noté que la GPU pasa (en modo DX10) la mayor parte del tiempo en espera de un recurso no disponible. (Y siempre está en la fila con la CPU (por ejemplo, si la CPU está procesando marco X, la GPU también está procesando marco X) para este problema)Contención de recursos
Algunos nota:
1) La aplicación es GPU limitado (la CPU es básicamente inactivo (el 20% del uso de la CPU en la escena más pesado))
Mis preguntas son:
1) ¿Cómo tengo que interpretar estos resultados? En Pix cada fotograma en el lado de la GPU, veo 2-3 barras rojas pequeñas (hasta donde sé, el recurso no está disponible) y después una barra gris media/grande (eso significa que la GPU está inactiva). La CPU en otro lado tiene algunas operaciones, una gran barra vacía y algunas otras operaciones (¿está esperando algo?)
Otra nota, cuando la GPU está inactiva, generalmente la CPU está funcionando. (Lo contrario no es válido, obviamente)
2) ¿Qué llamadas pueden hacer que el recurso no esté disponible?
¿Se considera que un MAPA con DESCARTE es una llamada de bloqueo?
¿Una consulta para obtener el DESC de un objeto?
Compartir un efecto Shader se considera una disputa?
¿Qué otros?
Mi marco general es:
41 DrawPrimitives/DrawIndexedPrimitives (más objeto son instanciado)
7/8 Bloqueos en una memoria tampón de vértice con descarte
9 cambio de sombreado de píxeles/vértice shader
1 SetRenderTarget
Gracias!
P.S. Captura de pantalla de pix
http://img191.imageshack.us/img191/6800/42594100.jpg
Si uso una sola llamada sorteo (con la misma carga GPU (por ejemplo, un motor de partículas con partículas de X o un objeto de instancia)) en lugar del juego completo I conseguir un azul lleno barra y la GPU correctamente 2-3 marco detrás de la CPU ...
EDIT: Me estoy enfocando cada vez más en el Marco de efectos que probablemente sea la razón de este problema. Comparto un efecto entre más objetos para ahorrar memoria y tiempo para crearlos. ¿Es seguro asumirlo sin contención?
hum, pix ejecutando, ¿no puede aislar qué llamada está forzando la descarga? – Bahbar