mirror of
https://github.com/EduApps-CDG/OpenDX
synced 2024-12-30 09:45:37 +01:00
[dxvk] Disable CUDA interop extensions on 32-bit builds
This commit is contained in:
parent
8225891751
commit
b36fa75d1d
@ -1940,8 +1940,6 @@ namespace dxvk {
|
||||
enabled.extVertexAttributeDivisor.vertexAttributeInstanceRateDivisor = supported.extVertexAttributeDivisor.vertexAttributeInstanceRateDivisor;
|
||||
enabled.extVertexAttributeDivisor.vertexAttributeInstanceRateZeroDivisor = supported.extVertexAttributeDivisor.vertexAttributeInstanceRateZeroDivisor;
|
||||
|
||||
enabled.khrBufferDeviceAddress = supported.khrBufferDeviceAddress;
|
||||
|
||||
if (supported.extCustomBorderColor.customBorderColorWithoutFormat) {
|
||||
enabled.extCustomBorderColor.customBorderColors = VK_TRUE;
|
||||
enabled.extCustomBorderColor.customBorderColorWithoutFormat = VK_TRUE;
|
||||
|
@ -281,6 +281,7 @@ namespace dxvk {
|
||||
&devExtensions.extShaderViewportIndexLayer,
|
||||
&devExtensions.extTransformFeedback,
|
||||
&devExtensions.extVertexAttributeDivisor,
|
||||
&devExtensions.khrBufferDeviceAddress,
|
||||
&devExtensions.khrCreateRenderPass2,
|
||||
&devExtensions.khrDepthStencilResolve,
|
||||
&devExtensions.khrDrawIndirectCount,
|
||||
@ -291,15 +292,24 @@ namespace dxvk {
|
||||
&devExtensions.khrSwapchain,
|
||||
&devExtensions.nvxBinaryImport,
|
||||
&devExtensions.nvxImageViewHandle,
|
||||
&devExtensions.khrBufferDeviceAddress,
|
||||
}};
|
||||
|
||||
// VK_KHR_buffer_device_address can be expensive to enable on
|
||||
// some drivers; only enable selectively for Cuda interop
|
||||
if (m_deviceExtensions.supports(devExtensions.nvxBinaryImport.name()) &&
|
||||
m_deviceExtensions.supports(devExtensions.nvxImageViewHandle.name()))
|
||||
// Only enable Cuda interop extensions in 64-bit builds in
|
||||
// order to avoid potential driver or address space issues.
|
||||
// VK_KHR_buffer_device_address is expensive on some drivers.
|
||||
bool enableCudaInterop = !env::is32BitHostPlatform() &&
|
||||
m_deviceExtensions.supports(devExtensions.nvxBinaryImport.name()) &&
|
||||
m_deviceExtensions.supports(devExtensions.nvxImageViewHandle.name()) &&
|
||||
m_deviceFeatures.khrBufferDeviceAddress.bufferDeviceAddress;
|
||||
|
||||
if (enableCudaInterop) {
|
||||
devExtensions.nvxBinaryImport.setMode(DxvkExtMode::Optional);
|
||||
devExtensions.nvxImageViewHandle.setMode(DxvkExtMode::Optional);
|
||||
devExtensions.khrBufferDeviceAddress.setMode(DxvkExtMode::Optional);
|
||||
|
||||
enabledFeatures.khrBufferDeviceAddress.bufferDeviceAddress = VK_TRUE;
|
||||
}
|
||||
|
||||
DxvkNameSet extensionsEnabled;
|
||||
|
||||
if (!m_deviceExtensions.enableExtensions(
|
||||
|
@ -283,8 +283,8 @@ namespace dxvk {
|
||||
DxvkExt khrSamplerMirrorClampToEdge = { VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME, DxvkExtMode::Optional };
|
||||
DxvkExt khrShaderFloatControls = { VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME, DxvkExtMode::Optional };
|
||||
DxvkExt khrSwapchain = { VK_KHR_SWAPCHAIN_EXTENSION_NAME, DxvkExtMode::Required };
|
||||
DxvkExt nvxBinaryImport = { VK_NVX_BINARY_IMPORT_EXTENSION_NAME, DxvkExtMode::Optional };
|
||||
DxvkExt nvxImageViewHandle = { VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME, DxvkExtMode::Optional };
|
||||
DxvkExt nvxBinaryImport = { VK_NVX_BINARY_IMPORT_EXTENSION_NAME, DxvkExtMode::Disabled };
|
||||
DxvkExt nvxImageViewHandle = { VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME, DxvkExtMode::Disabled };
|
||||
DxvkExt khrBufferDeviceAddress = { VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME, DxvkExtMode::Disabled };
|
||||
};
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user