1. 16 Jul, 2020 2 commits
  2. 15 Jul, 2020 1 commit
  3. 14 Jul, 2020 8 commits
  4. 13 Jul, 2020 8 commits
  5. 12 Jul, 2020 4 commits
  6. 11 Jul, 2020 1 commit
  7. 10 Jul, 2020 5 commits
  8. 09 Jul, 2020 2 commits
    • Generate build information from CHANGES.md · fbe9a23b
      Ben Clayton authored
      This PR significantly reworks the way glslang is versioned.
      
      Instead of committing changes to the `GLSLANG_MINOR_VERSION` define in
      `glslang/Public/ShaderLang.h`, and using `make-revision` to generate
      `GLSLANG_PATCH_LEVEL` in `glslang/Include/revision.h`, all version
      information is now derived from the new `CHANGES.md` file.
      
      `CHANGES.md` acts as the single source of truth for glslang version
      information, along with a convenient place to put all release notes for
      each notable change made.
      
      `CHANGES.md` is parsed using the new `build_info.py` python script.
      This script can read basic template files to produce new source files,
      which it does to read the new `build_info.h.tmpl` to generate (at build
      time) a glslang private header at
      `<build-dir>/include/glslang/build_info.h`.
      I've written generators for each of the CMake, Bazel, gn, and
      `Android.mk` build scripts.
      
      The new version code conforms to the Semantic Versioning 2.0 spec.
      
      This new version is also used by the CMake rules to produce versioned
      shared objects, including a major-versioned SONAME.
      
      New APIs:
      ---------
      
      * `glslang::GetVersion()` returns a `Version` struct with the version
        major, minor, patch and flavor.
      
      Breaking API changes:
      ---------------------
      
      * The public defines `GLSLANG_MINOR_VERSION` and `GLSLANG_PATCH_LEVEL`
        have been entirely removed.
      * `glslang/Public/ShaderLang.h` and `glslang/Include/revision.h` have
        been deleted.
      * Instead, `<build-dir>/include/glslang/build_info.h` is created in
        the build directory, and `<build-dir>/include` is a CMake `PUBLIC`
        (dependee-inherited) include directory for the glslang targets.
      * `<build-dir>/include/glslang/build_info.h` contains the following
         new #defines:
         `GLSLANG_VERSION_MAJOR`, `GLSLANG_VERSION_MINOR`,
         `GLSLANG_VERSION_PATCH`, `GLSLANG_VERSION_FLAVOR`,
         `GLSLANG_VERSION_GREATER_THAN(major, minor, patch)`,
         `GLSLANG_VERSION_GREATER_OR_EQUAL_TO(major, minor, patch)`,
         `GLSLANG_VERSION_LESS_THAN(major, minor, patch)`,
         `GLSLANG_VERSION_LESS_OR_EQUAL_TO(major, minor, patch)`
      *  The CMake install output directory contains a copy of
         `build_info.h` at: `include/glslang/build_info.h`
      *  Python3 is now always required to build glslang (likely always
         required for transitive dependency builds).
    • Merge pull request #2327 from ben-clayton/fix-pch · 5aaa0c2b
      John Kessenich authored
      Use CMake's builtin functionality for pre-compiled headers
  9. 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>
  10. 07 Jul, 2020 7 commits