mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-02-24 04:54:14 +01:00
[dxvk] Enable VK_NV_low_latency2 if supported
This commit is contained in:
parent
066aedf085
commit
7bf6c917ee
@ -1027,6 +1027,7 @@ namespace dxvk {
|
|||||||
&devExtensions.khrSwapchain,
|
&devExtensions.khrSwapchain,
|
||||||
&devExtensions.khrWin32KeyedMutex,
|
&devExtensions.khrWin32KeyedMutex,
|
||||||
&devExtensions.nvDescriptorPoolOverallocation,
|
&devExtensions.nvDescriptorPoolOverallocation,
|
||||||
|
&devExtensions.nvLowLatency2,
|
||||||
&devExtensions.nvRawAccessChains,
|
&devExtensions.nvRawAccessChains,
|
||||||
&devExtensions.nvxBinaryImport,
|
&devExtensions.nvxBinaryImport,
|
||||||
&devExtensions.nvxImageViewHandle,
|
&devExtensions.nvxImageViewHandle,
|
||||||
@ -1177,6 +1178,9 @@ namespace dxvk {
|
|||||||
enabledFeatures.nvDescriptorPoolOverallocation.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.nvDescriptorPoolOverallocation);
|
enabledFeatures.nvDescriptorPoolOverallocation.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.nvDescriptorPoolOverallocation);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (devExtensions.nvLowLatency2.revision() >= 2)
|
||||||
|
enabledFeatures.nvLowLatency2 = VK_TRUE;
|
||||||
|
|
||||||
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);
|
||||||
@ -1332,6 +1336,8 @@ namespace dxvk {
|
|||||||
"\n presentWait : ", features.khrPresentWait.presentWait ? "1" : "0",
|
"\n presentWait : ", features.khrPresentWait.presentWait ? "1" : "0",
|
||||||
"\n", VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME,
|
"\n", VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME,
|
||||||
"\n descriptorPoolOverallocation : ", features.nvDescriptorPoolOverallocation.descriptorPoolOverallocation ? "1" : "0",
|
"\n descriptorPoolOverallocation : ", features.nvDescriptorPoolOverallocation.descriptorPoolOverallocation ? "1" : "0",
|
||||||
|
"\n", VK_NV_LOW_LATENCY_2_EXTENSION_NAME,
|
||||||
|
"\n extension supported : ", features.nvLowLatency2 ? "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,
|
||||||
|
@ -73,6 +73,7 @@ namespace dxvk {
|
|||||||
VkPhysicalDevicePresentIdFeaturesKHR khrPresentId;
|
VkPhysicalDevicePresentIdFeaturesKHR khrPresentId;
|
||||||
VkPhysicalDevicePresentWaitFeaturesKHR khrPresentWait;
|
VkPhysicalDevicePresentWaitFeaturesKHR khrPresentWait;
|
||||||
VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV nvDescriptorPoolOverallocation;
|
VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV nvDescriptorPoolOverallocation;
|
||||||
|
VkBool32 nvLowLatency2;
|
||||||
VkPhysicalDeviceRawAccessChainsFeaturesNV nvRawAccessChains;
|
VkPhysicalDeviceRawAccessChainsFeaturesNV nvRawAccessChains;
|
||||||
VkBool32 nvxBinaryImport;
|
VkBool32 nvxBinaryImport;
|
||||||
VkBool32 nvxImageViewHandle;
|
VkBool32 nvxImageViewHandle;
|
||||||
|
@ -327,6 +327,7 @@ namespace dxvk {
|
|||||||
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 nvDescriptorPoolOverallocation = { VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME, DxvkExtMode::Optional };
|
||||||
|
DxvkExt nvLowLatency2 = { VK_NV_LOW_LATENCY_2_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 };
|
||||||
|
@ -458,6 +458,14 @@ namespace dxvk::vk {
|
|||||||
VULKAN_FN(wine_vkAcquireKeyedMutex);
|
VULKAN_FN(wine_vkAcquireKeyedMutex);
|
||||||
VULKAN_FN(wine_vkReleaseKeyedMutex);
|
VULKAN_FN(wine_vkReleaseKeyedMutex);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef VK_NV_low_latency2
|
||||||
|
VULKAN_FN(vkSetLatencySleepModeNV);
|
||||||
|
VULKAN_FN(vkLatencySleepNV);
|
||||||
|
VULKAN_FN(vkSetLatencyMarkerNV);
|
||||||
|
VULKAN_FN(vkGetLatencyTimingsNV);
|
||||||
|
VULKAN_FN(vkQueueNotifyOutOfBandNV);
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user