Revision history for Shaderc

v2020.1 2020-06-09
 This is the last version that officially supports VS2013.

 - General:
   - Added warning signs about unsupported downloads (#1041)
   - Added .NET bindings to README.md (#1060)
   - Only add -fPIC if supported by the compiler. (#1061)

 - glslc, libshaderc:
   - Removed Singleton pattern around access to glslang (#1059)

 - spvc:
   - Added concept of comparison sampler to API (#1036)
   - Added support for options.hlsl.nonwritable_uav_texture_as_srv (#1048)
   - Support forcing storage buffers to be always declared as UAV. (#1076)

v2020.0 2020-03-06
 - General:
   - Getting spirv.hpp from SPIRV-Headers instead of not glslang (#992)
   - Added clarification about status of artifacts in downloads.md (#1012)

 - glslc, libshaderc:
   - Added support for new Glslang profile enum, EProfileCount (#973)
   - Updated user documentation for -S in glslc (#978)
   - Add documentation for Vulkan 1.2 and SPIR-V 1.5 (#980)
   - Removed NV_EXTENSIONS conditionals (#1003)
   - Added support for generating WebGPU SPIR-V to libshaderc (#1021)
   - Rolled in all DEPS for provisional SPIR-V extensions for raytracing

 - spvc:
   - Normalized API behaviour (#967)
   - Added source_set target for libshaderc_spvc (#976)
   - Added in support for spvc logging to the terminal (#981)
   - Internal refactoring to reduce boiler plate in API implementations (#984)
   - Added newline to logging messages to make them readable (#985)
   - Added reflection support for Dawn:
     - storage textures (#1001)
     - storage texture format (#1005)
     - texture dimension for storage textures (#1008)
     - is storage texture declared as multisampled texture (#1011)
   - Converted compile options to require explicit environments (#1019)
   - Added knob to control force_zero_initialized_variables in SPIRV-Cross (#1028)

v2019.1 2020-01-22
 - glslc, libshaderc:
   - Add -fnan-clamp: Generate code for max and min builtins so that,
     given a NaN operand, will return the other operand. Similarly, the
     clamp builtin favours non-NaN operands, as if clamp was implemented
     as the composition of max and min.
   - Add -finvert-y
   - Using SetBeforeHlslLegalization for more relaxed validation rules
   - Added support for SPIR-V 1.5
   - Add --emit-line-directive option
   - Added support for Vulkan 1.2
 - spvc:
   - Add many options:
	--flatten-multidimensional-arrays
	--es
	--no-es
	--glsl-emit-push-constant-as-ubo
	--msl-swizzle-texture-samples
	--msl-platform=ios|macos
	--msl-pad-fragment-output
	--msl-capture-output
	--msl-domain-lower-left
	--msl-argument-buffers
	--msl-discrete-descriptor-set=<number>
	--hlsl-enable-compat
   - Reintroduce shaderc_spvc_compile_options_set_shader_model
   - Added option to inject robust buffer access code
   - Added support for emitting ToVulkan shaders
   - Added spirv-opt based IR generation as alternative to built in spirv_cross IR gen
   - Added API for specifying source and target execution environments
   - Added option & reflection API methods neede by Dawn
   - Substantial internal refactoring and code cleanup
   - Large number of breaking changes to the API
      -  Replaced shaderc_spvc_compile_options_set_shader_model with
         shaderc_spvc_compile_options_set_hlsl_shader_model
      - Compiler initialization and shader generation moved into seperate calls
      - Seperated return codes from shaderc ones
      - Many small API changes
   - Improvements to testing
      - Refactoring and clean up of run_spirv_cross_tests.py
      - Seperation of expectations into known failures, known invalids, and cases
        that need investigation
      - Tweaks and fixes to substantially increase passing cases
      - Added support for running tests using spvc IR generation
   - Infrastructure
   - Update DEPS with cross-verified commits from associated repos.
   - Add utils/roll-deps
 - Infrastructure:
   - Removed Appveyor artifacts link
   - Improvements and clean up of DEPS rolling scripts
   - Enabled warnings about implicit fallthrough
   - Enabled improper semicolon warnings
   - Restricted -fPIC to platforms that support it
   - Converted remaining scripts to use Python 3
   - Replaced nosetest with unittest
   - Removed assumptions aabout location of spirv-tools, effcee, and RE2
   - Migrated BUILD.gn spirv_cross dependency to local repo
 - Fixes:
   - Fix duplicate install paths when using VisualStudio
   - Fixed BUILD.gn for Chromium, Dawn & Fuchsia
   - Explicitly enabled HLSL support in glslang
   - Added installing necessary headers in Android.mk
   - Removed unsupported Unicode characters
   - Fixed detection of spirv-headers directory
   #666: Update Docker file to use Python3

v2019.0 2019-06-04
 - Add optional spvc, libshaderc_spvc as wrapper around SPIRV-Cross:
   - Rejects bad modules by running the SPIR-V validator first
   - Skips exception-heavy SPIRV-Cross SPIR-V parser
 - Support NV extensions for shader stages
 - Require SPIRV-Tools and SPIRV-Headers with SPIR-V 1.4 support
 Build support:
 - Use KhronosGroup/glslang instead of google/glslang
 - Stop running tests on VS 2013 (googletest no longer supports VS2013)
 - Require Python3 for building
 - Support Chromium's GN build system
 - Kokoro build fixes
 - Cmake build fixes: Only build subdirs if those targets are not yet defined
 - Use Android.mk from Glslang
 - Dockerfile gets re2 and effcee sources
 - Fixes for newer googletest
 - Add address sanitizer presubmit bot
 - Generate config files for pkg-config
 Spvc:
 - Add option to specify source environment.  Spvc will transform from source
   to target environment if they are different.  This only works for WebGPU0
   and Vulkan 1.1.
 Fixes:
  #499: In HLSL compilation, relax layout and logical pointer validation rules
   prior to running the legalization recipe.

v2018.0 2018-10-01
 - Support -fhlsl_functionality1 (also -fhlsl-functionality1)
 - Support NVIDIA Turing extensions. Requires updated Glslang and SPIRV-Tools.
 - Use SPIR-V optimization and HLSL legalization recipes from SPIRV-Tools.
   - Pass target environment into SPIRV-Tools code, e.g. from --target-env vulkan1.1
 - Add SONAME=1 property to shared library
 - Support GN build for Chromium
 Fixes:
  #469: Add virtual dtor to classes with virtual functions.
  #457: Fix writing SPIR-V binaries to standard output on Windows.

v2017.2 2018-02-27
 - Add a shared library version of libshaderc
 - Support GLSL 4.6 and ESSL 3.2
 - Fail compilation if a resource does not have a binding.
 - Add options for automatically setting bindings for (uniform) resources that
   don't have bindings set in shader source.
 - Add options for automatically setting locations for pipline inputs and outputs.
 - Add option for using HLSL IO mappings as expressed in source.
 - Add options for setting resource binding base numbers.
 - Add option to use HLSL resource register numbers for bindings.
 - HLSL compilation now defaults to HLSL packing rules.
   (This change is inherited from Glslang commit 7cca140.)
 - HLSL compilation runs SPIR-V "legalization" transforms to reduce
   manipulation of opaque handles (e.g. images), to satisfy Vulkan rules.
 - Adapt to Glslang generator version numbers:
   - To 2: a fix for code generation for atomicCounterDecrement.
   - To 3: change memory barrier semantics masks
   - To 4: generate more access chains for swizzles
 - CMake install rules uses GNUInstallDirs.  For example, install to lib64
   when that is the norm for the target system.

v2017.1 2017-03-10
 - Add option to automatically assign bindings to uniform variables
   that don't have an explicit 'binding' layout in the shader source.
 - Enable NVIDIA extensions by default in GLSL compilation
 - README mentions language bindings provided by 3rd parties.
 - README describes the known-good branch on GitHub
 - Fixed examples in shaderc.h; added C API use to examples/online-compile
 - Fixes issues:
   #289: Don't output an object file when compilation fails.
   #296: Enable use of the CMake in Android Studio.

v2016.2 2016-12-13
 - Describe Shaderc's level of stability.
 - Support HLSL compilation, exposing functionality in Glslang.
   - Supported in C, C++ API
   - glslc accepts "-x hlsl", and assumes .hlsl files are HLSL.
   - glslc accepts "-fentry-point=<name>" to set entry point name,
     overriding default value "main".
 - Support setting shader resource limits in C, C++ APIs, and in
   glslc
   - glslc adds -flimit=<setting>
   - glslc adds --show-limits to display defaults and valid resource
     limit syntax.
   - glslc adds "-flimit-file <file>" support to read Glslang resource
     configuration files, i.e. the output of "glslangValidator -c".
 - Enable AMD extensions by default in GLSL compilation
 - Fixes issues:
   #281: Work around Android build issue with abspath on Windows
   #283: Increase default maxDrawBuffers to 4, to match Vulkan/GLES3.0

v2016.1 2016-10-12
 - C API for assembling now takes an options object
 - Support compilation options to optimize for size.
 - Maintain compatibility with recent SPIRV-Tools and Glslang versions.
 - Update examples.
 - Build cleanups.
 - Fixes issues:
   #238: Fix invocation of python scripts during build

v2016.0 2016-07-07

 - Adds v<year>.<index> versioning, with "-dev" suffix to indicate work in
   progress. The intent is to summarize and report functionalities more easily
   for incorporating into downstream projects.

 - Summary of functionalities (See the README.md for more details):
   - Provides libraries and command line tools for generating SPIR-V modules
   - Supports GLSL source code or SPIR-V assembly as input
   - Supports SPIR-V binary or assembly text as output
   - Command line options follow GCC/Clang conventions
   - Supports various semantics (OpenGL, OpenGL Compatible and Vulkan)
   - Supports #include
   - Supports user-defined macros
   - Supports dependency information dumping
