Skip to content

Commit

Permalink
Merge pull request #87206 from bruvzg/dx12_old_msvc
Browse files Browse the repository at this point in the history
Fix DX12 build on older MSVC versions, fix missing PIX include.
  • Loading branch information
akien-mga committed Jan 16, 2024
2 parents c16faca + 2893c0b commit 7d17496
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 6 deletions.
11 changes: 5 additions & 6 deletions drivers/d3d12/d3d12_context.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -55,12 +55,11 @@
#include <guiddef.h>

#include <dxguids.h>
#ifndef CLSID_D3D12DeviceFactory
// Note: symbol is not available in MinGW import library.
const CLSID CLSID_D3D12DeviceFactory = __uuidof(ID3D12DeviceFactory);
#endif
#endif

// Note: symbol is not available in MinGW and old MSVC import libraries.
const CLSID CLSID_D3D12DeviceFactoryGodot = __uuidof(ID3D12DeviceFactory);

extern "C" {
char godot_nir_arch_name[32];
}
Expand Down Expand Up @@ -825,9 +824,9 @@ void D3D12Context::_init_device_factory() {
ID3D12SDKConfiguration1 *sdk_config1 = nullptr;
if (SUCCEEDED(sdk_config->QueryInterface(&sdk_config1))) {
if (SUCCEEDED(sdk_config1->CreateDeviceFactory(agility_sdk_version, agility_sdk_path.ascii().get_data(), IID_PPV_ARGS(device_factory.GetAddressOf())))) {
d3d_D3D12GetInterface(CLSID_D3D12DeviceFactory, IID_PPV_ARGS(device_factory.GetAddressOf()));
d3d_D3D12GetInterface(CLSID_D3D12DeviceFactoryGodot, IID_PPV_ARGS(device_factory.GetAddressOf()));
} else if (SUCCEEDED(sdk_config1->CreateDeviceFactory(agility_sdk_version, ".\\", IID_PPV_ARGS(device_factory.GetAddressOf())))) {
d3d_D3D12GetInterface(CLSID_D3D12DeviceFactory, IID_PPV_ARGS(device_factory.GetAddressOf()));
d3d_D3D12GetInterface(CLSID_D3D12DeviceFactoryGodot, IID_PPV_ARGS(device_factory.GetAddressOf()));
}
sdk_config1->Release();
}
Expand Down
11 changes: 11 additions & 0 deletions drivers/d3d12/rendering_device_driver_d3d12.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,17 @@ extern "C" {
#undef UNUSED
#endif

#ifdef PIX_ENABLED
#if defined(__GNUC__)
#define _MSC_VER 1800
#endif
#define USE_PIX
#include "WinPixEventRuntime/pix3.h"
#if defined(__GNUC__)
#undef _MSC_VER
#endif
#endif

static const D3D12_RANGE VOID_RANGE = {};

static const uint32_t ROOT_CONSTANT_SPACE = RDD::MAX_UNIFORM_SETS + 1;
Expand Down

0 comments on commit 7d17496

Please sign in to comment.