diff --git a/include/vkd3d.h b/include/vkd3d.h index 11fe125b4c..3e3f3a4b6c 100644 --- a/include/vkd3d.h +++ b/include/vkd3d.h @@ -85,7 +85,7 @@ extern "C" { #define VKD3D_CONFIG_FLAG_SHADER_CACHE_SYNC (1ull << 27) #define VKD3D_CONFIG_FLAG_FORCE_RAW_VA_CBV (1ull << 28) #define VKD3D_CONFIG_FLAG_DXR_1_2 (1ull << 29) -#define VKD3D_CONFIG_FLAG_ALLOW_SBT_COLLECTION (1ull << 30) +/* Bit 30 is vacant */ #define VKD3D_CONFIG_FLAG_PLACED_TEXTURE_ALIASING (1ull << 31) #define VKD3D_CONFIG_FLAG_USE_HOST_IMPORT_FALLBACK (1ull << 32) #define VKD3D_CONFIG_FLAG_PREALLOCATE_SRV_MIP_CLAMPS (1ull << 33) diff --git a/libs/vkd3d/device.c b/libs/vkd3d/device.c index 358a9d9d02..d23bc64fe4 100644 --- a/libs/vkd3d/device.c +++ b/libs/vkd3d/device.c @@ -572,7 +572,7 @@ static const struct vkd3d_instance_application_meta application_override[] = { { VKD3D_STRING_COMPARE_EXACT, "Sam4.exe", VKD3D_CONFIG_FLAG_FORCE_NO_INVARIANT_POSITION | VKD3D_CONFIG_FLAG_SMALL_VRAM_REBAR, 0 }, /* Cyberpunk 2077 (1091500). For whatever reason, anti-lag is always used if it is supported (impossible to disable), * leading to bad performance in some cases. Currently only affects Proton-GE which ships amdxc64.dll shim by default. */ - { VKD3D_STRING_COMPARE_EXACT, "Cyberpunk2077.exe", VKD3D_CONFIG_FLAG_ALLOW_SBT_COLLECTION, 0, VKD3D_APPLICATION_FEATURE_DISABLE_ANTI_LAG }, + { VKD3D_STRING_COMPARE_EXACT, "Cyberpunk2077.exe", 0, 0, VKD3D_APPLICATION_FEATURE_DISABLE_ANTI_LAG }, /* Control (870780). Control fails to detect DXR if 1.1 is exposed. */ { VKD3D_STRING_COMPARE_EXACT, "Control_DX12.exe", 0, 0, VKD3D_APPLICATION_FEATURE_LIMIT_DXR_1_0 }, /* Hellblade: Senua's Sacrifice (414340). Enables RT by default if supported which is ... jarring and particularly jarring on Deck. */ @@ -654,6 +654,8 @@ static const struct vkd3d_instance_application_meta application_override[] = { { VKD3D_STRING_COMPARE_EXACT, "Endless Legend 2.exe", VKD3D_CONFIG_FLAG_ENABLE_DXBC_SPIRV, 0 }, /* Red Dead Redemption 2 (1174180). Broken shader compilation with legacy compiler. */ { VKD3D_STRING_COMPARE_EXACT, "RDR2.exe", VKD3D_CONFIG_FLAG_ENABLE_DXBC_SPIRV, 0 }, + /* NBA2K26 (3472040). Uses an extreme number of queues which trip bad submission paths. */ + { VKD3D_STRING_COMPARE_EXACT, "NBA2K26.exe", VKD3D_CONFIG_FLAG_NO_STAGGERED_SUBMIT, 0 }, { VKD3D_STRING_COMPARE_NEVER, NULL, 0, 0 } }; @@ -1107,7 +1109,6 @@ static const struct vkd3d_debug_option vkd3d_config_options[] = {"pipeline_library_app_cache", VKD3D_CONFIG_FLAG_PIPELINE_LIBRARY_APP_CACHE_ONLY}, {"shader_cache_sync", VKD3D_CONFIG_FLAG_SHADER_CACHE_SYNC}, {"force_raw_va_cbv", VKD3D_CONFIG_FLAG_FORCE_RAW_VA_CBV}, - {"allow_sbt_collection", VKD3D_CONFIG_FLAG_ALLOW_SBT_COLLECTION}, {"host_import_fallback", VKD3D_CONFIG_FLAG_USE_HOST_IMPORT_FALLBACK}, {"preallocate_srv_mip_clamps", VKD3D_CONFIG_FLAG_PREALLOCATE_SRV_MIP_CLAMPS}, {"force_initial_transition", VKD3D_CONFIG_FLAG_FORCE_INITIAL_TRANSITION}, diff --git a/libs/vkd3d/raytracing_pipeline.c b/libs/vkd3d/raytracing_pipeline.c index 42935a8e38..f42ca4fdc2 100644 --- a/libs/vkd3d/raytracing_pipeline.c +++ b/libs/vkd3d/raytracing_pipeline.c @@ -2633,22 +2633,6 @@ static HRESULT d3d12_state_object_init(struct d3d12_rt_state_object *object, object->device = device; object->type = desc->Type; - if (object->type == D3D12_STATE_OBJECT_TYPE_COLLECTION && - (vkd3d_config_flags & VKD3D_CONFIG_FLAG_ALLOW_SBT_COLLECTION) && - !device->device_info.pipeline_library_group_handles_features.pipelineLibraryGroupHandles) - { - /* It seems to be valid to query shader identifiers from a COLLECTION which is pure insanity. - * We can fake this behavior if we pretend we have ALLOW_STATE_OBJECT_ADDITIONS and RTPSO. - * We will validate that the "COLLECTION" matches the consuming RTPSO. - * If the collection does not contain an RGEN shader, we're technically out of spec here. */ - - /* If we have pipeline library group handles feature however, - * we can ignore this workaround and do it properly. */ - INFO("Promoting COLLECTION to RAYTRACING_PIPELINE as workaround.\n"); - object->type = D3D12_STATE_OBJECT_TYPE_RAYTRACING_PIPELINE; - object->flags |= D3D12_STATE_OBJECT_FLAG_ALLOW_STATE_OBJECT_ADDITIONS; - } - memset(&data, 0, sizeof(data)); if (FAILED(hr = d3d12_state_object_parse_subobjects(object, desc, parent, &data)))