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>
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| runner | Loading commit data... | |
| third_party | Loading commit data... | |
| ANGLETest.cpp | Loading commit data... | |
| ANGLETest.h | Loading commit data... | |
| ConstantFoldingTest.cpp | Loading commit data... | |
| ConstantFoldingTest.h | Loading commit data... | |
| MultiviewTest.cpp | Loading commit data... | |
| MultiviewTest.h | Loading commit data... | |
| ShaderCompileTreeTest.cpp | Loading commit data... | |
| ShaderCompileTreeTest.h | Loading commit data... | |
| ShaderExtensionTest.h | Loading commit data... | |
| VulkanExternalHelper.cpp | Loading commit data... | |
| VulkanExternalHelper.h | Loading commit data... | |
| angle_test_configs.cpp | Loading commit data... | |
| angle_test_configs.h | Loading commit data... | |
| angle_test_instantiate.cpp | Loading commit data... | |
| angle_test_instantiate.h | Loading commit data... | |
| angle_test_instantiate_apple.h | Loading commit data... | |
| angle_test_instantiate_apple.mm | Loading commit data... | |
| angle_test_platform.cpp | Loading commit data... | |
| angle_test_platform.h | Loading commit data... | |
| compiler_test.cpp | Loading commit data... | |
| compiler_test.h | Loading commit data... | |
| draw_call_perf_utils.cpp | Loading commit data... | |
| draw_call_perf_utils.h | Loading commit data... | |
| gl_raii.h | Loading commit data... |