Vulkan/Device: Allow to specify additionnal layers and extensions
Former-commit-id: adad0618a4a7a93c246cc97297e69601ee7af24c [formerly e8a833ff02f357280d80910c5f983d379054f82a] Former-commit-id: d2cf201e725836a709b2c633ea5c1c155e9bbc4f
This commit is contained in:
parent
e332f2f77e
commit
1634311008
|
|
@ -219,8 +219,31 @@ namespace Nz
|
||||||
queueCreateInfos.emplace_back(createInfo);
|
queueCreateInfos.emplace_back(createInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::array<const char*, 1> enabledExtensions = {VK_KHR_SWAPCHAIN_EXTENSION_NAME};
|
|
||||||
std::array<const char*, 0> enabledLayers;
|
std::vector<const char*> enabledLayers;
|
||||||
|
std::vector<const char*> enabledExtensions;
|
||||||
|
|
||||||
|
bool bParam;
|
||||||
|
if (!s_initializationParameters.GetBooleanParameter("VkDeviceInfo_OverrideEnabledExtensions", &bParam) || !bParam)
|
||||||
|
enabledExtensions.push_back(VK_KHR_SWAPCHAIN_EXTENSION_NAME);
|
||||||
|
|
||||||
|
int iParam;
|
||||||
|
std::vector<String> additionalExtensions; // Just to keep the String alive
|
||||||
|
if (s_initializationParameters.GetIntegerParameter("VkDeviceInfo_EnabledExtensionCount", &iParam))
|
||||||
|
{
|
||||||
|
for (int i = 0; i < iParam; ++i)
|
||||||
|
{
|
||||||
|
Nz::String parameterName = "VkDeviceInfo_EnabledExtension" + String::Number(i);
|
||||||
|
Nz::String extension;
|
||||||
|
if (s_initializationParameters.GetStringParameter(parameterName, &extension))
|
||||||
|
{
|
||||||
|
additionalExtensions.emplace_back(std::move(extension));
|
||||||
|
enabledExtensions.push_back(additionalExtensions.back().GetConstBuffer());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
NazaraWarning("Parameter " + parameterName + " expected");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
VkDeviceCreateInfo createInfo = {
|
VkDeviceCreateInfo createInfo = {
|
||||||
VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO,
|
VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue