radv: force enable LLVM sisched for The Talos Principle
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Tue, 7 Nov 2017 09:02:32 +0000 (10:02 +0100)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Tue, 14 Nov 2017 14:21:50 +0000 (15:21 +0100)
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 <samuel.pitoiset@gmail.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
src/amd/vulkan/radv_device.c

index 471cecdd6ab9af73bb79fbfa37607e80e3e7aa65..50dbe061d50cb38e57cd7919aceb51d45edf274d 100644 (file)
@@ -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