Skip to content

Commit

Permalink
vkd3d: Disable NV DGCC on Halo Infinite
Browse files Browse the repository at this point in the history
Disable VK_NV_device_generated_commands_compute on Halo infinite
until the bug is fixed.
  • Loading branch information
vkushwaha-nv authored and HansKristian-Work committed Apr 15, 2024
1 parent bdc8e7e commit 1d73fdc
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 3 deletions.
1 change: 1 addition & 0 deletions include/vkd3d.h
Expand Up @@ -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;

Expand Down
7 changes: 4 additions & 3 deletions libs/vkd3d/device.c
Expand Up @@ -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 },
Expand Down Expand Up @@ -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");
}
}

Expand Down

0 comments on commit 1d73fdc

Please sign in to comment.