1. 08 Jul, 2020 2 commits
    • Customize glslang.y to GLSLANG_ANGLE · 59fb2d63
      Shahbaz Youssefi authored
      glslang.y is specialized to remove what is not supported or won't be
      supported by ANGLE.
      
      This change shaves about 125KB off of ANGLE's binary size with minor
      improvement to the cost of SetupBuiltinSymbolTable.
      Signed-off-by: 's avatarShahbaz Youssefi <ShabbyX@gmail.com>
    • Use GLSLANG_ANGLE to strip features to what ANGLE requires · 8c49d15f
      Shahbaz Youssefi authored
      This change strips a few features similar to GLSLANG_WEB but doesn't
      remove every detail like the latter.  It also hardcodes profile/version
      to core/450.
      
      In particular, TBuiltIns::initialize is specialized to remove most of
      what is not supported or won't be supported by ANGLE.  The result of
      this function is parsed with TParseContext::parseShaderStrings which is
      a performance bottleneck.
      
      This change shaves about 300KB off of ANGLE's binary size and reduces
      the cost of SetupBuiltinSymbolTable to nearly a sixth.
      Signed-off-by: 's avatarShahbaz Youssefi <ShabbyX@gmail.com>
  2. 06 Jul, 2020 3 commits
  3. 05 Jul, 2020 3 commits
  4. 04 Jul, 2020 3 commits
  5. 03 Jul, 2020 9 commits
  6. 02 Jul, 2020 6 commits
  7. 01 Jul, 2020 6 commits
  8. 30 Jun, 2020 8 commits
    • Merge pull request #2302 from KhronosGroup/fix-texture-precision · 8d3f3b7d
      John Kessenich authored
      SPV: RelaxedPrecision: use the result precision for texture sampling.
    • Merge pull request #2300 from KhronosGroup/generalize-precision · d5b5215a
      John Kessenich authored
      SPV: RelaxedPrecision: Generalize fix #2293 to cover more operations.
    • glslang: Only export public interface for SOs · d64e8599
      Ben Clayton authored
      Default to `-fvisibility=hidden`, and annotate the public glslang interface with `GLSLANG_EXPORT` to change the visibility of these cherry-picked symbols to default.
      This is also used by Windows builds for `__declspec(dllexport)`-ing the public DLL interface.
      
      This allows us to classify API changes into those that are publicly backwards compatible, and those that are not.
      
      Note that `libSPIRV` will likely need similar treatment.
      
      Issues: #2283, #1484
    • Merge pull request #2301 from ben-clayton/split-libs · c858d7bd
      John Kessenich authored
      CMake: break up glslang into smaller static libs
    • CMake: break up glslang into smaller static libs · b8c3386e
      Ben Clayton authored
      Add `GenericCodeGen` and `MachineIndependent` static library targets.
      Privately import both of these into the `glslang` target.
      Privately import `MachineIndependent` into the  `SPIRV` target.
      
      This is done to break the dependency of `libglslang.so` non-public APIs from `libspirv.so`,
      which will become problematic once `glslang` hides its non-public symbols.
      
      | File                      | Before     |     After  |
      |---------------------------|-----------:|-----------:|
      | `libGenericCodeGen.a`     |  -         |   `527716` |
      | `libglslang.a`            | `68175944` |   `512938` |
      | `libHLSL.a`               |     `1428` |     `1428` |
      | `libMachineIndependent.a` |  -         | `67132202` |
      | `libOGLCompiler.a`        |    `75908` |    `75908` |
      | `libOSDependent.a`        |    `23768` |    `23768` |
      | `libSPIRV.a`              | `15710210` | `15710210` |
      | `libSPVRemapper.a`        |  `3250894` |  `3250894` |
      
      | File                                    | Before     |     After  |
      |-----------------------------------------|-----------:|-----------:|
      | `libglslang-default-resource-limits.so` |   `117032` |   `117032` |
      | `libglslang.so`                         | `22380688` | `22368216` |
      | `libHLSL.so`                            |     `7520` |     `7520` |
      | `libOGLCompiler.a`                      |    `75908` |    `75908` |
      | `libOSDependent.a`                      |    `23768` |    `23768` |
      | `libSPIRV.so`                           |  `7288336` | `28151016` |
      | `libSPVRemapper.so`                     |  `1940208` |  `1940208` |
      
      Issues: #2283, #1484
    • Merge pull request #2297 from ben-clayton/fpic · 8f4251a7
      John Kessenich authored
      CMake: Compile with -fPIC when building SOs
    • SPV: RelaxedPrecision: use the result precision for texture sampling. · 12c155f3
      John Kessenich authored
      Fix #2298.
      
      The AST has two precisions, an operation precision and a result precision.
      Actual use of GLSL with mediump samplers wants the result precision, so
      pick that up instead of the operation precision.
    • Merge pull request #2296 from ben-clayton/err-unresolved · 90f1d6ab
      John Kessenich authored
      CMake: Error on unresolved symbols