Skip to content
  • Shahbaz Youssefi's avatar
    Vulkan: SPIR-V Gen: Drop dependency to glslang · f3d5dac3
    Shahbaz Youssefi authored
    The SPIR-V gen path is now made default.  Compilation through glslang is
    still supported for debugging, and is enabled on the GLSL* end2end tests
    for smoke testing.  On release builds, glslang is not supported.
    
    To test with glslang, add the following gn arg (only necessary if dcheck
    is disabled):
    
        angle_enable_spirv_gen_through_glslang = true
    
    Then enable the generateSPIRVThroughGlslang feature.  This can be done
    by setting an environment variable:
    
        ANGLE_FEATURE_OVERRIDES_ENABLED=generateSPIRVThroughGlslang ./angle_deqp_gles2_tests
    
    Binary size saving:
    
    - 1.3MB on Linux (SPIR-V gen itself: 240KB)
    - 730KB on Android (SPIR-V gen itself: 140KB)
    
    Perf tests:
    
    - LinkProgramBenchmark.Run/vulkan_compile_single_thread
      * Through glslang:
          truncated mean: 1287033.36
      * Direct SPIR-V Gen:
          truncated mean: 244495.91  (~80% reduction)
    
    - LinkProgramBenchmark.Run/vulkan_compile_multi_thread
      * Through glslang:
          truncated mean: 4565894.83
      * Direct SPIR-V Gen:
          truncated mean: 1158164.10  (~75% reduction)
    
    Bug: angleproject:4889
    Bug: angleproject:6210
    Change-Id: I486342702977c8114e90073b97183aba115a8b2d
    Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3115140
    
    
    Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
    Reviewed-by: default avatarJamie Madill <jmadill@chromium.org>
    Reviewed-by: default avatarTim Van Patten <timvp@google.com>
    f3d5dac3