[D3D12] Make tiled resource toggleable, disable debug layer by default

This commit is contained in:
Triang3l
2018-07-30 20:18:52 +03:00
parent e0eede73b9
commit 2183a969af
5 changed files with 101 additions and 59 deletions

View File

@@ -0,0 +1,16 @@
/**
******************************************************************************
* Xenia : Xbox 360 Emulator Research Project *
******************************************************************************
* Copyright 2018 Ben Vanik. All rights reserved. *
* Released under the BSD license - see LICENSE in the root for more details. *
******************************************************************************
*/
#include "xenia/ui/d3d12/d3d12_api.h"
DEFINE_bool(d3d12_tiled_resources, true,
"Enable tiled resources for shared memory emulation. Disabling "
"them greatly increases video memory usage - a 512 MB buffer is "
"created - but allows graphics debuggers that don't support tiled "
"resources to work.");

View File

@@ -10,6 +10,8 @@
#ifndef XENIA_UI_D3D12_D3D12_API_H_
#define XENIA_UI_D3D12_D3D12_API_H_
#include <gflags/gflags.h>
// This must be included before D3D and DXGI for things like NOMINMAX.
#include "xenia/base/platform_win.h"
@@ -19,4 +21,6 @@
#define XELOGD3D XELOGI
DECLARE_bool(d3d12_tiled_resources);
#endif // XENIA_UI_D3D12_D3D12_API_H_

View File

@@ -14,7 +14,7 @@
#include "xenia/base/logging.h"
#include "xenia/ui/d3d12/d3d12_context.h"
DEFINE_bool(d3d12_debug, true, "Enable Direct3D 12 and DXGI debug layer.");
DEFINE_bool(d3d12_debug, false, "Enable Direct3D 12 and DXGI debug layer.");
DEFINE_int32(d3d12_adapter_index, -1, "Index of the DXGI adapter to use. "
"-1 for any physical adapter, -2 for WARP software rendering.");
@@ -155,8 +155,15 @@ bool D3D12Provider::IsDeviceSupported(ID3D12Device* device) {
sizeof(options)))) {
return false;
}
// Tiled resources required for virtual memory.
return options.TiledResourcesTier >= D3D12_TILED_RESOURCES_TIER_1;
// Tiled resources required for shared memory emulation without excessive
// video memory usage.
if (FLAGS_d3d12_tiled_resources &&
options.TiledResourcesTier < D3D12_TILED_RESOURCES_TIER_1) {
return false;
}
return true;
}
std::unique_ptr<GraphicsContext> D3D12Provider::CreateContext(