$ git log 834ee546f..90cecb520 --date=short --no-merges --format='%ad %ae %s'
2019-11-03 cepheus Tests: Add more test results for the previous generator version bump.
2019-11-02 cepheus Bump up the generator version, which is exposed in SPV test results.
2019-11-03 sk Fix warning: size_t->int implicit cast
2019-11-02 jmadill Add a couple missing headers to the GN build.
2019-11-01 cepheus Bump version.
2019-10-21 dneto SPIR-V: Aggressively prune unreachable merge, continue target
2019-10-25 sk Add option ENABLE_CTEST to skip testing
2019-10-24 greg Update spirv-tools known good.
2019-10-23 ehsannas Make buildbot licenses consistent with the rest of the code
2019-10-23 52076061+digit-google BUILD.gn: Fix fuchsia build (#1944)
2019-10-21 cepheus Web: Reclaim more space and make all work w/wo GLSLANG_WEB.
2019-10-18 cepheus Web: Add basic atomics for SSBOs.
2019-10-17 cepheus Web: Add SSBOs and a few other missing compute features.
2019-10-10 cepheus Web: Add compute stage.
2019-10-08 cepheus Web: Add separate texture/sampler, exclude CubeArray.
2019-10-22 47668180+tsuoranta Enable generation of compile_commands.json (#1938)
2019-10-21 dexcelstraun7 Fix the exports of glslang-default-resource-limits (#1942)
2019-10-18 ehsannas Run tests on Windows too.
2019-10-18 ehsannas Fix build scripts.
2019-10-18 ehsannas More cleanups for Windows.
2019-10-17 ehsannas Add Kokoro bots for building using Bazel.
2019-10-17 ehsannas Make it work on Windows.
2019-10-16 ehsannas Add Bazel build configuration files.
Roll third_party/googletest/ f966ed158..e8a82dc7e (44 commits)
$ git log a92668bc1..24f209eb9 --date=short --no-merges --format='%ad %ae %s'
2019-11-04 post Add spvc_type_get_base_type_id.
2019-11-04 post C API: Add missing boolean options.
2019-11-04 post GLSL: Fix issue with array-of-array inputs in tess.
2019-11-01 dmalyshau Avoid including stdexcept in no-exception environment
2019-11-01 lehoangq Updated BUILD.gn's license to APACHE.
2019-10-31 lehoangq Added BUILD.gn file to be used by Chromium's ANGLE project
2019-10-29 post MSL: Add missing reference output.
2019-10-29 post Fix broken access tracking for OpFunctionCall results.
2019-10-28 post MSL: Avoid some fallthrough warnings.
2019-10-28 post Run format_all.sh.
2019-10-28 post MSL: Remove hacky workaround for patch constant passing.
2019-10-28 post MSL: Remove workaround for passing constant arrays to functions.
2019-10-28 post Remove another dead reference file.
2019-10-28 post Remove some more dead reference files.
2019-10-28 post Remove another dead reference file.
2019-10-28 post Remove dead reference file.
2019-10-28 post Hack some constants in UE4 tests.
2019-10-28 post MSL: Ensure stable output for access chain CFG workarounds.
2019-10-26 post MSL: Fix integer cast.
2019-10-26 post MSL: Declare arrays with proper type wrapper.
2019-10-26 post MSL: Deal with chained access chains for tessellation IO variables.
2019-10-26 post MSL: Declare struct type explicitly.
2019-10-26 post MSL: Fix array of array declaration.
2019-10-25 post MSL: Rewrite tessellation_access_chain.
2019-10-25 post MSL: Slight cleanup in emit_tessellation_access_chain.
2019-10-25 post MSL: Do not declare variables which will not be unflattened.
2019-10-25 post MSL: Report tess input array failures more accurately.
2019-10-25 post MSL: Revert hack with kBufferSizeBufferBinding
2019-10-25 post MSL: Remove stale code for TextureSwizzle.
2019-10-24 post GLSL: Minor nit, check flushed_phi_variables with count().
2019-10-24 post Clean up call to builtin_translates_to_nonarray.
2019-10-24 post Implement constant empty struct correctly on all backends.
2019-10-24 post MSL: Rewrite propagated depth comparison state handling.
2019-10-24 post MSL: Do read-only lookups of access_chain_children.
2019-10-24 post MSL: Remove stray allow_id_rewrite().
2019-10-24 post MSL: Do not declare array of UBO/SSBO as spvUnsafeArray.
2019-10-24 bill.hollings MSL: Support option for treating 1D textures as 2D textures of height 1.
2019-10-24 bill.hollings MSL: Support option for treating 1D textures as 2D textures of height 1.
2019-10-24 post MSL: Enable proper value types for return and value-passing of arrays.
2019-10-24 post MSL: Be a little clearer how needs_base_vertex_idx is implemented.
2019-10-24 post MSL: Remove some dead code w.r.t. vertex/instance_idx.
2019-10-24 post MSL: Do not generate UnsafeArray<> for any array inside buffer objects.
2019-10-24 post MSL: Simplify framebuffer fetch implementation.
2019-10-24 post MSL: Fall back to GLSL path for non-invariant matrix multiply as well.
2019-10-24 post MSL: Fall back to GLSL path for non-invariant FP implementation.
2019-10-24 post MSL: Minor cleanups for texture atomic emulation.
2019-10-24 post MSL: Cleanup decoration forwarding for SampleMask.
2019-10-24 post MSL: Do not declare complex composite array in main for non-inlined.
2019-10-24 post Fix formatting in main.cpp.
2019-10-24 post Add new UE4 folders to CMake testing as well.
2019-10-23 lukas.hermanns Moved all UE4 test shaders into 'shaders-ue4/' folder.
2019-10-23 lukas.hermanns Removed 'argument_buffer_offset' and fixed packed matrix Metal output.
2019-10-22 lukas.hermanns Simplified overriding of 'access_chain_internal' function in CompilerMSL.
2019-10-21 lukas.hermanns Removed bounds checks in favor of SPIRV-Tools pass '--graphics-robust-access'
2019-10-21 post CFG: Compute actual immediate dominators.
2019-10-09 lukas.hermanns Disabled spvUnsafeArray<> type for packed vectors and added test cases for those arrays.
2019-10-09 lukas.hermanns Added '--msl-invariant-float-math' option and new test case for it.
2019-09-27 lukas.hermanns Further updates for pull request #1162; also added two test cases for spvCubemapTo2DArrayFace function and added '--msl-framebuffer-fetch'/ '--msl-emulate-cube-array' compiler options.
2019-09-24 lukas.hermanns Update for pull request #1162 rev. 1
2019-09-23 lukas.hermanns Updates for pull request #1162
2019-09-19 lukas.hermanns Fixed false-positive optimization of builtin variables (may happen when 'spvOut' is emitted).
2019-09-18 lukas.hermanns Updated test shaders.
2019-09-18 lukas.hermanns Rearranged all 'UE Change' comments to match to project's coding style.
2019-09-17 lukas.hermanns Removed reference specifiers in 'spvFMul' functions to avoid address specifiers.
2019-09-17 lukas.hermanns Updated reference Metal shaders.
2019-09-17 lukas.hermanns Avoid emitting 'spvUnsafeArray<>', 'spvFMul', and 'spvFAdd' custom functions if they are not needed.
2019-09-17 lukas.hermanns Further adjustments to make Metal backend work again in UE4 on Mac.
2019-09-16 lukas.hermanns Renamed new test shaders to fit the naming convention in SPIRV-Cross.
2019-09-13 lukas.hermanns Added a new 'emulate_cube_array' option to SPIRV-Cross to cope with translating TextureCubeArray into texture2d_array for iOS where this type is not available. (Original Author: Mark Satterthwaite)
2019-09-13 lukas.hermanns Removed all '.DS_Store' files.
2019-09-13 lukas.hermanns Adjustments after rebase of ue4_dev branch.
2019-08-26 mark.satterthwaite OpImageTexelPointer needs to use an int coordinate type for GLSL, but not for MSL.
2019-08-26 mark.satterthwaite Remove obsolete memory barrier scope specification from Metal output, this API has been removed.
2019-08-14 mark.satterthwaite Add an option to SPIRV-Cross to enforce invariant floating point math to prevent different depth calculation between prepass & basepass when running on Metal 2.0 and earlier.
2019-08-14 mark.satterthwaite More fixes to handling packing & access elements in an array. Made in two parts. 1. Don't allow AccessChain operations to add duplicated swizzles when accessing packed arrays. 2. Only pack arrays when there is the proper amount of space between members in a struct, otherwise it will definitely be wrong.
2019-08-14 mark.satterthwaite Update the Metal shaders to account for changes in the shader compilation.
2019-08-14 mark.satterthwaite Fix texture swizzling.
2019-08-14 mark.satterthwaite The result of an AccessChain intrinsic in SPIRV can be referenced by multiple blocks but when they are loops that can result in compilation problems because the source variables might not be declared early enough. This forces us to hoist those variables high enough to make it work.
2019-08-14 mark.satterthwaite There are occasions where phi-variable copies are introduced for original variables which are fully declared, which coud result in the phi-variable never being declared and the shader not compiling, so declare the phi-variables when this happens. Change made in two parts. 1. Ensure that we declare phi-variable copies even if the original declaration isn't deferred. 2. Only flush phi variables once, avoids duplicate definitions.
2019-08-14 mark.satterthwaite When converting from HLSL the dxc SPIRV output often contains variables that are written through (e.g. a = b = c;) which seems to break the tracking of expressions in SPIRV-Cross, so don't reset everything once configured.
2019-08-14 mark.satterthwaite Provide the Metal bindings as part of the options structure as that is more convenient.
2019-08-14 mark.satterthwaite Slight modifications to IAB support for Metal output, so that the caller can specify an offset for the IAB start index, as for HLSL shaders UAVs need to occupy slots 0-7. The runtime support for SSBO robustness is also much simpler if the buffer size block is at index 0. Change made in two parts. 1. Allow the caller to specify the Metal translation should use argument buffers. 2. Move this to the front of IABs for convenience of the runtime.
2019-08-14 mark.satterthwaite Metal doesn't automatically enforce robust access to buffers unlike other APIs, so for storage-buffers, which become raw T* buffers in Metal, we need to fetch the buffer size and clamp the access to a valid index within the buffer ourselves. This is essential for shaders converted from HLSL which expects all resource access to be robust, though this implementation is technically different to the HLSL specification of return-0 for OOB reads, ignore OOB writes.
2019-08-14 mark.satterthwaite HLSL makes position calculations invariant by default to eliminate problems with depth-precision, Apple added a similar qualifier for Metal 2.1 that can and should be used in Vertex & Domain/TessEval shaders for the same effect.
2019-08-14 mark.satterthwaite When compiling from HLSL which pads and aligns float[]/float2[] within structures to float4[] we need to unpack the original type in Metal from the float4.
2019-08-14 mark.satterthwaite Fix conversion of the SampleMask intrinsic from SPIRV, where it is an array to Metal where it isn't.
2019-08-14 mark.satterthwaite Fixes to the generation of Metal tessellation shaders from SPIRV so that it works correctly in more complicated cases. First, when generating from HLSL before invoking the code that comes from the HLSL patch-function a control-flow and full memory-barrier are required to ensure that all the temporary values in thread-local storage for the patch are available. Second, the inputs to control and evaluation shaders must be properly forwarded from the global variables in SPIRV to the member variables in the relevant input structure. Finally when arrays of interpolators are used for input or output we need to add an extra level of array indirection because Metal works at a different granularity than SPIRV.
2019-08-14 mark.satterthwaite Work-around HLSL using zero-based InstanceID and VertexID variables, but SPIRV, like Metal, includes BaseInstance & BaseVertex. Until this can be fixed in DXC, which is really the proper place to solve this, we can decrement InstanceID & VertexID when the source is HLSL. Made in two parts. 1. Handle HLSL-style 0-based vertex/instance index. 2. We zero-base the InstanceID & VertexID variables for HLSL emulation elsewhere, so don't do it twice.
2019-08-14 mark.satterthwaite On iOS sub-passes can be implemented using the frame-buffer fetch API which is much more efficient than binding the textures. Change was made in three parts. 1. Use Metal's native frame-buffer fetch API for subpass inputs. 2. Make sure that frame-buffer-fetch is only available on iOS. 3. Default to using Metal's native frame-buffer fetch for subpass inputs on iOS.
2019-08-14 mark.satterthwaite SPIRV doesn't distinguish depth textures from regular textures, but Metal does, so if we've ever seen a depth comparison operation we must ensure that the texture is specified as a depth-texture.
2019-08-14 mark.satterthwaite Emulate texture atomics in Metal by binding the underlying buffer that backs the resource to a separate binding point and using that for Metal's atomic operations. This will work with texture_buffer and texture2d created from an MTLBuffer, so is perfect for emulating HLSL atomics on RWBuffer and sufficient, but not ideal, for RWTexture2D with some restrictions (limited format support and can't be used for render-targets).
2019-08-14 mark.satterthwaite Support Metal 2.1's texture_buffer type which is the equivalent to HLSL's Buffer/RWBuffer, so doesn't require modifying buffer sizes to match alignments.
2019-08-13 mark.satterthwaite In order to use Metal shader libraries properly you have to ensure that you have no duplicated global symbol names for different entities, otherwise 'metallib' won't be able to combine multiple shaders into a single library. This is broken into two parts. 1. Constant arrays of non-primitive types (i.e. matrices) won't link properly into Metal libraries. 2. Metal helper functions must be static force-inline otherwise they will cause problems when linked together in a single Metallib.
2019-08-13 mark.satterthwaite Rework the way arrays are handled in Metal to remove the array copies as they are unnecessary from Metal 1.2. There were cases where copies were not being inserted and others appeared unncessary, using the template type should allow the 'metal' compiler to do the best possible optimisation. The changes are broken into three stages. 1. Allow Metal to use the array template to make arrays a value type. 2. Force the use of C style array declaration for some cases which cannot be wrapped with a template. 3. Threadgroup arrays can't have a wrapper type. 4. Tweak the code to use unsafe_array in a few more places so that we can handle passing arrays of resources into the shader and then through shaders into sub-functions. 5. Handle packed matrix types inside arrays within structs. 6. Make sure that builtin arguments still retain their array qualifiers when used in leaf functions. 7. Fix declaration of array-of-array constants for Metal so we can use the array template.
2019-08-13 mark.satterthwaite UE4 shader reference for those shaders that will compile without the changes.
2019-08-13 mark.satterthwaite Port the UE4 spirv shaders to ASM shaders that can be used in the test-rig - this will help show why the changes are required.
2019-08-13 mark.satterthwaite Many interesting test cases for SPIRV-Cross taken from compiling UE4 shaders. These highlight the reasons for the various changes we've made.
Roll third_party/spirv-tools/ 6a9be627c..f1e5cd73f (19 commits)
$ git log cc1745b55..ff6165051 --date=short --no-merges --format='%ad %ae %s'
2019-08-10 leethomason setting the version to 7.1.0
2019-08-10 leethomason minor fixes to test cases
2019-08-10 leethomason add test cases
2019-08-10 leethomason support more bool options
2019-07-24 lionel.untereiner Add COMPONENT support at cmake install stage
2019-07-02 qilin.wang Supplement test case in xmltest.cpp
2019-05-30 qilin.wang adjust path of testfile bomtest.xml to resource/out
2019-05-22 aaronkirkham07 add missing uint64_t methods to XMLPrinter add missing XMLElement::Unsigned64Attribute body
2019-05-16 orbitcowboy Fixed -Wold-style-cast warnings from g++.
2019-04-29 qilin.wang fix comment in Programmatic DOM test case
2019-04-25 andrey.turcan Fixed typos
2019-04-12 cugone Missing uint64_t XMLElement::Unsigned64Text(uint64_t defaultValue) implementation
2019-04-12 cugone Forgot Text and XMLElement versions;
2019-04-11 cugone UnsignedInt64 support
2019-03-17 leethomason add license and minor readme edit
2019-03-07 sfriedri Issue 742: allow intermittent calls of XMLPrinter::ClearBuffer
2019-01-15 orbitcowboy Improved const correctness of local variables. There are no functional changes intended.
2019-01-15 aarnchng20w CMakeList.txt: fix wrong version
2018-11-18 mac-fly removed merge artifact from Doxygen control file
2018-11-17 leethomason fix export issue and cmake. version to 7.0.1
2018-11-08 scpeters tinyxml2.pc.in: use exec_prefix for libdir
2018-11-07 scpeters tinyxml2.pc.in: restore prefix to lib/include dir
2018-11-06 leethomason new docs
2018-11-06 leethomason setting the version to 7.0.0
2018-10-19 bolry Correct assigment interface for StrPair
2018-10-17 wipedout Fix slicing of int64_t
2018-10-16 wipedout Check the element is the last child of the document
2018-10-09 jimmy.delas Add support for position independant code compilation
2018-09-20 jschloss Make resources folder for xml test relative to current source and binary directory
2018-09-05 orbitcowboy Added explicit-keyword to constructors having 1 argument.
2018-08-25 leethomason remove virtual call in destruction
2018-07-28 leethomason fix huge number of declaration security issue
2018-07-17 orbitcowboy Fixed typos in comments. There are no functional changes intended.
2018-06-29 leethomason fix test cases
2018-06-29 leethomason remove deprecated errors. next version will be major.
2018-06-29 leethomason add assertion
2018-06-29 leethomason fix query return type
2018-06-29 leethomason remove dead yet conflicting method
2018-05-04 lsolanka add target_compile_definitions
2018-05-04 lsolanka use configure_package_config_file()
2018-04-28 lsolanka Replace absolute installation paths with relative
2018-06-20 johnb003 Updated CMakeLists.txt for relocatable installs
2018-06-20 johnb003 Made CMakeLists.txt installation relocatable.
2018-04-18 quam In PrintString, move the optimization under the if ( _processEntities ) block and retain the strlen Write in the new else block. Added a test case.
2018-04-06 leethomason update the readme
2018-04-05 leethomason setting the version to 6.2.0
2018-04-05 leethomason and the same fix in the test case
2018-04-05 leethomason fix compiler inconsistency
2018-04-05 leethomason clean up the depth tracking a bit
2018-04-05 leethomason upgrade to vs2017. fix stack overflow attack.
2018-03-23 wipedout Improve test message to avoid duplicate log output
2018-03-23 wipedout Simplify checks
2018-03-23 wipedout Cleanup ErrorName() tests
2018-03-23 jasjuang add namespace for cmake export
2018-03-15 wipedout Improve handles tests
2018-03-08 schmieder.matthias fixed issue where CTest is executed in the wrong directory
2018-02-05 noloader Fix typo in permissions
2018-02-05 noloader Add install and uninstall target to Makefile This PR closes some gaps in the makefile. It follows GNU coding standards and conventions at https://www.gnu.org/prep/standards/standards.html. It is not specific to GNU, and most of the world follows it.
2018-02-01 luxon.jean.pierre fix "dereference before null check" defect
2018-01-22 fcami fix installation path for .cmake
Roll third_party/vulkan-docs/ a5b10770a..fa497b29d (10 commits)
Roll third_party/effcee/ cd25ec17e..98980e2b7 (2 commits)
https://github.com/google/effcee/compare/cd25ec17e938...98980e2b7854
$ git log cd25ec17e..98980e2b7 --date=short --no-merges --format='%ad %ae %s' 2019-10-30 dneto Travis-CI: macOS: Run brew update first 2019-10-30 dneto Add namespace to make_unique to avoid potential collisions
Roll third_party/glslang/ 834ee546f..90cecb520 (23 commits)
https://github.com/KhronosGroup/glslang/compare/834ee546f93d...90cecb52067a
$ git log 834ee546f..90cecb520 --date=short --no-merges --format='%ad %ae %s' 2019-11-03 cepheus Tests: Add more test results for the previous generator version bump. 2019-11-02 cepheus Bump up the generator version, which is exposed in SPV test results. 2019-11-03 sk Fix warning: size_t->int implicit cast 2019-11-02 jmadill Add a couple missing headers to the GN build. 2019-11-01 cepheus Bump version. 2019-10-21 dneto SPIR-V: Aggressively prune unreachable merge, continue target 2019-10-25 sk Add option ENABLE_CTEST to skip testing 2019-10-24 greg Update spirv-tools known good. 2019-10-23 ehsannas Make buildbot licenses consistent with the rest of the code 2019-10-23 52076061+digit-google BUILD.gn: Fix fuchsia build (#1944) 2019-10-21 cepheus Web: Reclaim more space and make all work w/wo GLSLANG_WEB. 2019-10-18 cepheus Web: Add basic atomics for SSBOs. 2019-10-17 cepheus Web: Add SSBOs and a few other missing compute features. 2019-10-10 cepheus Web: Add compute stage. 2019-10-08 cepheus Web: Add separate texture/sampler, exclude CubeArray. 2019-10-22 47668180+tsuoranta Enable generation of compile_commands.json (#1938) 2019-10-21 dexcelstraun7 Fix the exports of glslang-default-resource-limits (#1942) 2019-10-18 ehsannas Run tests on Windows too. 2019-10-18 ehsannas Fix build scripts. 2019-10-18 ehsannas More cleanups for Windows. 2019-10-17 ehsannas Add Kokoro bots for building using Bazel. 2019-10-17 ehsannas Make it work on Windows. 2019-10-16 ehsannas Add Bazel build configuration files.
Roll third_party/googletest/ f966ed158..e8a82dc7e (44 commits)
https://github.com/google/googletest/compare/f966ed158177...e8a82dc7ede6
$ git log f966ed158..e8a82dc7e --date=short --no-merges --format='%ad %ae %s' 2019-10-31 absl-team Googletest export 2019-10-30 absl-team Googletest export 2019-10-30 misterg Googletest export 2019-10-29 misterg Googletest export 2019-10-28 hermas1132 Googletest export 2019-10-28 absl-team Googletest export 2019-10-28 absl-team Googletest export 2019-10-28 absl-team Googletest export 2019-10-28 absl-team Googletest export 2019-09-03 krystian.kuzniarek update CONTRIBUTORS 2019-08-08 krystian.kuzniarek move the pumping script to googlemock 2019-08-08 krystian.kuzniarek remove gtest-type-util.h.pump 2019-08-08 krystian.kuzniarek replace autogenerated TemplatesX classes by variadic ones 2019-08-08 krystian.kuzniarek replace autogenerated TypesX classes by variadic ones 2019-10-25 piotrwn1 variable names corrected (followed google coding style) 2019-10-25 piotrwn1 Apply 80chars limit 2019-10-24 piotrwn1 Tests simplified and names corrected (POD->scalar) 2019-09-10 krystian.kuzniarek remove BiggestInt 2019-10-23 absl-team Googletest export 2019-10-23 joshdcannon Revert "Merge pull request #2498 from thejcannon:noexcept_spec" 2019-10-22 absl-team Googletest export 2019-10-23 piotrwn1 Added more tests to verify: ReturnRef not accept temporary 2019-10-22 piotrwn1 Added tests verifying that temporaries are accepted by ReturnRef 2019-10-22 absl-team Googletest export 2019-10-22 piotrwn1 Prevent using ReturnRef on reference to temporary 2019-10-21 absl-team Googletest export 2019-10-18 absl-team Googletest export 2019-10-19 41349879+cloudrex Remove extra space 2019-10-17 lesha [googletest] Output skip message 2019-10-11 joshdcannon Avoid recursive macros 2019-10-07 chrisjohnsonmail Update to distinguish prelease purpose of this fork. 2019-10-11 joshdcannon Removing extraneous parenthesis 2019-10-11 joshdcannon Evaluate and cat NARG in different macros 2019-08-29 chrisjohnsonmail Add ESP8266 configs to PlatformIO build 2019-08-28 chrisjohnsonmail feat: Add support for ESP8266 platform 2019-10-11 joshdcannon Removing extraneous test 2019-10-11 joshdcannon Replace compile-test with preprocessor test 2019-10-11 joshdcannon Fix preprocessor tests 2019-10-11 joshdcannon Add a compile test 2019-10-11 joshdcannon Workaround MSVC VA_ARGS weirdness 2019-10-11 krystian.kuzniarek clean-up broken paths for PlatformIO 2019-09-05 krystian.kuzniarek remove GTEST_ARRAYSIZE 2019-09-10 krystian.kuzniarek change includes in gtest-port.h 2019-09-10 krystian.kuzniarek remove a dead function
Roll third_party/re2/ ab12219ba..eecfdbf17 (3 commits)
https://github.com/google/re2/compare/ab12219ba56a...eecfdbf1701d
$ git log ab12219ba..eecfdbf17 --date=short --no-merges --format='%ad %ae %s' 2019-10-29 junyer Tweak some printed debugging for style. 2019-10-29 junyer Address the MSVC warnings that crept in recently. 2019-10-29 junyer Simplify parse_double_float() in util/pcre.cc.
Roll third_party/shaderc/ f28d5287c..ee0968eaa (8 commits)
https://github.com/google/shaderc/compare/f28d5287c68b...ee0968eaa398
$ git log f28d5287c..ee0968eaa --date=short --no-merges --format='%ad %ae %s' 2019-11-01 9856269+sarahM0 Add spvcir unit test - OpCapability (#857) 2019-11-01 rharrison Add flag for updating invalid expecations and rewrite end logic (#856) 2019-10-30 rharrison Refactor file reading code into common utility method (#852) 2019-10-30 rharrison Rolling 5 dependencies & expectation files (#849) 2019-10-22 dneto Android.mk: Install all necessary headers (#846) 2019-10-22 9856269+sarahM0 spvc: add spvc parsing option to msl, glsl and vulkan compilers (#845) 2019-10-21 rharrison Rolling 4 dependencies, small script fix and updating expectation files (#844) 2019-10-19 9856269+sarahM0 spvc: add known_spvc_failures (#842)
Roll third_party/spirv-cross/ a92668bc1..24f209eb9 (97 commits)
https://github.com/KhronosGroup/SPIRV-Cross/compare/a92668bc118a...24f209eb9306
$ git log a92668bc1..24f209eb9 --date=short --no-merges --format='%ad %ae %s' 2019-11-04 post Add spvc_type_get_base_type_id. 2019-11-04 post C API: Add missing boolean options. 2019-11-04 post GLSL: Fix issue with array-of-array inputs in tess. 2019-11-01 dmalyshau Avoid including stdexcept in no-exception environment 2019-11-01 lehoangq Updated BUILD.gn's license to APACHE. 2019-10-31 lehoangq Added BUILD.gn file to be used by Chromium's ANGLE project 2019-10-29 post MSL: Add missing reference output. 2019-10-29 post Fix broken access tracking for OpFunctionCall results. 2019-10-28 post MSL: Avoid some fallthrough warnings. 2019-10-28 post Run format_all.sh. 2019-10-28 post MSL: Remove hacky workaround for patch constant passing. 2019-10-28 post MSL: Remove workaround for passing constant arrays to functions. 2019-10-28 post Remove another dead reference file. 2019-10-28 post Remove some more dead reference files. 2019-10-28 post Remove another dead reference file. 2019-10-28 post Remove dead reference file. 2019-10-28 post Hack some constants in UE4 tests. 2019-10-28 post MSL: Ensure stable output for access chain CFG workarounds. 2019-10-26 post MSL: Fix integer cast. 2019-10-26 post MSL: Declare arrays with proper type wrapper. 2019-10-26 post MSL: Deal with chained access chains for tessellation IO variables. 2019-10-26 post MSL: Declare struct type explicitly. 2019-10-26 post MSL: Fix array of array declaration. 2019-10-25 post MSL: Rewrite tessellation_access_chain. 2019-10-25 post MSL: Slight cleanup in emit_tessellation_access_chain. 2019-10-25 post MSL: Do not declare variables which will not be unflattened. 2019-10-25 post MSL: Report tess input array failures more accurately. 2019-10-25 post MSL: Revert hack with kBufferSizeBufferBinding 2019-10-25 post MSL: Remove stale code for TextureSwizzle. 2019-10-24 post GLSL: Minor nit, check flushed_phi_variables with count(). 2019-10-24 post Clean up call to builtin_translates_to_nonarray. 2019-10-24 post Implement constant empty struct correctly on all backends. 2019-10-24 post MSL: Rewrite propagated depth comparison state handling. 2019-10-24 post MSL: Do read-only lookups of access_chain_children. 2019-10-24 post MSL: Remove stray allow_id_rewrite(). 2019-10-24 post MSL: Do not declare array of UBO/SSBO as spvUnsafeArray.
2019-10-24 bill.hollings MSL: Support option for treating 1D textures as 2D textures of height 1.
2019-10-24 bill.hollings MSL: Support option for treating 1D textures as 2D textures of height 1.
2019-10-24 post MSL: Enable proper value types for return and value-passing of arrays.
2019-10-24 post MSL: Be a little clearer how needs_base_vertex_idx is implemented.
2019-10-24 post MSL: Remove some dead code w.r.t. vertex/instance_idx.
2019-10-24 post MSL: Do not generate UnsafeArray<> for any array inside buffer objects.
2019-10-24 post MSL: Simplify framebuffer fetch implementation.
2019-10-24 post MSL: Fall back to GLSL path for non-invariant matrix multiply as well.
2019-10-24 post MSL: Fall back to GLSL path for non-invariant FP implementation.
2019-10-24 post MSL: Minor cleanups for texture atomic emulation.
2019-10-24 post MSL: Cleanup decoration forwarding for SampleMask.
2019-10-24 post MSL: Do not declare complex composite array in main for non-inlined.
2019-10-24 post Fix formatting in main.cpp.
2019-10-24 post Add new UE4 folders to CMake testing as well.
2019-10-23 lukas.hermanns Moved all UE4 test shaders into 'shaders-ue4/' folder.
2019-10-23 lukas.hermanns Removed 'argument_buffer_offset' and fixed packed matrix Metal output.
2019-10-22 lukas.hermanns Simplified overriding of 'access_chain_internal' function in CompilerMSL.
2019-10-21 lukas.hermanns Removed bounds checks in favor of SPIRV-Tools pass '--graphics-robust-access'
2019-10-21 post CFG: Compute actual immediate dominators.
2019-10-09 lukas.hermanns Disabled spvUnsafeArray<> type for packed vectors and added test cases for those arrays.
2019-10-09 lukas.hermanns Added '--msl-invariant-float-math' option and new test case for it.
2019-09-27 lukas.hermanns Further updates for pull request #1162; also added two test cases for spvCubemapTo2DArrayFace function and added '--msl-framebuffer-fetch'/ '--msl-emulate-cube-array' compiler options.
2019-09-24 lukas.hermanns Update for pull request #1162 rev. 1
2019-09-23 lukas.hermanns Updates for pull request #1162
2019-09-19 lukas.hermanns Fixed false-positive optimization of builtin variables (may happen when 'spvOut' is emitted).
2019-09-18 lukas.hermanns Updated test shaders.
2019-09-18 lukas.hermanns Rearranged all 'UE Change' comments to match to project's coding style.
2019-09-17 lukas.hermanns Removed reference specifiers in 'spvFMul' functions to avoid address specifiers.
2019-09-17 lukas.hermanns Updated reference Metal shaders.
2019-09-17 lukas.hermanns Avoid emitting 'spvUnsafeArray<>', 'spvFMul', and 'spvFAdd' custom functions if they are not needed.
2019-09-17 lukas.hermanns Further adjustments to make Metal backend work again in UE4 on Mac.
2019-09-16 lukas.hermanns Renamed new test shaders to fit the naming convention in SPIRV-Cross.
2019-09-13 lukas.hermanns Added a new 'emulate_cube_array' option to SPIRV-Cross to cope with translating TextureCubeArray into texture2d_array for iOS where this type is not available. (Original Author: Mark Satterthwaite)
2019-09-13 lukas.hermanns Removed all '.DS_Store' files.
2019-09-13 lukas.hermanns Adjustments after rebase of ue4_dev branch.
2019-08-26 mark.satterthwaite OpImageTexelPointer needs to use an int coordinate type for GLSL, but not for MSL.
2019-08-26 mark.satterthwaite Remove obsolete memory barrier scope specification from Metal output, this API has been removed.
2019-08-14 mark.satterthwaite Add an option to SPIRV-Cross to enforce invariant floating point math to prevent different depth calculation between prepass & basepass when running on Metal 2.0 and earlier.
2019-08-14 mark.satterthwaite More fixes to handling packing & access elements in an array. Made in two parts. 1. Don't allow AccessChain operations to add duplicated swizzles when accessing packed arrays. 2. Only pack arrays when there is the proper amount of space between members in a struct, otherwise it will definitely be wrong.
2019-08-14 mark.satterthwaite Update the Metal shaders to account for changes in the shader compilation.
2019-08-14 mark.satterthwaite Fix texture swizzling.
2019-08-14 mark.satterthwaite The result of an AccessChain intrinsic in SPIRV can be referenced by multiple blocks but when they are loops that can result in compilation problems because the source variables might not be declared early enough. This forces us to hoist those variables high enough to make it work.
2019-08-14 mark.satterthwaite There are occasions where phi-variable copies are introduced for original variables which are fully declared, which coud result in the phi-variable never being declared and the shader not compiling, so declare the phi-variables when this happens. Change made in two parts. 1. Ensure that we declare phi-variable copies even if the original declaration isn't deferred. 2. Only flush phi variables once, avoids duplicate definitions.
2019-08-14 mark.satterthwaite When converting from HLSL the dxc SPIRV output often contains variables that are written through (e.g. a = b = c;) which seems to break the tracking of expressions in SPIRV-Cross, so don't reset everything once configured.
2019-08-14 mark.satterthwaite Provide the Metal bindings as part of the options structure as that is more convenient.
2019-08-14 mark.satterthwaite Slight modifications to IAB support for Metal output, so that the caller can specify an offset for the IAB start index, as for HLSL shaders UAVs need to occupy slots 0-7. The runtime support for SSBO robustness is also much simpler if the buffer size block is at index 0. Change made in two parts. 1. Allow the caller to specify the Metal translation should use argument buffers. 2. Move this to the front of IABs for convenience of the runtime.
2019-08-14 mark.satterthwaite Metal doesn't automatically enforce robust access to buffers unlike other APIs, so for storage-buffers, which become raw T* buffers in Metal, we need to fetch the buffer size and clamp the access to a valid index within the buffer ourselves. This is essential for shaders converted from HLSL which expects all resource access to be robust, though this implementation is technically different to the HLSL specification of return-0 for OOB reads, ignore OOB writes.
2019-08-14 mark.satterthwaite HLSL makes position calculations invariant by default to eliminate problems with depth-precision, Apple added a similar qualifier for Metal 2.1 that can and should be used in Vertex & Domain/TessEval shaders for the same effect.
2019-08-14 mark.satterthwaite When compiling from HLSL which pads and aligns float[]/float2[] within structures to float4[] we need to unpack the original type in Metal from the float4.
2019-08-14 mark.satterthwaite Fix conversion of the SampleMask intrinsic from SPIRV, where it is an array to Metal where it isn't.
2019-08-14 mark.satterthwaite Fixes to the generation of Metal tessellation shaders from SPIRV so that it works correctly in more complicated cases. First, when generating from HLSL before invoking the code that comes from the HLSL patch-function a control-flow and full memory-barrier are required to ensure that all the temporary values in thread-local storage for the patch are available. Second, the inputs to control and evaluation shaders must be properly forwarded from the global variables in SPIRV to the member variables in the relevant input structure. Finally when arrays of interpolators are used for input or output we need to add an extra level of array indirection because Metal works at a different granularity than SPIRV.
2019-08-14 mark.satterthwaite Work-around HLSL using zero-based InstanceID and VertexID variables, but SPIRV, like Metal, includes BaseInstance & BaseVertex. Until this can be fixed in DXC, which is really the proper place to solve this, we can decrement InstanceID & VertexID when the source is HLSL. Made in two parts. 1. Handle HLSL-style 0-based vertex/instance index. 2. We zero-base the InstanceID & VertexID variables for HLSL emulation elsewhere, so don't do it twice.
2019-08-14 mark.satterthwaite On iOS sub-passes can be implemented using the frame-buffer fetch API which is much more efficient than binding the textures. Change was made in three parts. 1. Use Metal's native frame-buffer fetch API for subpass inputs. 2. Make sure that frame-buffer-fetch is only available on iOS. 3. Default to using Metal's native frame-buffer fetch for subpass inputs on iOS.
2019-08-14 mark.satterthwaite SPIRV doesn't distinguish depth textures from regular textures, but Metal does, so if we've ever seen a depth comparison operation we must ensure that the texture is specified as a depth-texture.
2019-08-14 mark.satterthwaite Emulate texture atomics in Metal by binding the underlying buffer that backs the resource to a separate binding point and using that for Metal's atomic operations. This will work with texture_buffer and texture2d created from an MTLBuffer, so is perfect for emulating HLSL atomics on RWBuffer and sufficient, but not ideal, for RWTexture2D with some restrictions (limited format support and can't be used for render-targets).
2019-08-14 mark.satterthwaite Support Metal 2.1's texture_buffer type which is the equivalent to HLSL's Buffer/RWBuffer, so doesn't require modifying buffer sizes to match alignments.
2019-08-13 mark.satterthwaite In order to use Metal shader libraries properly you have to ensure that you have no duplicated global symbol names for different entities, otherwise 'metallib' won't be able to combine multiple shaders into a single library. This is broken into two parts. 1. Constant arrays of non-primitive types (i.e. matrices) won't link properly into Metal libraries. 2. Metal helper functions must be static force-inline otherwise they will cause problems when linked together in a single Metallib.
2019-08-13 mark.satterthwaite Rework the way arrays are handled in Metal to remove the array copies as they are unnecessary from Metal 1.2. There were cases where copies were not being inserted and others appeared unncessary, using the template type should allow the 'metal' compiler to do the best possible optimisation. The changes are broken into three stages. 1. Allow Metal to use the array template to make arrays a value type. 2. Force the use of C style array declaration for some cases which cannot be wrapped with a template. 3. Threadgroup arrays can't have a wrapper type. 4. Tweak the code to use unsafe_array in a few more places so that we can handle passing arrays of resources into the shader and then through shaders into sub-functions. 5. Handle packed matrix types inside arrays within structs. 6. Make sure that builtin arguments still retain their array qualifiers when used in leaf functions. 7. Fix declaration of array-of-array constants for Metal so we can use the array template.
2019-08-13 mark.satterthwaite UE4 shader reference for those shaders that will compile without the changes.
2019-08-13 mark.satterthwaite Port the UE4 spirv shaders to ASM shaders that can be used in the test-rig - this will help show why the changes are required.
2019-08-13 mark.satterthwaite Many interesting test cases for SPIRV-Cross taken from compiling UE4 shaders. These highlight the reasons for the various changes we've made.
Roll third_party/spirv-tools/ 6a9be627c..f1e5cd73f (19 commits)
https://github.com/KhronosGroup/SPIRV-Tools/compare/6a9be627c760...f1e5cd73f658
$ git log 6a9be627c..f1e5cd73f --date=short --no-merges --format='%ad %ae %s' 2019-11-01 afdx spirv-fuzz: improvements to representation of data synonym facts (#3006) 2019-11-01 stevenperron Add iOS as a supported platform (#3001) 2019-11-01 rharrison Reset pointers before iterating in fuzzer to avoid double free (#3003) 2019-10-30 dneto Fix some clang-tidy issues in graphics_robust_access_pass (#2998) 2019-10-30 stevenperron Add description of wrap-opkill. (#3000) 2019-10-30 kubak [opt] Do not compare optimized binary with an invalidated buffer (#2999) 2019-10-29 bclayton utils/vscode: Change assembly file ext to .spvasm (#2995) 2019-10-28 bclayton utils: Add a vscode extension for SPIR-V disassembly files (#2987) 2019-10-28 greg Add two new simplifications. (#2984) 2019-10-28 afdx spirv-fuzz: Transformation to extract from a composite object (#2991) 2019-10-27 afdx spirv-fuzz: rename class, and fix bug related to dominance (#2990) 2019-10-25 afdx spirv-fuzz: Rework management of data synonyms (#2989) 2019-10-25 afdx spirv-fuzz: add class to represent equivalence relation (#2988) 2019-10-23 stevenperron Update DEPS (#2986) 2019-10-22 afdx spirv-fuzz: fuzzer pass to adjust memory access operands (#2968) 2019-10-22 greg Instrument: Add missing def-use analysis. (#2985) 2019-10-22 afdx spirv-fuzz: add missing functionality for matrix composites (#2974) 2019-10-21 stevenperron Update CHANGES 2019-10-18 chris Ensure timestamp does not vary with timezone. (#2982)
Roll third_party/tinyxml2/ cc1745b55..ff6165051 (60 commits)
https://github.com/leethomason/tinyxml2/compare/cc1745b552dd...ff61650517cc
$ git log cc1745b55..ff6165051 --date=short --no-merges --format='%ad %ae %s' 2019-08-10 leethomason setting the version to 7.1.0 2019-08-10 leethomason minor fixes to test cases 2019-08-10 leethomason add test cases 2019-08-10 leethomason support more bool options 2019-07-24 lionel.untereiner Add COMPONENT support at cmake install stage 2019-07-02 qilin.wang Supplement test case in xmltest.cpp 2019-05-30 qilin.wang adjust path of testfile
bomtest.xml
toresource/out
2019-05-22 aaronkirkham07 add missing uint64_t methods to XMLPrinter add missing XMLElement::Unsigned64Attribute body 2019-05-16 orbitcowboy Fixed -Wold-style-cast warnings from g++. 2019-04-29 qilin.wang fix comment in Programmatic DOM test case 2019-04-25 andrey.turcan Fixed typos 2019-04-12 cugone Missing uint64_t XMLElement::Unsigned64Text(uint64_t defaultValue) implementation 2019-04-12 cugone Forgot Text and XMLElement versions; 2019-04-11 cugone UnsignedInt64 support 2019-03-17 leethomason add license and minor readme edit 2019-03-07 sfriedri Issue 742: allow intermittent calls of XMLPrinter::ClearBuffer 2019-01-15 orbitcowboy Improved const correctness of local variables. There are no functional changes intended. 2019-01-15 aarnchng20w CMakeList.txt: fix wrong version 2018-11-18 mac-fly removed merge artifact from Doxygen control file 2018-11-17 leethomason fix export issue and cmake. version to 7.0.1 2018-11-08 scpeters tinyxml2.pc.in: use exec_prefix for libdir 2018-11-07 scpeters tinyxml2.pc.in: restore prefix to lib/include dir 2018-11-06 leethomason new docs 2018-11-06 leethomason setting the version to 7.0.0 2018-10-19 bolry Correct assigment interface for StrPair 2018-10-17 wipedout Fix slicing of int64_t 2018-10-16 wipedout Check the element is the last child of the document 2018-10-09 jimmy.delas Add support for position independant code compilation 2018-09-20 jschloss Make resources folder for xml test relative to current source and binary directory 2018-09-05 orbitcowboy Added explicit-keyword to constructors having 1 argument. 2018-08-25 leethomason remove virtual call in destruction 2018-07-28 leethomason fix huge number of declaration security issue 2018-07-17 orbitcowboy Fixed typos in comments. There are no functional changes intended. 2018-06-29 leethomason fix test cases 2018-06-29 leethomason remove deprecated errors. next version will be major. 2018-06-29 leethomason add assertion 2018-06-29 leethomason fix query return type 2018-06-29 leethomason remove dead yet conflicting method 2018-05-04 lsolanka add target_compile_definitions 2018-05-04 lsolanka use configure_package_config_file() 2018-04-28 lsolanka Replace absolute installation paths with relative 2018-06-20 johnb003 Updated CMakeLists.txt for relocatable installs 2018-06-20 johnb003 Made CMakeLists.txt installation relocatable. 2018-04-18 quam In PrintString, move the optimization under the if ( _processEntities ) block and retain the strlen Write in the new else block. Added a test case. 2018-04-06 leethomason update the readme 2018-04-05 leethomason setting the version to 6.2.0 2018-04-05 leethomason and the same fix in the test case 2018-04-05 leethomason fix compiler inconsistency 2018-04-05 leethomason clean up the depth tracking a bit 2018-04-05 leethomason upgrade to vs2017. fix stack overflow attack. 2018-03-23 wipedout Improve test message to avoid duplicate log output 2018-03-23 wipedout Simplify checks 2018-03-23 wipedout Cleanup ErrorName() tests 2018-03-23 jasjuang add namespace for cmake export 2018-03-15 wipedout Improve handles tests 2018-03-08 schmieder.matthias fixed issue where CTest is executed in the wrong directory 2018-02-05 noloader Fix typo in permissions 2018-02-05 noloader Add install and uninstall target to Makefile This PR closes some gaps in the makefile. It follows GNU coding standards and conventions at https://www.gnu.org/prep/standards/standards.html. It is not specific to GNU, and most of the world follows it. 2018-02-01 luxon.jean.pierre fix "dereference before null check" defect 2018-01-22 fcami fix installation path for .cmakeRoll third_party/vulkan-docs/ a5b10770a..fa497b29d (10 commits)
https://github.com/KhronosGroup/Vulkan-Docs/compare/a5b10770a313...fa497b29d870
$ git log a5b10770a..fa497b29d --date=short --no-merges --format='%ad %ae %s' 2019-11-03 oddhack Change log for November 4, 2019 Vulkan 1.1.127 spec update: 2019-10-21 oddhack Change log for October 21, 2019 Vulkan 1.1.126 spec update: 2019-10-19 petr_kraus Fix timeline semaphore features list (#1058) 2019-10-19 petr_kraus Editing of events queue ownership transfer notes (#1057) 2019-10-19 petr_kraus Fix Events VUID (#1056) 2019-10-19 petr_kraus Fix links inside links (#1067) 2019-10-19 petr_kraus Convert some links to https (#1064) 2019-10-19 TobyHector Clarify the ACCESS_MEMORY bit flags (#1014) 2019-10-19 TobyHector Removed misleading note as per 812 (#1048) 2019-10-19 TobyHector Clarify the memory mapping note about invalidation (#1049)
Roll third_party/vulkan-headers/ 5bc459e29..f3128cf6e (1 commit)
https://github.com/KhronosGroup/Vulkan-Headers/compare/5bc459e29213...f3128cf6eaff
$ git log 5bc459e29..f3128cf6e --date=short --no-merges --format='%ad %ae %s' 2019-11-03 oddhack Update for Vulkan-Docs 1.1.127
Roll third_party/vulkan-hpp/ 65af859e4..42d348f96 (8 commits)
https://github.com/KhronosGroup/Vulkan-Hpp/compare/65af859e4ded...42d348f96948
$ git log 65af859e4..42d348f96 --date=short --no-merges --format='%ad %ae %s' 2019-10-31 dj2 Allow setting tinyxml2 source directory (#417) 2019-10-30 asuessenbach Remove VULKAN_HPP_NOEXCEPT from functions that throw a LogicError. (#416) 2019-10-30 hisa.mocabe Disable CTAD on ArrayProxy's constructors (#405) 2019-10-28 asuessenbach Add a couple of new samples, improved some others: (#414) 2019-10-28 mtavenrath Fix typo when calling operator==(enum, enum) (#415) 2019-10-25 mtavenrath Fix msvc 2015 issue with operator== being ambigious and incorrect constexpr in ResultValue (#412) 2019-10-25 mtavenrath Update to Vulkan-Headers 1.1.126 (#411) 2019-10-23 31919558+nyronium Added noexcept on all correct locations (RAII, internal classes, free functions, trivial cases) (#338)
Roll third_party/vulkan-loader/ 6b804caab..ad8e97c6f (1 commit)
https://github.com/KhronosGroup/Vulkan-Loader/compare/6b804caab51f...ad8e97c6f2d2
$ git log 6b804caab..ad8e97c6f --date=short --no-merges --format='%ad %ae %s' 2019-10-30 baldurk loader: Reset sizes for each call to RegEnumValue
Roll third_party/vulkan-validationlayers/ e72895bb5..1838e1093 (9 commits)
https://github.com/KhronosGroup/Vulkan-ValidationLayers/compare/e72895bb5b17...1838e10934a7
$ git log e72895bb5..1838e1093 --date=short --no-merges --format='%ad %ae %s' 2019-11-01 mark cmake: Restore creation of standard validation json file 2019-08-21 jmacnak tests: Add RT shader group tests 2019-08-21 jmacnak layers: Add RT shader group validation 2019-10-30 mikes tests: Add macOS loader filename 2019-10-25 locke tests: Swapchain image layout 2019-10-28 locke layers: Swapchain pluarl bound_images 2019-09-27 tony gpu: Add more positive tests 2019-10-29 mark tests: Remove android limits workaround 2019-10-28 mark tests: Allow hw limits to override baked-in test GL limits
Created with: roll-dep third_party/effcee third_party/glslang third_party/googletest third_party/re2 third_party/shaderc third_party/spirv-cross third_party/spirv-headers third_party/spirv-tools third_party/tinyxml2 third_party/vulkan-docs third_party/vulkan-headers third_party/vulkan-hpp third_party/vulkan-loader third_party/vulkan-validationlayers