Merge pull request #87206 from bruvzg/dx12_old_msvc

Fix DX12 build on older MSVC versions, fix missing PIX include.
This commit is contained in:
Rémi Verschelde 2024-01-16 10:37:12 +01:00
commit 7d17496535
No known key found for this signature in database
GPG key ID: C3336907360768E1
2 changed files with 16 additions and 6 deletions

View file

@ -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];
}
@ -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();
}

View file

@ -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;