diff --git a/include/vkd3d.h b/include/vkd3d.h index 5dc87a80de..c14b4a5355 100644 --- a/include/vkd3d.h +++ b/include/vkd3d.h @@ -101,6 +101,7 @@ extern "C" { #define VKD3D_CONFIG_FLAG_DISABLE_UAV_COMPRESSION (1ull << 43) #define VKD3D_CONFIG_FLAG_DISABLE_DEPTH_COMPRESSION (1ull << 44) #define VKD3D_CONFIG_FLAG_DISABLE_COLOR_COMPRESSION (1ull << 45) +#define VKD3D_CONFIG_FLAG_DISABLE_NV_DGCC (1ull << 46) struct vkd3d_instance; diff --git a/libs/vkd3d/device.c b/libs/vkd3d/device.c index 7a77542660..18bafdf57f 100644 --- a/libs/vkd3d/device.c +++ b/libs/vkd3d/device.c @@ -531,7 +531,8 @@ static const struct vkd3d_instance_application_meta application_override[] = { { VKD3D_STRING_COMPARE_EXACT, "HaloInfinite.exe", VKD3D_CONFIG_FLAG_ZERO_MEMORY_WORKAROUNDS_COMMITTED_BUFFER_UAV | VKD3D_CONFIG_FLAG_FORCE_RAW_VA_CBV | VKD3D_CONFIG_FLAG_USE_HOST_IMPORT_FALLBACK | VKD3D_CONFIG_FLAG_PREALLOCATE_SRV_MIP_CLAMPS | - VKD3D_CONFIG_FLAG_REQUIRES_COMPUTE_INDIRECT_TEMPLATES | VKD3D_CONFIG_FLAG_NO_UPLOAD_HVV, 0 }, + VKD3D_CONFIG_FLAG_REQUIRES_COMPUTE_INDIRECT_TEMPLATES | VKD3D_CONFIG_FLAG_NO_UPLOAD_HVV | + VKD3D_CONFIG_FLAG_DISABLE_NV_DGCC, 0 }, /* (1182900) Workaround amdgpu kernel bug with host memory import and concurrent submissions. */ { VKD3D_STRING_COMPARE_EXACT, "APlagueTaleRequiem_x64.exe", VKD3D_CONFIG_FLAG_USE_HOST_IMPORT_FALLBACK | VKD3D_CONFIG_FLAG_DISABLE_UAV_COMPRESSION, 0 }, @@ -1440,11 +1441,11 @@ static void vkd3d_physical_device_info_apply_workarounds(struct vkd3d_physical_d info->properties2.properties.driverVersion >= VKD3D_DRIVER_VERSION_MAKE_NV(537, 0, 0) && info->properties2.properties.driverVersion < VKD3D_DRIVER_VERSION_MAKE_NV(537, 96, 0); - if (broken_version_linux || broken_version_windows) + if (broken_version_linux || broken_version_windows || (vkd3d_config_flags & VKD3D_CONFIG_FLAG_DISABLE_NV_DGCC)) { device->vk_info.NV_device_generated_commands_compute = false; device->device_info.device_generated_commands_compute_features_nv.deviceGeneratedCompute = VK_FALSE; - WARN("Disabling NV_dgcc due to bug in driver version.\n"); + WARN("Disabling NV_dgcc due to bug in driver version or config flag.\n"); } }