遊戲一直用的OpenGL,最近上面也不管死活的硬是要升級到DirectX,即然要生嘛,所有東西都要轉到dx的api上。
OpenGL 上可以用 ARB_timer_query 取GPU的時間,但glGetQueryObjectui64vEXT這個方法只支持OGL3.2以上的版本,而且用Query time的方法,在有些低端的顯卡上會有crash。所有我們的遊戲凡是在OGL API調用的地方都進行了error check。
今天研究了下,DirectX上也是有相似的方法QUERY_DATA_TIMESTAMP_DISJOINT 也可以取到。
搜到一個老外寫的詳細的文章GPU Profiling參考參考,