2014-03-28 18 views
0

渲染目標描述如下,當調用CreateTexture2D時,我的應用崩潰了,但是着色器資源沒有錯。爲什麼我無法使用WP8中的DXGI_FORMAT_R8_UNORM格式創建渲染目標?

CD3D11_TEXTURE2D_DESC renderTargetDesc(
    DXGI_FORMAT_R8_UNORM, 
    static_cast<UINT>(m_renderTargetSize.Width), 
    static_cast<UINT>(m_renderTargetSize.Height), 
    1, 
    1, 
    D3D11_BIND_RENDER_TARGET 
    ); 

m_d3dDevice->CreateTexture2D(
    &renderTargetDesc, 
    nullptr, 
    &m_renderTarget 
); 

但是我發現DXGI_FORMAT_R8_UNORM格式由渲染目標的支持:http://msdn.microsoft.com/en-us/library/windows/desktop/hh404483(v=vs.85).aspx

誰能告訴我問題出在哪裏?非常感謝!

回答

0

並非所有的硬件都是相同的,您應該先檢查使用情況,使用ID3D11Device::CheckFormatSupport記錄爲here

現代GPU不支持渲染每像素小於32位的渲染。 Windows驅動程序也更有可能在引擎蓋後面的缺失功能上提供仿真,而不是在應該重新檢查性能和電池消耗的手機上進行仿真。

您應該在設備創建時添加調試層標誌並查看控制檯日誌,您將看到與調用無效參數相關的錯誤消息。

+0

非常感謝 – CapellaMeng

相關問題