[GPU] Removed nvapi
- According to reports d3d12_nvapi_use_driver_heap_priorities give no benefit
This commit is contained in:
@@ -34,8 +34,6 @@ DEFINE_int32(
|
||||
"system responsibility)",
|
||||
"D3D12");
|
||||
|
||||
DEFINE_bool(d3d12_nvapi_use_driver_heap_priorities, false, "nvidia stuff",
|
||||
"D3D12");
|
||||
namespace xe {
|
||||
namespace ui {
|
||||
namespace d3d12 {
|
||||
@@ -480,59 +478,14 @@ bool D3D12Provider::Initialize() {
|
||||
// Get the graphics analysis interface, will silently fail if PIX is not
|
||||
// attached.
|
||||
pfn_dxgi_get_debug_interface1_(0, IID_PPV_ARGS(&graphics_analysis_));
|
||||
if (GetAdapterVendorID() == ui::GraphicsProvider::GpuVendorID::kNvidia) {
|
||||
nvapi_ = new lightweight_nvapi::nvapi_state_t();
|
||||
if (!nvapi_->is_available()) {
|
||||
delete nvapi_;
|
||||
nvapi_ = nullptr;
|
||||
} else {
|
||||
using namespace lightweight_nvapi;
|
||||
|
||||
nvapi_createcommittedresource_ =
|
||||
(cb_NvAPI_D3D12_CreateCommittedResource)nvapi_->query_interface<void>(
|
||||
id_NvAPI_D3D12_CreateCommittedResource);
|
||||
nvapi_querycpuvisiblevidmem_ =
|
||||
(cb_NvAPI_D3D12_QueryCpuVisibleVidmem)nvapi_->query_interface<void>(
|
||||
id_NvAPI_D3D12_QueryCpuVisibleVidmem);
|
||||
nvapi_usedriverheappriorities_ =
|
||||
(cb_NvAPI_D3D12_UseDriverHeapPriorities)nvapi_->query_interface<void>(
|
||||
id_NvAPI_D3D12_UseDriverHeapPriorities);
|
||||
|
||||
if (nvapi_usedriverheappriorities_) {
|
||||
if (cvars::d3d12_nvapi_use_driver_heap_priorities) {
|
||||
if (nvapi_usedriverheappriorities_(device_) != 0) {
|
||||
XELOGI("Failed to enable driver heap priorities");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
uint32_t D3D12Provider::CreateUploadResource(
|
||||
D3D12_HEAP_FLAGS HeapFlags, _In_ const D3D12_RESOURCE_DESC* pDesc,
|
||||
D3D12_RESOURCE_STATES InitialResourceState, REFIID riidResource,
|
||||
void** ppvResource, bool try_create_cpuvisible,
|
||||
const D3D12_CLEAR_VALUE* pOptimizedClearValue) const {
|
||||
void** ppvResource, const D3D12_CLEAR_VALUE* pOptimizedClearValue) const {
|
||||
auto device = GetDevice();
|
||||
|
||||
if (try_create_cpuvisible && nvapi_createcommittedresource_) {
|
||||
lightweight_nvapi::NV_RESOURCE_PARAMS nvrp;
|
||||
nvrp.NVResourceFlags =
|
||||
lightweight_nvapi::NV_D3D12_RESOURCE_FLAG_CPUVISIBLE_VIDMEM;
|
||||
nvrp.version = 0; // nothing checks the version
|
||||
|
||||
if (nvapi_createcommittedresource_(
|
||||
device, &ui::d3d12::util::kHeapPropertiesUpload, HeapFlags, pDesc,
|
||||
InitialResourceState, pOptimizedClearValue, &nvrp, riidResource,
|
||||
ppvResource, nullptr) != 0) {
|
||||
XELOGI(
|
||||
"Failed to create CPUVISIBLE_VIDMEM upload resource, will just do "
|
||||
"normal CreateCommittedResource");
|
||||
} else {
|
||||
return UPLOAD_RESULT_CREATE_CPUVISIBLE;
|
||||
}
|
||||
}
|
||||
if (FAILED(device->CreateCommittedResource(
|
||||
&ui::d3d12::util::kHeapPropertiesUpload, HeapFlags, pDesc,
|
||||
InitialResourceState, pOptimizedClearValue, riidResource,
|
||||
|
||||
@@ -15,12 +15,6 @@
|
||||
#include "xenia/ui/d3d12/d3d12_api.h"
|
||||
#include "xenia/ui/graphics_provider.h"
|
||||
|
||||
// chrispy: this is here to prevent clang format from moving d3d12_nvapi above
|
||||
// the headers it depends on
|
||||
#define HEADERFENCE
|
||||
#undef HEADERFENCE
|
||||
#include "xenia/gpu/d3d12/d3d12_nvapi.hpp"
|
||||
|
||||
namespace xe {
|
||||
namespace ui {
|
||||
namespace d3d12 {
|
||||
@@ -47,7 +41,7 @@ class D3D12Provider : public GraphicsProvider {
|
||||
uint32_t CreateUploadResource(
|
||||
D3D12_HEAP_FLAGS HeapFlags, _In_ const D3D12_RESOURCE_DESC* pDesc,
|
||||
D3D12_RESOURCE_STATES InitialResourceState, REFIID riidResource,
|
||||
void** ppvResource, bool try_create_cpuvisible = false,
|
||||
void** ppvResource,
|
||||
const D3D12_CLEAR_VALUE* pOptimizedClearValue = nullptr) const;
|
||||
|
||||
IDXGIFactory2* GetDXGIFactory() const { return dxgi_factory_; }
|
||||
@@ -247,14 +241,6 @@ class D3D12Provider : public GraphicsProvider {
|
||||
bool ps_specified_stencil_reference_supported_;
|
||||
bool rasterizer_ordered_views_supported_;
|
||||
bool unaligned_block_textures_supported_;
|
||||
|
||||
lightweight_nvapi::nvapi_state_t* nvapi_;
|
||||
lightweight_nvapi::cb_NvAPI_D3D12_CreateCommittedResource
|
||||
nvapi_createcommittedresource_ = nullptr;
|
||||
lightweight_nvapi::cb_NvAPI_D3D12_UseDriverHeapPriorities
|
||||
nvapi_usedriverheappriorities_ = nullptr;
|
||||
lightweight_nvapi::cb_NvAPI_D3D12_QueryCpuVisibleVidmem
|
||||
nvapi_querycpuvisiblevidmem_ = nullptr;
|
||||
};
|
||||
|
||||
} // namespace d3d12
|
||||
|
||||
Reference in New Issue
Block a user