https://bugs.freedesktop.org/show_bug.cgi?id=106246

            Bug ID: 106246
           Summary: radv: VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT and
                    bringing down initial pipeline compile times
           Product: Mesa
           Version: git
          Hardware: Other
                OS: All
            Status: NEW
          Severity: normal
          Priority: medium
         Component: Drivers/Vulkan/radeon
          Assignee: mesa-dev@lists.freedesktop.org
          Reporter: philip.rebo...@tu-dortmund.de
        QA Contact: mesa-dev@lists.freedesktop.org

Created attachment 139124
  --> https://bugs.freedesktop.org/attachment.cgi?id=139124&action=edit
volund-benchmark.sh

Hello,

a general issue encountered in DXVK is that pipelines have to be compiled at
draw time, as the pipeline state and the combination of shaders used for
rendering are not known in advance. This leads to noticable stutter in a lot of
games when the shader cache is cold.

The attached script measures the pipeline compile times of the Unity Blacksmith
demo, which can be downloaded here:
https://blogs.unity3d.com/2015/06/24/releasing-the-blacksmith/

I picked this demo because it warms the shader cache as part of its loading
process, making for a reproducible test case. On my Ryzen 2700X setup, all the
vkCreateGraphicsPipelines calls combined take about four minutes using the
"Higher" preset on mesa 18.0.1, llvm 6.0 and latest dxvk-master, where about
2/3rds of the total CPU time is spent inside LLVM, and 1/6th inside
libvulkan-radeon.

An optimization I have in mind for DXVK would be to use
VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT in order to reduce the initial
compile times, and to compile an optimized version of the pipeline
asynchronously in the background. However, this requires driver support for
VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT.

Please let me know if this is a viable option and if significant gains are to
be expected when implementing support for this flag in the driver.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to