1. 07 Jul, 2020 3 commits
    • Use CMake's builtin functionality for PCHs · 31cad227
      Ben Clayton authored
      `glslang_pch()` did manual mangling of the compiler flags to enable pre-compiled headers.
      I couldn't get this approach to work with the `MachineIndependent` subdirectory, but fortunately CMake has added first-class support for precompiled headers in 3.16, which does work with subdirectories.
      
      Moved `glslang_pch()` to the other global function declarations.
      
      `glslang_pch()` is a no-op when using CMake earlier than `3.16`.
      
      CMake's PCH implementation does not need the `pch.cpp` files, so just remove them.
    • Remove GLSLANG_BUILD_PIC flag · 3604be15
      Ben Clayton authored
      On closer inspection, it appears that nearly all the targets use the `POSITION_INDEPENDENT_CODE` target option anyway.
      Simplify all this away by always being PIC.
    • Add new static targets to VS solution folders · 948dc034
      Ben Clayton authored
      `GenericCodeGen` and `MachineIndependent` were missing from the generated visual studio solutions. Add these.
  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 7 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.