The open source OpenXR runtime
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

c/client: Turn off depth formats for D3D11, they are breaking Vulkan right now

+18 -1
+1 -1
doc/changes/compositor/mr.943.md
··· 8 8 - mr.1340 9 9 --- 10 10 11 - Full support for D3D11 client applications on Windows. 11 + Initial support for D3D11 client applications on Windows.
+17
src/xrt/compositor/client/comp_d3d11_client.cpp
··· 50 50 using xrt::compositor::client::unique_swapchain_ref; 51 51 52 52 DEBUG_GET_ONCE_LOG_OPTION(log, "D3D_COMPOSITOR_LOG", U_LOGGING_INFO) 53 + DEBUG_GET_ONCE_BOOL_OPTION(allow_depth, "D3D_COMPOSITOR_ALLOW_DEPTH", false); 53 54 54 55 /*! 55 56 * Spew level logging. ··· 824 825 // Passthrough our formats from the native compositor to the client. 825 826 uint32_t count = 0; 826 827 for (uint32_t i = 0; i < xcn->base.info.format_count; i++) { 828 + // Can we turn this format into DXGI? 827 829 DXGI_FORMAT f = d3d_vk_format_to_dxgi(xcn->base.info.formats[i]); 828 830 if (f == 0) { 831 + continue; 832 + } 833 + // And back to Vulkan? 834 + auto v = d3d_dxgi_format_to_vk(f); 835 + if (v == 0) { 836 + continue; 837 + } 838 + // Do we have a typeless version of it? 839 + DXGI_FORMAT typeless = d3d_dxgi_format_to_typeless_dxgi(f); 840 + if (typeless == f) { 841 + continue; 842 + } 843 + // Sometimes we have to forbid depth formats to avoid errors in Vulkan. 844 + if (!debug_get_bool_option_allow_depth() && 845 + (f == DXGI_FORMAT_D32_FLOAT || f == DXGI_FORMAT_D16_UNORM || f == DXGI_FORMAT_D24_UNORM_S8_UINT)) { 829 846 continue; 830 847 } 831 848