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 |
|---|---|---|
| .. | ||
| doc | Loading commit data... | |
| file_hooking | Loading commit data... | |
| shaders | Loading commit data... | |
| BUILD.gn | Loading commit data... | |
| BufferMtl.h | Loading commit data... | |
| BufferMtl.mm | Loading commit data... | |
| CompilerMtl.h | Loading commit data... | |
| CompilerMtl.mm | Loading commit data... | |
| ContextMtl.h | Loading commit data... | |
| ContextMtl.mm | Loading commit data... | |
| DisplayMtl.h | Loading commit data... | |
| DisplayMtl.mm | Loading commit data... | |
| DisplayMtl_api.h | Loading commit data... | |
| FrameBufferMtl.h | Loading commit data... | |
| FrameBufferMtl.mm | Loading commit data... | |
| ProgramMtl.h | Loading commit data... | |
| ProgramMtl.mm | Loading commit data... | |
| QueryMtl.h | Loading commit data... | |
| QueryMtl.mm | Loading commit data... | |
| RenderBufferMtl.h | Loading commit data... | |
| RenderBufferMtl.mm | Loading commit data... | |
| RenderTargetMtl.h | Loading commit data... | |
| RenderTargetMtl.mm | Loading commit data... | |
| SamplerMtl.h | Loading commit data... | |
| SamplerMtl.mm | Loading commit data... | |
| ShaderMtl.h | Loading commit data... | |
| ShaderMtl.mm | Loading commit data... | |
| SurfaceMtl.h | Loading commit data... | |
| SurfaceMtl.mm | Loading commit data... | |
| SyncMtl.h | Loading commit data... | |
| SyncMtl.mm | Loading commit data... | |
| TextureMtl.h | Loading commit data... | |
| TextureMtl.mm | Loading commit data... | |
| TransformFeedbackMtl.h | Loading commit data... | |
| TransformFeedbackMtl.mm | Loading commit data... | |
| VertexArrayMtl.h | Loading commit data... | |
| VertexArrayMtl.mm | Loading commit data... | |
| gen_mtl_format_table.py | Loading commit data... | |
| mtl_buffer_pool.h | Loading commit data... | |
| mtl_buffer_pool.mm | Loading commit data... | |
| mtl_command_buffer.h | Loading commit data... | |
| mtl_command_buffer.mm | Loading commit data... | |
| mtl_common.h | Loading commit data... | |
| mtl_common.mm | Loading commit data... | |
| mtl_format_map.json | Loading commit data... | |
| mtl_format_table_autogen.mm | Loading commit data... | |
| mtl_format_utils.h | Loading commit data... | |
| mtl_format_utils.mm | Loading commit data... | |
| mtl_glslang_utils.h | Loading commit data... | |
| mtl_glslang_utils.mm | Loading commit data... | |
| mtl_occlusion_query_pool.h | Loading commit data... | |
| mtl_occlusion_query_pool.mm | Loading commit data... | |
| mtl_render_utils.h | Loading commit data... | |
| mtl_render_utils.mm | Loading commit data... | |
| mtl_resources.h | Loading commit data... | |
| mtl_resources.mm | Loading commit data... | |
| mtl_state_cache.h | Loading commit data... | |
| mtl_state_cache.mm | Loading commit data... | |
| mtl_utils.h | Loading commit data... | |
| mtl_utils.mm | Loading commit data... |