angle/samples/shader_translator
Shahbaz Youssefi 776c60150b Vulkan: Call glslang at compile time
With this change, the ANGLE translator immediately compiles the
generated GLSL into SPIR-V with glslang and discards the source.  This
is in preparation for generating SPIR-V directly, by making the frontend
and backend already able to digest it.

This change also allows the expensive glslang calls to be parallelized,
improving the following perf test by about 20%:

    LinkProgramBenchmark.Run/vulkan_compile_and_link_multi_thread

Previously, the test was run as such in the Vulkan backend:

    Main           Thread 1          Thread 2
    Compile1 --->
    Compile2 --------------------->
                  Translator        Translator
             <---
             <---------------------
    Link

    glslang
     for
      shader1

    glslang
     for
      shader2

    Done

With this change, it is run as such:

    Main           Thread 1          Thread 2
    Compile1 --->
    Compile2 --------------------->
                  Translator        Translator
                   glslang           glslang
             <---
             <---------------------
    Link
    Done

glslang_wrapper_utils no longer interacts with glslang! A rename will
follow.

Bug: angleproject:4889
Change-Id: If4303e8ba0ba43b1a2f47f8c0a9133d0bee1a19a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2721195
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2021-03-25 19:53:52 +00:00
..
shader_translator.cpp