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.vertexAttributeInstanceRateDivisor = supported.extVertexAttributeDivisor.vertexAttributeInstanceRateDivisor;
|
||||||
enabled.extVertexAttributeDivisor.vertexAttributeInstanceRateZeroDivisor = supported.extVertexAttributeDivisor.vertexAttributeInstanceRateZeroDivisor;
|
enabled.extVertexAttributeDivisor.vertexAttributeInstanceRateZeroDivisor = supported.extVertexAttributeDivisor.vertexAttributeInstanceRateZeroDivisor;
|
||||||
|
|
||||||
enabled.khrBufferDeviceAddress = supported.khrBufferDeviceAddress;
|
|
||||||
|
|
||||||
if (supported.extCustomBorderColor.customBorderColorWithoutFormat) {
|
if (supported.extCustomBorderColor.customBorderColorWithoutFormat) {
|
||||||
enabled.extCustomBorderColor.customBorderColors = VK_TRUE;
|
enabled.extCustomBorderColor.customBorderColors = VK_TRUE;
|
||||||
enabled.extCustomBorderColor.customBorderColorWithoutFormat = VK_TRUE;
|
enabled.extCustomBorderColor.customBorderColorWithoutFormat = VK_TRUE;
|
||||||
|
@ -281,6 +281,7 @@ namespace dxvk {
|
|||||||
&devExtensions.extShaderViewportIndexLayer,
|
&devExtensions.extShaderViewportIndexLayer,
|
||||||
&devExtensions.extTransformFeedback,
|
&devExtensions.extTransformFeedback,
|
||||||
&devExtensions.extVertexAttributeDivisor,
|
&devExtensions.extVertexAttributeDivisor,
|
||||||
|
&devExtensions.khrBufferDeviceAddress,
|
||||||
&devExtensions.khrCreateRenderPass2,
|
&devExtensions.khrCreateRenderPass2,
|
||||||
&devExtensions.khrDepthStencilResolve,
|
&devExtensions.khrDepthStencilResolve,
|
||||||
&devExtensions.khrDrawIndirectCount,
|
&devExtensions.khrDrawIndirectCount,
|
||||||
@ -291,15 +292,24 @@ namespace dxvk {
|
|||||||
&devExtensions.khrSwapchain,
|
&devExtensions.khrSwapchain,
|
||||||
&devExtensions.nvxBinaryImport,
|
&devExtensions.nvxBinaryImport,
|
||||||
&devExtensions.nvxImageViewHandle,
|
&devExtensions.nvxImageViewHandle,
|
||||||
&devExtensions.khrBufferDeviceAddress,
|
|
||||||
}};
|
}};
|
||||||
|
|
||||||
// VK_KHR_buffer_device_address can be expensive to enable on
|
// Only enable Cuda interop extensions in 64-bit builds in
|
||||||
// some drivers; only enable selectively for Cuda interop
|
// order to avoid potential driver or address space issues.
|
||||||
if (m_deviceExtensions.supports(devExtensions.nvxBinaryImport.name()) &&
|
// VK_KHR_buffer_device_address is expensive on some drivers.
|
||||||
m_deviceExtensions.supports(devExtensions.nvxImageViewHandle.name()))
|
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);
|
devExtensions.khrBufferDeviceAddress.setMode(DxvkExtMode::Optional);
|
||||||
|
|
||||||
|
enabledFeatures.khrBufferDeviceAddress.bufferDeviceAddress = VK_TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
DxvkNameSet extensionsEnabled;
|
DxvkNameSet extensionsEnabled;
|
||||||
|
|
||||||
if (!m_deviceExtensions.enableExtensions(
|
if (!m_deviceExtensions.enableExtensions(
|
||||||
|
@ -283,8 +283,8 @@ namespace dxvk {
|
|||||||
DxvkExt khrSamplerMirrorClampToEdge = { VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME, DxvkExtMode::Optional };
|
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 khrShaderFloatControls = { VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME, DxvkExtMode::Optional };
|
||||||
DxvkExt khrSwapchain = { VK_KHR_SWAPCHAIN_EXTENSION_NAME, DxvkExtMode::Required };
|
DxvkExt khrSwapchain = { VK_KHR_SWAPCHAIN_EXTENSION_NAME, DxvkExtMode::Required };
|
||||||
DxvkExt nvxBinaryImport = { VK_NVX_BINARY_IMPORT_EXTENSION_NAME, DxvkExtMode::Optional };
|
DxvkExt nvxBinaryImport = { VK_NVX_BINARY_IMPORT_EXTENSION_NAME, DxvkExtMode::Disabled };
|
||||||
DxvkExt nvxImageViewHandle = { VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME, DxvkExtMode::Optional };
|
DxvkExt nvxImageViewHandle = { VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME, DxvkExtMode::Disabled };
|
||||||
DxvkExt khrBufferDeviceAddress = { VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME, DxvkExtMode::Disabled };
|
DxvkExt khrBufferDeviceAddress = { VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME, DxvkExtMode::Disabled };
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user