[DirectX]Does Windows RT support 32-bit index buffer of Direct3D 11? RRS feed

  • Question

  • We are developing an app that published in Windows store in 2014. We've done a major update (1.x to 2.x) and now testing is OK on x86 devices. However, on a ARM device (an old Surface RT with nVidia tegra 3 CPU), our app crashes. The error messages below are extracted from output window:

    D3D11 ERROR: ID3D11DeviceContext::IASetIndexBuffer: The Format (0x2a, R32_UINT) is not valid for usage as an IAIndexBuffer Format. [ STATE_SETTING ERROR #242: DEVICE_IASETINDEXBUFFER_FORMAT_INVALID]
    D3D11 ERROR: ID3D11DeviceContext::IASetIndexBuffer: CreateResource: 32-bit indices are not supported. [ STATE_CREATION ERROR #1048609: CREATERESOURCE_NO_DWORD_INDEX_BUFFER]
    D3D11: Removing Device.
    D3D11 WARNING: ID3D11Device::RemoveDevice: Device removal has been triggered for the following reason (DXGI_ERROR_DRIVER_INTERNAL_ERROR: There is strong evidence that the driver has performed an undefined operation; but it may be because the application performed an illegal or undefined operation to begin with.). [ EXECUTION WARNING #379: DEVICE_REMOVAL_PROCESS_POSSIBLY_AT_FAULT]
    D3D11 ERROR: ID3D11DeviceContext::DrawIndexed: The current IndexBufferFormat (0x2a, R32_UINT) is not valid for usage as an IAIndexBuffer Format. [ EXECUTION ERROR #358: DEVICE_DRAW_INDEX_BUFFER_FORMAT_INVALID]

    In the new 2.x code, we use 32-bit index buffer instead of 16-bit as in 1.x code. We suspect this may be the reason for the crash given the above messages. But MSDN articles said both DXGI_FORMAT_R16_UINT and DXGI_FORMAT_R32_UINT are valid formats. Could someone please give me some help? Thanks.

    • Edited by Krunal Parekh Friday, February 5, 2016 7:32 AM subject
    Thursday, February 4, 2016 10:56 PM


All replies