1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-03-13 19:29:14 +01:00

[d3d9] Fix invalid strings returned by GetInstanceExtensions

This commit is contained in:
Jeff 2025-01-12 20:06:51 -08:00 committed by Philip Rebohle
parent d5832c3075
commit 5b7726cf6f
2 changed files with 7 additions and 6 deletions

View File

@ -115,18 +115,18 @@ namespace dxvk {
void DxvkInstance::createInstanceLoader(const DxvkInstanceImportInfo& args, DxvkInstanceFlags flags) {
DxvkNameList layerList;
DxvkNameSet extensionSet;
m_extensionSet = DxvkNameSet();
bool enablePerfEvents = false;
bool enableValidation = false;
if (args.instance) {
m_extensionNames = DxvkNameList(args.extensionCount, args.extensionNames);
extensionSet = getExtensionSet(m_extensionNames);
m_extensionSet = getExtensionSet(m_extensionNames);
auto extensionInfos = getExtensionList(m_extensions, true);
if (!extensionSet.enableExtensions(extensionInfos.size(), extensionInfos.data(), nullptr))
if (!m_extensionSet.enableExtensions(extensionInfos.size(), extensionInfos.data(), nullptr))
throw DxvkError("DxvkInstance: Required instance extensions not enabled");
} else {
// Hide VK_EXT_debug_utils behind an environment variable.
@ -160,14 +160,14 @@ namespace dxvk {
auto extensionInfos = getExtensionList(m_extensions, enableDebug);
DxvkNameSet extensionsAvailable = DxvkNameSet::enumInstanceExtensions(m_vkl);
if (!extensionsAvailable.enableExtensions(extensionInfos.size(), extensionInfos.data(), &extensionSet))
if (!extensionsAvailable.enableExtensions(extensionInfos.size(), extensionInfos.data(), &m_extensionSet))
throw DxvkError("DxvkInstance: Required instance extensions not supported");
for (const auto& provider : m_extProviders)
extensionSet.merge(provider->getInstanceExtensions());
m_extensionSet.merge(provider->getInstanceExtensions());
// Generate list of extensions to enable
m_extensionNames = extensionSet.toNameList();
m_extensionNames = m_extensionSet.toNameList();
}
Logger::info("Enabled instance extensions:");

View File

@ -165,6 +165,7 @@ namespace dxvk {
Rc<vk::LibraryFn> m_vkl;
Rc<vk::InstanceFn> m_vki;
DxvkInstanceExtensions m_extensions;
DxvkNameSet m_extensionSet;
DxvkNameList m_extensionNames;
VkDebugUtilsMessengerEXT m_messenger = VK_NULL_HANDLE;