Refactor Vulkan extensions handling #1161
No reviewers
Labels
No labels
0.9
3rd party
bug
documentation
duplicate
enhancement
invalid
linux
master
question
undetermined
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
roman/OptiScaler2!1161
Loading…
Reference in a new issue
No description provided.
Delete branch "Astyyyyy/vk-extensions-refactor"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
bit of a refactor for vulkan extensions, and adding enabling of feature structs support, and ability to enable radv's impl of
VK_NV_COOPERATIVE_MATRIX_2_EXTENSION_NAMEsince its locked behind a env var, or vkd3d 😐 and also update latest vulkan headers for missing extensionsIs this a bug fix or improvement?
Im merely curious 🙂
@ -26,2 +26,3 @@// It's applied even if ffx is already signed, could be improvedif ((pathString.contains("amd_fidelityfx_dx12.dll") || pathString.contains("amd_fidelityfx_vk.dll")) &&if ((pathString.contains("amd_fidelityfx_dx12.dll") || pathString.contains("amd_fidelityfx_upscaler_vk.dll") ||pathString.contains("amd_fidelityfx_vk.dll")) &&Is this needed? That code is basically a hack to allow the driver override to work with unsigned dlls. Don't think that's needed for vk.
I was under the impression that this extension is not required for vkd3d-proton to have fsr4 working. Is it required in this case?
@ -5,6 +5,7 @@#include "CommandBuffer_StateTracker.h"#include <vulkan/vulkan.hpp>#include <vulkan/vulkan_beta.h>Due to VK_NV_cooperative_matrix2?
@ -27,2 +27,3 @@if (path.contains("amd_fidelityfx_dx12.dll") || path.contains("amd_fidelityfx_vk.dll"))if (path.contains("amd_fidelityfx_dx12.dll") || path.contains("amd_fidelityfx_upscaler_vk.dll") ||path.contains("amd_fidelityfx_vk.dll"))Same as Crypt32_Hooks.h
@ -381,0 +724,4 @@if (HasExtension(pCreateInfo, VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME) &&!HasExtension(pCreateInfo, VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME))EnableFeatureStruct(pCreateInfo, getFeatures2, physicalDevice, modifiedFeatures, bufferDeviceAddress,&VkPhysicalDeviceBufferDeviceAddressFeatures::bufferDeviceAddress);If addExtension checks if an extension is supported then we might not need this check. Pascal and older dont have the nvx extensions thats why this check if here
@ -381,0 +724,4 @@if (HasExtension(pCreateInfo, VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME) &&!HasExtension(pCreateInfo, VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME))EnableFeatureStruct(pCreateInfo, getFeatures2, physicalDevice, modifiedFeatures, bufferDeviceAddress,&VkPhysicalDeviceBufferDeviceAddressFeatures::bufferDeviceAddress);Could we maybe get a log when we/the game wants an extension but it's not supported? There is the issue of matrix2 which may not be required but will be logged here.
Maybe something similar to GetSupportedFeatureStruct, im not quite sure. Would save us from having those nvidia checks later on. The idea would be "add VK_NV_LOW_LATENCY_EXTENSION_NAME, if not supported then log and skip"
its not required, but radv only enables it when vkd3d is detected as running, so for native vk we need some way to enable outside user just plopping a env var in launch
@ -26,2 +26,3 @@// It's applied even if ffx is already signed, could be improvedif ((pathString.contains("amd_fidelityfx_dx12.dll") || pathString.contains("amd_fidelityfx_vk.dll")) &&if ((pathString.contains("amd_fidelityfx_dx12.dll") || pathString.contains("amd_fidelityfx_upscaler_vk.dll") ||pathString.contains("amd_fidelityfx_vk.dll")) &&tru, yea i can remove, ill just check games dont actually explode when their original vk dll is gone though first
@ -381,0 +724,4 @@if (HasExtension(pCreateInfo, VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME) &&!HasExtension(pCreateInfo, VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME))EnableFeatureStruct(pCreateInfo, getFeatures2, physicalDevice, modifiedFeatures, bufferDeviceAddress,&VkPhysicalDeviceBufferDeviceAddressFeatures::bufferDeviceAddress);alr ive removed the nvidia checks and added the extra logging, so just checks if its supported then skips if not
hm k
View command line instructions
Manual merge helper
Use this merge commit message when completing the merge manually.
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.