window怎么使用,使用Pix For Windows調試Shader傻瓜教程

 2023-11-12 阅读 16 评论 0

摘要:下面,我們來介紹一下怎么使用DX SDK自帶的工具pix for windows來調試Shader。這里只做簡要的介紹,具體的情參看PIX的文檔哈。如何找到文檔呢?打開DX SDK開始菜單下面的DirectX Documentation for C++,我的版本是09

下面,我們來介紹一下怎么使用DX SDK自帶的工具pix for windows來調試Shader。這里只做簡要的介紹,具體的情參看PIX的文檔哈。如何找到文檔呢?打開DX SDK開始菜單下面的DirectX Documentation for C++,我的版本是09年8月版本的,到目前為止好像是最新版,呵呵。然后依次:DirectX Software Development Kit/Tools/DirectX Performance Tools/PIX。

??????? 好了開始吧。window怎么使用?首先,讓我們選擇一個例子吧,就用微軟自帶的BasicHLSL這個Demo吧。首先呢,我們要用可調式Shader的方式編譯和鏈接我們的程序。對于這個Demo來說,就是簡單的把下面這兩句解注釋就OK了:

??????? #define DEBUG_VS?? // Uncomment this line to debug vertex shaders?
???????? #define DEBUG_PS?? // Uncomment this line to debug pixel shaders

??????? 好了,現在我們應該會生成一個可執行文件了。我的這個可執行文件的地址是:E:/Documents/Visual Studio 2008/Projects/DirectXSamples/BasicHLSL/Debug/BasicHLSL.exe 記住它哦。

???????? 然后我們去開始菜單DXSDK下面打開PIX for Windows.如果不出意外的話,你應該能看到這個界面:


?好了,讓我們新建一個Experiment吧。如何調試程序?方法是File>New Experiment(PS:Ctrl+N或者直接點工具欄都可以)。然后你會看到下面一個界面:


如上所示,這樣選擇好,點Start Experiment就可以啟動應用程序了。

注意,由于開啟了Pixel Shader調試,因此會切換到參考設備,所以會出現一個警告,且運行期間會很卡,但是,忍住吧,呵呵。造成這個的罪魁禍首在此:

??? // Debugging vertex shaders requires either REF or software vertex processing?
??? // and debugging pixel shaders requires REF.?
#ifdef DEBUG_VS
??? if( pDeviceSettings->d3d9.DeviceType != D3DDEVTYPE_REF )
??? {
??????? pDeviceSettings->d3d9.BehaviorFlags &= ~D3DCREATE_HARDWARE_VERTEXPROCESSING;
??????? pDeviceSettings->d3d9.BehaviorFlags &= ~D3DCREATE_PUREDEVICE;
??????? pDeviceSettings->d3d9.BehaviorFlags |= D3DCREATE_SOFTWARE_VERTEXPROCESSING;
??? }
#endif
#ifdef DEBUG_PS
????pDeviceSettings->d3d9.DeviceType = D3DDEVTYPE_REF;
#endif

?????? 當程序運行之后,讓我們在想調試的Frame按下F12鍵。(也可以是其它鍵,這取決于你的設置,你可以去上面那個界面的More Option里修改。Windows7密鑰、) 然后咱們就退出吧,同時也退出新建Experiment的向導對話框吧,然后出現了一個這個界面:


OK,這就是我們要分析的第六幀哦。在Detail窗口中選擇Render,事件中選擇Frame6.然后應該能看到這個界面:


?接下來選擇一個我們要調試的像素,右鍵之后選Debug This Pixel。


看到左邊的鏈接了嗎?(如上圖所示的Debug Vertex0等)點擊它們試試吧。


是不是很簡單呢?這是一個輕量級的工具不怎么占資源也挺好用的。

?

?

呵呵。調試怎么用,Pixel也是同樣的道理哦:


?我也是剛剛接觸到PIX,到處找資料都找不到,所以只好自己自學了,希望這一點點東西對大家能有幫助。另外PIX是很強大的一個工具,它能做的不僅僅是這點,它還可以用來查Bug用來檢查性能消耗,起Nvidia PerfHUD的作用哦~~ 向導窗口下面的四個選項選第一個試試看~~

?????? 就此了,有其它好的方法和用法歡迎大家共享,謝謝。

?

個人注解:

???? 此處的VS和PS在編譯時必須指定D3DXSHADER_DEBUG(/Zi)和D3DXSHADER_SKIPOPTIMIZATION(/Od),否則就只能在反匯編模式下調試了,哈哈!



版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/171655.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息