- 09 Jul, 2020 2 commits
-
-
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).
-
John Kessenich authored
Use CMake's builtin functionality for pre-compiled headers
-
- 07 Jul, 2020 8 commits
-
-
John Kessenich authored
Make sure glslang_angle has a definition in BUILD.gn
-
Ryan Harrison authored
Set the value to false if the environment doesn't declare this variable.
-
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.
-
John Kessenich authored
Remove GLSLANG_BUILD_PIC flag
-
John Kessenich authored
Add new rules to .gitignore
-
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.
-
Ben Clayton authored
`GenericCodeGen` and `MachineIndependent` were missing from the generated visual studio solutions. Add these.
-
Ben Clayton authored
`.vscode/` ignores Visual Studio Code user config files `bazel-*` ignores bazel build system symlinks. `out/` ignores the default output directory for Visual Studio generated files.
-
- 06 Jul, 2020 3 commits
-
-
John Kessenich authored
gn: Fix dawn tests in Chromium
-
John Kessenich authored
Add --quiet option.
-
Marcin Ślusarz authored
Being quiet should have been the default, but I guess it's too late now to change it.
-
- 05 Jul, 2020 3 commits
-
-
Shahbaz Youssefi authored
Dawn tests use shaderc, which assumes glslang has HLSL support. This change makes HLSL support also follow template arguments, and changes the target names such that glslang_sources will remain the "has all features" target and the new glslang_lib_sources would be what ANGLE would use. Signed-off-by:Shahbaz Youssefi <ShabbyX@gmail.com>
-
John Kessenich authored
gn: Fix `gn gen --check` by adding missing dependency
-
Shahbaz Youssefi authored
Signed-off-by:Shahbaz Youssefi <ShabbyX@gmail.com>
-
- 04 Jul, 2020 3 commits
-
-
John Kessenich authored
gn: Optionally disable optimizations and HLSL
-
John Kessenich authored
Add GLSLANG_BUILD_PIC CMake flag
-
John Kessenich authored
Don't use add_link_options() on old CMake versions
-
- 03 Jul, 2020 9 commits
-
-
Ben Clayton authored
Enables `-fPIC` compiler flag even when building statically. This is helpful for statically linking a `glslang` target into a shared library. Simplifies the workarounds seen in google/shaderc#1093 to a `set(GLSLANG_BUILD_PIC 1)`.
-
Shahbaz Youssefi authored
To reduce the binary size of ANGLE, a gn override is added (glslang_angle) which: - Controls whether ENABLE_OPT=1 is set - Customizes the build for the Vulkan backend of ANGLE. As a first step, this removes HLSL functionality which together with no optimization shave ~2.5MB off of ANGLE's binary size. Upcoming changes will add a macro for GLSLANG_ANGLE similar to GLSLANG_WEB that will strip features from glslang to support only what ANGLE needs. Signed-off-by:Shahbaz Youssefi <ShabbyX@gmail.com>
-
Ben Clayton authored
Fixes: #2315
-
John Kessenich authored
Kokoro: Correct the `build_file' path to build.sh
-
John Kessenich authored
License headers: s/Google/The Khronos Group
-
Ben Clayton authored
This was a copy-paste screwup, where the first line of the copyright had the company name was updated, but the company name mid way though was not.
-
Ben Clayton authored
-
John Kessenich authored
Add license checking continuous and presubmit tests
-
John Kessenich authored
Fix GLSLANG_IS_SHARED_LIBRARY define
-
- 02 Jul, 2020 6 commits
-
-
Ben Clayton authored
The `license-checker` is a tool that verifies each file has contains a permitted license header. See https://github.com/ben-clayton/license-checker for more information.
-
Ben Clayton authored
It was incorrectly always being set, causing linker warnings for MSVC builds. Also simplify the preprocessor nesting in `glslang\Public\ShaderLang.h`
-
Ben Clayton authored
Add copyright headers to build files and scripts. Simplifies automated scanning for bad license headers.
-
John Kessenich authored
HLSL: Fix #pragma pack_matrix(row_major) not work on global uniforms
-
John Kessenich authored
glslang: Only export public interface for SOs
-
John Kessenich authored
-
- 01 Jul, 2020 6 commits
-
-
John Kessenich authored
Location validation, with update to SPIR-V tools validating location
-
John Kessenich authored
This introduces five new "Validation failures": - baseResults/hlsl.semantic.vert: issue with gl_ClipDistance/CullDistance - baseResults/spv.430.vert: issue gl_ClipDistance - baseResults/spv.450.tesc: still unknown - baseResults/spv.dataOut.frag: gl_FragData should not be supported, problem with front end - baseResults/spv.meshShaderPerViewUserDefined.mesh: seems okay, maybe a problem with SPIRV-Tools
-
John Kessenich authored
This adds or changes binding/location decorations in 100s of shaders. It also allows more output (spv.register.autoassign.rangetest.frag) due to allowing ioMap() to fail.
-
John Kessenich authored
Add additional licenses in use to LICENSE.txt
-
Ben Clayton authored
Ideally we'd unify the licenses in use by changing the licenses in the file headers to BSD-3-clause. Until then, let's correctly list all the licenses currently in use. Issue: #2305
-
John Kessenich authored
Related to https://github.com/KhronosGroup/SPIRV-Cross/issues/1414. The real problem is either using DX10 semantics for DX9 or missing functionality in DX10 parsing.
-