From 8a7d4092d260b3781a443171e20ba0d2c8772131 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Tue, 7 Nov 2017 10:02:32 +0100 Subject: radv: force enable LLVM sisched for The Talos Principle It seems safe and it improves performance by +4% (73->76). A drirc based solution is not what we want for now, keep it simple and improve later if it's really needed. Signed-off-by: Samuel Pitoiset Reviewed-by: Dave Airlie --- src/amd/vulkan/radv_device.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c index 471cecdd6ab..50dbe061d50 100644 --- a/src/amd/vulkan/radv_device.c +++ b/src/amd/vulkan/radv_device.c @@ -341,6 +341,24 @@ radv_get_perftest_option_name(int id) return radv_perftest_options[id].string; } +static void +radv_handle_per_app_options(struct radv_instance *instance, + const VkApplicationInfo *info) +{ + const char *name = info ? info->pApplicationName : NULL; + + if (!name) + return; + + if (!strcmp(name, "Talos - Linux - 32bit") || + !strcmp(name, "Talos - Linux - 64bit")) { + /* Force enable LLVM sisched for Talos because it looks safe + * and it gives few more FPS. + */ + instance->perftest_flags |= RADV_PERFTEST_SISCHED; + } +} + VkResult radv_CreateInstance( const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, @@ -398,6 +416,8 @@ VkResult radv_CreateInstance( instance->perftest_flags = parse_debug_string(getenv("RADV_PERFTEST"), radv_perftest_options); + radv_handle_per_app_options(instance, pCreateInfo->pApplicationInfo); + if (instance->debug_flags & RADV_DEBUG_NO_SISCHED) { /* Disable sisched when the user requests it, this is mostly * useful when the driver force-enable sisched for the given -- cgit v1.2.3