mirror of
https://github.com/doitsujin/dxvk.git
synced 2024-12-12 13:08:50 +01:00
[dxvk] Enable VK_NV_descriptor_pool_overallocation if available
This commit is contained in:
parent
2ff2c826a5
commit
7bc77b597e
@ -420,6 +420,10 @@ namespace dxvk {
|
|||||||
enabledFeatures.khrPresentWait.presentWait = VK_FALSE;
|
enabledFeatures.khrPresentWait.presentWait = VK_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Enable descriptor pool overallocation if supported
|
||||||
|
enabledFeatures.nvDescriptorPoolOverallocation.descriptorPoolOverallocation =
|
||||||
|
m_deviceFeatures.nvDescriptorPoolOverallocation.descriptorPoolOverallocation;
|
||||||
|
|
||||||
// Enable raw access chains for shader backends
|
// Enable raw access chains for shader backends
|
||||||
enabledFeatures.nvRawAccessChains.shaderRawAccessChains =
|
enabledFeatures.nvRawAccessChains.shaderRawAccessChains =
|
||||||
m_deviceFeatures.nvRawAccessChains.shaderRawAccessChains;
|
m_deviceFeatures.nvRawAccessChains.shaderRawAccessChains;
|
||||||
@ -612,6 +616,10 @@ namespace dxvk {
|
|||||||
enabledFeatures.khrPresentWait = *reinterpret_cast<const VkPhysicalDevicePresentWaitFeaturesKHR*>(f);
|
enabledFeatures.khrPresentWait = *reinterpret_cast<const VkPhysicalDevicePresentWaitFeaturesKHR*>(f);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV:
|
||||||
|
enabledFeatures.nvDescriptorPoolOverallocation = *reinterpret_cast<const VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV*>(f);
|
||||||
|
break;
|
||||||
|
|
||||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV:
|
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV:
|
||||||
enabledFeatures.nvRawAccessChains = *reinterpret_cast<const VkPhysicalDeviceRawAccessChainsFeaturesNV*>(f);
|
enabledFeatures.nvRawAccessChains = *reinterpret_cast<const VkPhysicalDeviceRawAccessChainsFeaturesNV*>(f);
|
||||||
break;
|
break;
|
||||||
@ -924,6 +932,11 @@ namespace dxvk {
|
|||||||
m_deviceFeatures.khrPresentWait.pNext = std::exchange(m_deviceFeatures.core.pNext, &m_deviceFeatures.khrPresentWait);
|
m_deviceFeatures.khrPresentWait.pNext = std::exchange(m_deviceFeatures.core.pNext, &m_deviceFeatures.khrPresentWait);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (m_deviceExtensions.supports(VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME)) {
|
||||||
|
m_deviceFeatures.nvDescriptorPoolOverallocation.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV;
|
||||||
|
m_deviceFeatures.nvDescriptorPoolOverallocation.pNext = std::exchange(m_deviceFeatures.core.pNext, &m_deviceFeatures.nvDescriptorPoolOverallocation);
|
||||||
|
}
|
||||||
|
|
||||||
if (m_deviceExtensions.supports(VK_NV_RAW_ACCESS_CHAINS_EXTENSION_NAME)) {
|
if (m_deviceExtensions.supports(VK_NV_RAW_ACCESS_CHAINS_EXTENSION_NAME)) {
|
||||||
m_deviceFeatures.nvRawAccessChains.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV;
|
m_deviceFeatures.nvRawAccessChains.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV;
|
||||||
m_deviceFeatures.nvRawAccessChains.pNext = std::exchange(m_deviceFeatures.core.pNext, &m_deviceFeatures.nvRawAccessChains);
|
m_deviceFeatures.nvRawAccessChains.pNext = std::exchange(m_deviceFeatures.core.pNext, &m_deviceFeatures.nvRawAccessChains);
|
||||||
@ -996,6 +1009,7 @@ namespace dxvk {
|
|||||||
&devExtensions.khrPresentWait,
|
&devExtensions.khrPresentWait,
|
||||||
&devExtensions.khrSwapchain,
|
&devExtensions.khrSwapchain,
|
||||||
&devExtensions.khrWin32KeyedMutex,
|
&devExtensions.khrWin32KeyedMutex,
|
||||||
|
&devExtensions.nvDescriptorPoolOverallocation,
|
||||||
&devExtensions.nvRawAccessChains,
|
&devExtensions.nvRawAccessChains,
|
||||||
&devExtensions.nvxBinaryImport,
|
&devExtensions.nvxBinaryImport,
|
||||||
&devExtensions.nvxImageViewHandle,
|
&devExtensions.nvxImageViewHandle,
|
||||||
@ -1136,6 +1150,11 @@ namespace dxvk {
|
|||||||
enabledFeatures.khrPresentWait.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.khrPresentWait);
|
enabledFeatures.khrPresentWait.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.khrPresentWait);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (devExtensions.nvDescriptorPoolOverallocation) {
|
||||||
|
enabledFeatures.nvDescriptorPoolOverallocation.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV;
|
||||||
|
enabledFeatures.nvDescriptorPoolOverallocation.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.nvDescriptorPoolOverallocation);
|
||||||
|
}
|
||||||
|
|
||||||
if (devExtensions.nvRawAccessChains) {
|
if (devExtensions.nvRawAccessChains) {
|
||||||
enabledFeatures.nvRawAccessChains.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV;
|
enabledFeatures.nvRawAccessChains.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV;
|
||||||
enabledFeatures.nvRawAccessChains.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.nvRawAccessChains);
|
enabledFeatures.nvRawAccessChains.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.nvRawAccessChains);
|
||||||
@ -1287,6 +1306,8 @@ namespace dxvk {
|
|||||||
"\n presentId : ", features.khrPresentId.presentId ? "1" : "0",
|
"\n presentId : ", features.khrPresentId.presentId ? "1" : "0",
|
||||||
"\n", VK_KHR_PRESENT_WAIT_EXTENSION_NAME,
|
"\n", VK_KHR_PRESENT_WAIT_EXTENSION_NAME,
|
||||||
"\n presentWait : ", features.khrPresentWait.presentWait ? "1" : "0",
|
"\n presentWait : ", features.khrPresentWait.presentWait ? "1" : "0",
|
||||||
|
"\n", VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME,
|
||||||
|
"\n descriptorPoolOverallocation : ", features.nvDescriptorPoolOverallocation.descriptorPoolOverallocation ? "1" : "0",
|
||||||
"\n", VK_NV_RAW_ACCESS_CHAINS_EXTENSION_NAME,
|
"\n", VK_NV_RAW_ACCESS_CHAINS_EXTENSION_NAME,
|
||||||
"\n shaderRawAccessChains : ", features.nvRawAccessChains.shaderRawAccessChains ? "1" : "0",
|
"\n shaderRawAccessChains : ", features.nvRawAccessChains.shaderRawAccessChains ? "1" : "0",
|
||||||
"\n", VK_NVX_BINARY_IMPORT_EXTENSION_NAME,
|
"\n", VK_NVX_BINARY_IMPORT_EXTENSION_NAME,
|
||||||
|
@ -71,6 +71,7 @@ namespace dxvk {
|
|||||||
VkPhysicalDeviceMaintenance5FeaturesKHR khrMaintenance5;
|
VkPhysicalDeviceMaintenance5FeaturesKHR khrMaintenance5;
|
||||||
VkPhysicalDevicePresentIdFeaturesKHR khrPresentId;
|
VkPhysicalDevicePresentIdFeaturesKHR khrPresentId;
|
||||||
VkPhysicalDevicePresentWaitFeaturesKHR khrPresentWait;
|
VkPhysicalDevicePresentWaitFeaturesKHR khrPresentWait;
|
||||||
|
VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV nvDescriptorPoolOverallocation;
|
||||||
VkPhysicalDeviceRawAccessChainsFeaturesNV nvRawAccessChains;
|
VkPhysicalDeviceRawAccessChainsFeaturesNV nvRawAccessChains;
|
||||||
VkBool32 nvxBinaryImport;
|
VkBool32 nvxBinaryImport;
|
||||||
VkBool32 nvxImageViewHandle;
|
VkBool32 nvxImageViewHandle;
|
||||||
|
@ -325,6 +325,7 @@ namespace dxvk {
|
|||||||
DxvkExt khrPresentWait = { VK_KHR_PRESENT_WAIT_EXTENSION_NAME, DxvkExtMode::Optional };
|
DxvkExt khrPresentWait = { VK_KHR_PRESENT_WAIT_EXTENSION_NAME, DxvkExtMode::Optional };
|
||||||
DxvkExt khrSwapchain = { VK_KHR_SWAPCHAIN_EXTENSION_NAME, DxvkExtMode::Required };
|
DxvkExt khrSwapchain = { VK_KHR_SWAPCHAIN_EXTENSION_NAME, DxvkExtMode::Required };
|
||||||
DxvkExt khrWin32KeyedMutex = { VK_KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME, DxvkExtMode::Optional };
|
DxvkExt khrWin32KeyedMutex = { VK_KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME, DxvkExtMode::Optional };
|
||||||
|
DxvkExt nvDescriptorPoolOverallocation = { VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME, DxvkExtMode::Optional };
|
||||||
DxvkExt nvRawAccessChains = { VK_NV_RAW_ACCESS_CHAINS_EXTENSION_NAME, DxvkExtMode::Optional };
|
DxvkExt nvRawAccessChains = { VK_NV_RAW_ACCESS_CHAINS_EXTENSION_NAME, DxvkExtMode::Optional };
|
||||||
DxvkExt nvxBinaryImport = { VK_NVX_BINARY_IMPORT_EXTENSION_NAME, DxvkExtMode::Disabled };
|
DxvkExt nvxBinaryImport = { VK_NVX_BINARY_IMPORT_EXTENSION_NAME, DxvkExtMode::Disabled };
|
||||||
DxvkExt nvxImageViewHandle = { VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME, DxvkExtMode::Disabled };
|
DxvkExt nvxImageViewHandle = { VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME, DxvkExtMode::Disabled };
|
||||||
|
Loading…
Reference in New Issue
Block a user