Win/Linux: Ship vk_swiftshader.dll vulkan-1.dll vk_swiftshader_icd.json for M91+

Issue #3176 resolved
Yonggang Luo created an issue

The new version chrome have the following vulkan software render shipped

2021/08/28  04:38         4,590,424 vk_swiftshader.dll
2021/08/28  04:10               106 vk_swiftshader_icd.json
2021/08/28  04:38           728,920 vulkan-1.dll

Comments (17)

  1. Marshall Greenblatt

    From https://bugs.chromium.org/p/chromium/issues/detail?id=1060139#c77 (M92+):

    Currently, Chrome uses legacy SwiftShader GL as the WebGL fallback when
    a hardware GPU isn't usable for the purpuse of rendering WebGL content.
    
    As we're in the process of changing legacy SwiftShader GL to SwANGLE,
    this CL adds a new flag which allows using SwANGLE for WebGL only.
    
    To clarify, current switches with legacy SwiftShader GL:
    Software GL: --use-gl=swiftshader
    Software WebGL only: --use-gl=swiftshader-webgl
    
    With SwANGLE, the new switches will be:
    Software GL: --use-gl=angle --use-angle=swiftshader
    Software WebGL only: --use-gl=angle --use-angle=swiftshader-webgl
    

    I would guess the intention is to stop shipping the “swiftshader” directory, but the timeframe for that is unclear.

  2. Marshall Greenblatt

    I’m inclined to wait on shipping these new files until swiftshader is deprecated/removed. If anyone will need these files sooner please explain the reason. Thanks.

  3. Marshall Greenblatt

    Thanks for the link. It may be worth a look at why the fallback logic in Chromium isn’t working.

  4. Marshall Greenblatt

    Is there a reason to defer shipping them?

    Not really, beyond the (prior) belief that they were redundant with the swiftshader libraries. I don’t really like shipping two rather large sets of optional binaries that do mostly the same thing. Perhaps we can just stop shipping swiftshader now, instead of waiting.

  5. Marshall Greenblatt

    Looks like we’ll need to ship these new binaries with M94+ because some content now fails to render via software that rendered previously (circa M91).

  6. Dmitry Azaraev

    I’m migrated to CEF 93 and start to ship vk_swiftshader.dll, vk_swiftshader_icd.json, vulkan-1.dll because CEF with --disable-gpu switch works, but WebGL effectively is not (like described in this issue). Chrome 94 still ship all of this binaries, so this would be easier and fair to ship this things regardless to how them used in practice. [Peoples who require hardware GPU always can exclude this from distribution, as deploy optimization, but rest of users never know what and how GPU fallback work.]

    Diff below looks like enough to ship them:

    diff --git tools/make_distrib.py tools/make_distrib.py
    index 838bc1834..a5f37a30d 100644
    --- tools/make_distrib.py
    +++ tools/make_distrib.py
    @@ -862,6 +862,9 @@ if platform == 'windows':
           {'path': 'v8_context_snapshot.bin', 'conditional': True},
           {'path': 'swiftshader\\libEGL.dll'},
           {'path': 'swiftshader\\libGLESv2.dll'},
    +      {'path': 'vk_swiftshader.dll'},
    +      {'path': 'vk_swiftshader_icd.json'},
    +      {'path': 'vulkan-1.dll'},
       ]
       # yapf: enable
    

  7. Marshall Greenblatt

    Distribute binaries for SwANGLE support (fixes issue #3176)

    Adds SwANGLE libraries that are required for software rendering on Windows and Linux. Updates README.txt documentation accordingly.

    → <<cset 582e0a0ab78a>>

  8. Marshall Greenblatt

    Distribute binaries for SwANGLE support (fixes issue #3176)

    Adds SwANGLE libraries that are required for software rendering on Windows and Linux. Updates README.txt documentation accordingly.

    → <<cset d6c534308b3b>>

  9. Marshall Greenblatt

    Distribute binaries for SwANGLE support (fixes issue #3176)

    Adds SwANGLE libraries that are required for software rendering on Windows and Linux. Updates README.txt documentation accordingly.

    → <<cset 10b22a327d96>>

  10. Marshall Greenblatt

    I’ve updated the README.txt for Windows but it’s hard to verify the documented behaviors. Please report any discrepancies that are discovered.

  11. Marshall Greenblatt

    Update to Chromium version 102.0.4997.0 (#990845)

    • Windows: SDK version 10.0.20348.0 is now required.
    • MacOS: SDK version 12.3 (Xcode 13.3) is now required.
    • Legacy swiftshader binaries (swiftshader/* on Win/Linux and libswiftshader_*.dylib on MacOS) have been removed (see issue #3176).

    → <<cset 916360e2e580>>

  12. Log in to comment