1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-02-02 20:52:13 +01:00
dxvk/src/util/util_luid.cpp

35 lines
723 B
C++
Raw Normal View History

#include "util_luid.h"
#include "util_string.h"
#include "./log/log.h"
#include <mutex>
#include <vector>
namespace dxvk {
LUID GetAdapterLUID(UINT Adapter) {
2021-06-28 19:19:29 +02:00
static dxvk::mutex s_mutex;
static std::vector<LUID> s_luids;
2021-06-28 19:19:29 +02:00
std::lock_guard<dxvk::mutex> lock(s_mutex);
uint32_t newLuidCount = Adapter + 1;
while (s_luids.size() < newLuidCount) {
LUID luid = { 0, 0 };
if (!::AllocateLocallyUniqueId(&luid))
Logger::err("Failed to allocate LUID");
Logger::info(str::format("Adapter LUID ", s_luids.size(), ": ",
std::hex, luid.HighPart, ":", luid.LowPart, std::dec));
s_luids.push_back(luid);
}
return s_luids[Adapter];
}
}