radv: add initial support for VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT
authorTimothy Arceri <tarceri@itsqueeze.com>
Tue, 8 May 2018 04:57:55 +0000 (14:57 +1000)
committerTimothy Arceri <tarceri@itsqueeze.com>
Sat, 12 May 2018 23:58:33 +0000 (09:58 +1000)
commitce188813bfe63068119cbf3d0f76e1ea3d27b722
treeb9305dcd3b09ab8efa67d1cb1a89e7c7965b4667
parent26ddc4f9e103be495bd1720c07ba255e30523983
radv: add initial support for VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT

When VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT is set we skip NIR
linking optimisations and only run over the NIR optimisation loop
once similar to the GLSLOptimizeConservatively constant used by
some GL drivers.

We need to run over the opts at least once to avoid errors in LLVM
(e.g. dead vars it can't handle) and also to reduce the time spent
compiling the IR in LLVM.

With this change the Blacksmith Unity demos compilation times
go from 329760 ms -> 299881 ms when using Wine and DXVK.

V2: add bit to radv_pipeline_key

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106246
src/amd/vulkan/radv_pipeline.c
src/amd/vulkan/radv_private.h
src/amd/vulkan/radv_shader.c
src/amd/vulkan/radv_shader.h