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 |
|---|---|---|
| .. | ||
| WindowTest | Loading commit data... | |
| capture_replay | Loading commit data... | |
| gles1 | Loading commit data... | |
| hello_triangle | Loading commit data... | |
| mip_map_2d | Loading commit data... | |
| multi_texture | Loading commit data... | |
| multi_window | Loading commit data... | |
| multiple_draw_buffers | Loading commit data... | |
| multiview | Loading commit data... | |
| particle_system | Loading commit data... | |
| post_sub_buffer | Loading commit data... | |
| sample_util | Loading commit data... | |
| shader_translator | Loading commit data... | |
| simple_instancing | Loading commit data... | |
| simple_texture_2d | Loading commit data... | |
| simple_texture_cubemap | Loading commit data... | |
| simple_vertex_shader | Loading commit data... | |
| stencil_operations | Loading commit data... | |
| tex_redef_microbench | Loading commit data... | |
| texture_wrap | Loading commit data... | |
| tri_fan_microbench | Loading commit data... | |
| BUILD.gn | Loading commit data... |