diff --git a/src/xenia/ui/d3d12/d3d12_provider.cc b/src/xenia/ui/d3d12/d3d12_provider.cc index a895c46b2..5bfea8fa1 100644 --- a/src/xenia/ui/d3d12/d3d12_provider.cc +++ b/src/xenia/ui/d3d12/d3d12_provider.cc @@ -29,7 +29,8 @@ std::unique_ptr D3D12Provider::Create(Window* main_window) { "Unable to initialize Direct3D 12 graphics subsystem.\n" "\n" "Ensure that you have the latest drivers for your GPU and it supports " - "Direct3D 12 feature level 11_0 and typed UAV loads.\n" + "Direct3D 12 feature level 11_0, tiled resources tier 1 and typed UAV " + "loads.\n" "\n" "See http://xenia.jp/faq/ for more information and a list of supported " "GPUs."); @@ -113,7 +114,7 @@ bool D3D12Provider::Initialize() { } if (device == nullptr) { XELOGE("Failed to get an adapter supporting Direct3D feature level 11_0 " - "and typed UAV loads, or failed to create a Direct3D 12 device."); + "with required options, or failed to create a Direct3D 12 device."); dxgi_factory->Release(); return false; } @@ -155,7 +156,11 @@ bool D3D12Provider::IsDeviceSupported(ID3D12Device* device) { sizeof(options)))) { return false; } - // Typed UAV loads required for vertex fetch and post-resolve tiling. + // Tiled resources required for virtual memory. + if (options.TiledResourcesTier < D3D12_TILED_RESOURCES_TIER_1) { + return false; + } + // Typed UAV loads required for EDRAM storing and potentially texture tiling. return !!options.TypedUAVLoadAdditionalFormats; }