The changes in this CL are copied from Chromium.
Bug: dawn:355
Change-Id: I3772b5849b096dd11541b94331309293f1a64fb5
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/18903
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
Roll third_party/SPIRV-Tools/ fd773eb50..e95fbfb1f (9 commits)
fd773eb50d..e95fbfb1f5
$ git log fd773eb50..e95fbfb1f --date=short --no-merges --format='%ad %ae %s'
2020-04-02 afdx spirv-fuzz: Transformation to add OpConstantNull (#3273)
2020-04-02 afdx spirv-fuzz: Handle isomorphic types property in composite construction (#3262)
2020-04-02 afdx spirv-fuzz: Limit adding of new variables to 'basic' types (#3257)
2020-04-02 afdx spirv-fuzz: Only replace regular ids with synonyms (#3255)
2020-04-02 afdx spirv-fuzz: Introduce TransformationContext (#3272)
2020-04-02 afdx spirv-fuzz: Add validator options (#3254)
2020-04-02 alanbaker Update dominates to check for null nodes (#3271)
2020-04-01 alanbaker Set wrapped kill basic block's parent (#3269)
2020-03-31 caio.oliveira Validate Buffer and BufferBlock apply only to struct types (#3259)
Roll third_party/glslang/ 08c02ced7..b5757b950 (5 commits)
08c02ced79..b5757b9500
$ git log 08c02ced7..b5757b950 --date=short --no-merges --format='%ad %ae %s'
2020-04-03 rharrison Remove extra semicolons (#2170)
2020-04-02 mbechard Shader interface matching rework to fix#2136 (#2156)
2020-04-01 cepheus Build warning: Fix#2167: Remove nested reuse of 'unreachable'.
2020-03-31 cepheus Bump revision.
2020-03-30 alele Error assigns to objects of rayQueryEXT type.
Roll third_party/spirv-cross/ 9b3c5e12b..6637610b1 (7 commits)
9b3c5e12be..6637610b16
$ git log 9b3c5e12b..6637610b1 --date=short --no-merges --format='%ad %ae %s'
2020-04-03 post Expose a query if samplers or images are comparison resources.
2020-04-03 post Do not add NonWritable/NonReadable decorations for regular images.
2020-04-03 post MSL: Deal with cases where builtin is implicitly needed, declared, but unused.
2020-04-03 post HLSL: Add support for treating NonWritable UAV texture as SRV instead.
2020-04-03 troughton MSL: mark BuiltInFragCoord as implicitly used for subpass reads
2020-03-31 post MSL: Fix access chain for deep struct hierarchy on array of buffers.
2020-03-30 dsinclair Roll GLSLang, SPIRV-Tools and SPIRV-Headers
Created with:
roll-dep third_party/SPIRV-Tools third_party/glslang third_party/shaderc third_party/spirv-cross third_party/spirv-headers
Change-Id: Ia60a082e6d8b7bc954fedeb444cb5c91bf252f17
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/18880
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
f085b9745f..f175adffa9
$ git log f085b9745..f175adffa --date=short --no-merges --format='%ad %ae %s'
2020-04-02 rharrison Add flag to control if we build with -Werror (#1032)
2020-03-31 rharrison Add knob to control force_zero_initialized_variables (#1028)
2020-03-31 dgkoch update glslang to SDK-Candidate-2 tag (#1027)
2020-03-30 rharrison Rolling 5 dependencies and updated exceptions (#1026)
Created with:
roll-dep third_party/shaderc
Bug: dawn:347
Change-Id: Iacd580226c983ad8db71a3b6624ee89ae5c66931
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/18781
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
This patch records if a storage texture is declared as multisampled or
not in shaders after a fix in shaderc.
BUG=dawn:267
TEST=dawn_unittests
Change-Id: I3914ccd3bfa4d0b6ab9c7cfb650352b70ba067a5
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/17600
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
The roll in Chromium is failing, because Dawn doesn't handle all of the new enum
values, but I cannot land the 'proper' fix in Dawn, because Chromium doesn't yet
know about the new enum values. Yay, cross dependencies.
So my solution is land the default case in Dawn, land the DEPS roll in Chromium,
then patch in the 'proper' cases in Dawn.
Roll third_party/shaderc/ a7657e4fa..95185d920 (2 commits)
a7657e4fa2..95185d920a
$ git log a7657e4fa..95185d920 --date=short --no-merges --format='%ad %ae %s'
2020-03-17 rharrison Rolling 4 dependencies (#1002)
2020-03-16 rharrison Add reflection support for storage textures (#1001)
Created with:
roll-dep third_party/shaderc
Change-Id: Id73b38643d9a6d418be9c75e218fdad7a18839bc
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/17164
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Roll third_party/SPIRV-Tools/ 4a80497a8..8910ea5f1 (4 commits)
4a80497a88..8910ea5f1c
$ git log 4a80497a8..8910ea5f1 --date=short --no-merges --format='%ad %ae %s'
2020-02-23 nicolasweber Fix Wrange-loop-analysis warnings in SPIRV-Tools. (#3201)
2020-02-21 geofflang Add missing dependencies when generating spvtools_core_tables (#3199)
2020-02-21 afdx Brief guide to writing a spirv-fuzz fuzzer pass (#3190)
2020-02-21 47594367+rg3igalia Fix ignored const qualifier warning in static_cast (#3197)
Roll third_party/glslang/ c12493ff6..07e1a0a67 (1 commit)
c12493ff69..07e1a0a67a
$ git log c12493ff6..07e1a0a67 --date=short --no-merges --format='%ad %ae %s'
2020-02-22 rex.xu Fix an issue of SPV generation for imageAtomicStore.
Roll third_party/shaderc/ 738f1655a..1059f43a3 (1 commit)
$ git log 738f1655a..1059f43a3 --date=short --no-merges --format='%ad %ae %s'
2020-02-21 rharrison Rolling 6 dependencies and update expectations (#987)
Roll third_party/spirv-cross/ f19fdb94d..c5f7b5575 (5 commits)
f19fdb94d7..c5f7b55756
$ git log f19fdb94d..c5f7b5575 --date=short --no-merges --format='%ad %ae %s'
2020-02-24 post MSL: Add C API for force native arrays.
2020-02-24 post MSL: Add native array test for composite array initialization.
2020-02-24 post MSL: Reintroduce workaround for constant arrays being passed by value.
2020-02-24 post MSL: Reinstate workaround for returning arrays.
2020-02-24 post MSL: Add a workaround path to force native arrays for everything.
Created with:
roll-dep third_party/SPIRV-Tools third_party/glslang third_party/shaderc third_party/spirv-cross third_party/spirv-headers
Change-Id: Ic9f459c21a9656093b5ec27e19f0744182734c7c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/16120
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Roll third_party/SPIRV-Tools/ 323a81fc5..1b3441036 (9 commits)
323a81fc5e..1b3441036a
$ git log 323a81fc5..1b3441036 --date=short --no-merges --format='%ad %ae %s'
2020-01-24 syoussefi Fix chromium build (#3152)
2020-01-24 dneto Clarify mapping of target env to SPIR-V version (#3150)
2020-01-24 greg Use dummy switch instead of dummy loop in MergeReturn pass. (#3151)
2020-01-23 alanbaker Fix structured exit validation (#3141)
2020-01-23 dneto Add spvParseVulkanEnv (#3142)
2020-01-23 jaebaek Handle conflict between debug info and existing validation rule (#3104)
2020-01-23 syoussefi Use spirv-headers' BUILD.gn (#3148)
2020-01-23 syoussefi Roll external/spirv-headers/ af64a9e82..dc77030ac (4 commits) (#3147)
2020-01-21 afdx spirv-fuzz: Refactoring and type-related fixes (#3144)
Roll third_party/glslang/ b0ada8035..07a55839e (15 commits)
b0ada80356..07a55839ee
$ git log b0ada8035..07a55839e --date=short --no-merges --format='%ad %ae %s'
2020-01-27 rharrison Use correct enum type in case statement
2020-01-27 cepheus Build: Fix more build warnings caused by PR #2038.
2020-01-26 cepheus Build warning: Fix#2062, missing enum value in a switch.
2020-01-08 sk Public: replaced tabs with spaces
2020-01-08 sk CInterface: replaced tabs with spaces
2019-12-30 sk CInterface: added static asserts to compare C/C++ enums
2019-12-30 sk Added LAST_ELEMENT_MARKER for every enum used in the C interface
2019-12-26 sk CInterface: replaced SH_ prefix with GLSLANG_
2019-12-25 sk CInterface: added glslang_program_SPIRV_get_ptr()
2019-12-25 sk CInterface: added files to CMakeLists.txt
2019-12-25 sk CInterface: added _BIT suffix to glslang_messages_t and glslang_reflection_options_t, fixed const-correctness
2019-12-25 sk CInterface: reformatted according to .clang-format rules
2019-12-24 sk Added original glslang_c_interface implementation by Viktor Latypov
2019-12-24 laddoc Add Tess machine dependent built-in variables initialization for GLES 3.2
2019-10-18 timo.suoranta Fixes for gcc 9 / -Werror=deprecated-copy
Roll third_party/shaderc/ a4f9acedf..0681dd61d (2 commits)
a4f9acedf3..0681dd61d3
$ git log a4f9acedf..0681dd61d --date=short --no-merges --format='%ad %ae %s'
2020-01-27 rharrison Remove deprecated APIs (#974)
2020-01-24 dneto Handle new Glslang profile enum in switch (#973)
Roll third_party/spirv-cross/ f9818f080..68bf0f824 (6 commits)
f9818f0804..68bf0f824c
$ git log f9818f080..68bf0f824 --date=short --no-merges --format='%ad %ae %s'
2020-01-27 post Compile fix on older compilers.
2020-01-27 post GLSL: Support GL_ARB_enchanced_layouts for XFB.
2020-01-25 cdavis MSL: Move inline uniform blocks to the end of the argument buffer.
2019-12-16 cdavis MSL: Support inline uniform blocks in argument buffers.
2020-01-23 post Make SmallVector noexcept.
2020-01-22 42098783+barath121 Typo at line 324
Roll third_party/spirv-headers/ 204cd131c..dc77030ac (2 commits)
204cd131c4..dc77030acc
$ git log 204cd131c..dc77030ac --date=short --no-merges --format='%ad %ae %s'
2020-01-20 dneto Fix the license to match LICENSE
2020-01-20 syoussefi Add BUILD.gn
Created with:
roll-dep third_party/SPIRV-Tools third_party/glslang third_party/shaderc third_party/spirv-cross third_party/spirv-headers
Change-Id: I696c1facf47a03e03e09c72c4d44449a37c1b971
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/15480
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Roll third_party/SPIRV-Tools/ f8d7df760..323a81fc5 (2 commits)
f8d7df760c..323a81fc5e
$ git log f8d7df760..323a81fc5 --date=short --no-merges --format='%ad %ae %s'
2019-09-04 alanbaker Validate Vulkan 1.2 capabilities
2019-08-28 dneto Add basic support for Vulkan 1.2: SPV_ENV_VULKAN_1_2
Roll third_party/glslang/ d203754bc..3ed344dd7 (4 commits)
d203754bc1..3ed344dd78
$ git log d203754bc..3ed344dd7 --date=short --no-merges --format='%ad %ae %s'
2020-01-16 cepheus Fix#2059, and also attempt to skip test bots [skip ci]
2019-12-24 laddoc Add Error check flag in io mapper
2020-01-15 cepheus Update to latest SPIRV-Tools, supporting Vulkan 1.2.
2020-01-15 cepheus SPV/Vulkan: Add support for Vulkan 1.2, which defaults to SPIR-V 1.5.
Roll third_party/shaderc/ df0e683b5..f53792645 (2 commits)
df0e683b58..f53792645f
$ git log df0e683b5..f53792645 --date=short --no-merges --format='%ad %ae %s'
2020-01-15 rharrison Use the correct comparison when checking for not MSL (#960)
2020-01-15 dneto Support Vulkan 1.2 (#958)
Roll third_party/spirv-cross/ 172e39f03..f9818f080 (7 commits)
172e39f039..f9818f0804
$ git log 172e39f03..f9818f080 --date=short --no-merges --format='%ad %ae %s'
2020-01-16 post Update license headers to 2020.
2020-01-16 post Run format_all.sh.
2020-01-16 post MSL: Add support for force-activating IAB resources.
2020-01-16 post Deal with illegal names in types as well.
2020-01-15 post Reflection: Add array stride/matrix stride reflection.
2020-01-15 post Reflection: Emit reflection information for array size literalness.
2020-01-15 post GLSL: Implement geometry shader passthrough extension.
Created with:
roll-dep third_party/SPIRV-Tools third_party/glslang third_party/shaderc third_party/spirv-cross third_party/spirv-headers
Change-Id: Icf361e327598702ecfc0a4cdd3014d0060f2c083
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/15200
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Roll third_party/SPIRV-Tools/ 96354f504..fb2e81981 (17 commits)
96354f5047..fb2e819819
$ git log 96354f504..fb2e81981 --date=short --no-merges --format='%ad %ae %s'
2020-01-08 dneto Fix GN build for OpenCL.DebugInfo.100 update (#3134)
2020-01-08 bclayton Fix bad parameter names in error message (#3129)
2020-01-07 alanbaker Revert PR #3093 (#3131)
2020-01-07 alanbaker Disallow forward references in arrays (#3093)
2020-01-07 afdx spirv-fuzz: Add fuzzer pass to perform module donation (#3117)
2020-01-06 dneto GetOperandConstants operand can be const (#3126)
2019-12-27 dneto Avoid pessimizing std::move (#3124)
2019-12-27 kburjack Fix typo in validation message (#3122)
2019-12-27 greg Change default version for CreatInstBindlessCheckPass to 2 (#3119)
2019-12-20 greg Fix convert-relax-to-half invalid code (#3099) (#3106)
2019-12-19 dneto Support OpenCL.DebugInfo.100 extended instruction set (#3080)
2019-12-19 afdx spirv-fuzz: Always add new globals to entry point interfaces (#3113)
2019-12-19 afdx spirv-fuzz: Transformation to add a new function to a module (#3114)
2019-12-19 afdx spirv-fuzz: Avoid passing access chains as parameters (#3112)
2019-12-18 dneto Add support for SPV_KHR_non_semantic_info (#3110)
2019-12-16 afdx spirv-fuzz: Transformations to add types, constants and variables (#3101)
2019-12-16 greg Make Instrumentation format version 2 the default (Step 1) (#3096)
Roll third_party/glslang/ ebf634bca..518136706 (13 commits)
ebf634bcaa..5181367062
$ git log ebf634bca..518136706 --date=short --no-merges --format='%ad %ae %s'
2020-01-07 cepheus Fix#1829: Add "--" command-line options for macro def/undef.
2020-01-08 laddoc Move symbol builtin check to grammar stage
2020-01-06 lryer Add missing extension defination
2020-01-06 cepheus Bump revision
2020-01-06 laddoc Add builtin constants
2019-11-26 laddoc Add support for ARB_gpu_shader_fp64
2019-12-26 cepheus HLSL: Fix#2037: Integer dot used incorrect input for adds.
2019-12-25 laddoc atomic counter offset should align to 4
2019-12-25 laddoc Modify atomic_uint binding check
2019-11-26 laddoc Add support for ARB_uniform_buffer_object
2019-11-26 laddoc Add support for ARB_texture_multisample
2019-11-26 laddoc Add support for ARB_sample_shading
2019-12-20 cepheus Command-line: Give better error messages. From #1829.
Roll third_party/shaderc/ 6d3e0ee67..0b9a2992c (3 commits)
6d3e0ee67f..0b9a2992c7
$ git log 6d3e0ee67..0b9a2992c --date=short --no-merges --format='%ad %ae %s'
2020-01-07 rharrison Rolling 5 dependencies and updating expectations (#946)
2019-12-18 rharrison Adding in missing APIs for MSL support in Dawn (#943)
2019-12-16 rharrison Rolling 4 dependencies (#942)
Roll third_party/spirv-cross/ f912c3289..172e39f03 (20 commits)
f912c32898..172e39f039
$ git log f912c3289..172e39f03 --date=short --no-merges --format='%ad %ae %s'
2020-01-09 post HLSL: Add a resource remapping API similar to MSL.
2020-01-09 post MSL: Deal with sign on wave min/max.
2020-01-09 post HLSL: Deal with casting for WaveActiveMin/Max.
2020-01-09 post GLSL: Deal with sign in subgroup Min/Max operations.
2020-01-08 post Run format_all.sh.
2020-01-08 post HLSL: Fix bug when reading and writing structs from SSBO.
2020-01-08 post HLSL: Implement stores for complex composites in ByteAddressBuffers.
2020-01-08 post HLSL: Support loading complex composites from ByteAddressBuffer.
2020-01-08 post Run format_all.sh.
2020-01-07 post MSL: Deal with padded fragment output + Component decoration.
2020-01-07 post MSL: Explicitly don't support component packing for tessellation.
2020-01-07 post MSL: Don't set OrigID when emitting component packed vectors.
2020-01-07 post MSL: Deal with packing vectors for vertex input/fragment output.
2020-01-07 post MSL: Add trivial tests for Component decoration.
2020-01-06 post Fix Clang warnings.
2020-01-06 post Roll custom versions of isalpha/isalnum.
2020-01-06 post Add test shader for OpCopyLogical with packing/unpacking.
2020-01-06 post Go through access chain path for OpCopyLogical.
2020-01-06 post Basic implementation of OpCopyLogical.
2019-12-21 dm86.jang Add debug prefix on Windows
Created with:
roll-dep third_party/SPIRV-Tools third_party/glslang third_party/shaderc third_party/spirv-cross third_party/spirv-headers
BUG=1037829
Change-Id: I0dc87160c607e615be6e6f2f6dd4a892b010de51
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/14943
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
jsoncpp causes some flaky failures because of inconsistencies in nested
DEPS. We barely use it for JSON serialization so the simplest solution
is to just manually write the serialization for perf test tracing data.
Bug: dawn:208
Change-Id: Ie5e4b5436e2c9e32e6817d64c6e95c774cb8751f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/14720
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
Roll third_party/SPIRV-Tools/ 85f3e93d1..e82a42860 (13 commits)
85f3e93d13..e82a428605
$ git log 85f3e93d1..e82a42860 --date=short --no-merges --format='%ad %ae %s'
2019-12-03 dneto WebGPU: Array size at most max signed int + 1 (#3077)
2019-12-03 9856269+sarahM0 Permit the debug instructions in WebGPU SPIR-V - remove from the optimizer (#3083)
2019-12-03 dneto graphics robust access: use signed clamp (#3073)
2019-12-02 stevenperron Folding: perform add and sub on mismatched integer types (#3084)
2019-11-29 afdx spirv-fuzz: Fix invalid tests (#3079)
2019-11-27 alanbaker Validate nested constructs (#3068)
2019-11-27 afdx spirv-fuzz: Improve debugging facilities (#3074)
2019-11-27 stevenperron Handle unreachable block when computing register pressure (#3070)
2019-11-27 greg Improve RegisterSizePasses (#3059)
2019-11-26 headlessclayton utils/vscode: Add install.bat (#3071)
2019-11-26 52076061+digit-google build: cmake: Add support for Fuchsia. (#3062)
2019-11-26 dneto Add test with explicit example of stripping reflection info (#3064)
2019-11-26 9856269+sarahM0 Permit the debug instructions in WebGPU SPIR-V (#3063)
Roll third_party/glslang/ 38b4db48f..0de87ee9a (6 commits)
38b4db48f9..0de87ee9a5
$ git log 38b4db48f..0de87ee9a --date=short --no-merges --format='%ad %ae %s'
2019-12-04 rnk Remove glslang::pool_allocator::setAllocator
2019-01-21 ian.d.romanick INTEL_shader_integer_functions2: Add SPIR-V generation
2018-09-20 ian.d.romanick INTEL_shader_integer_functions2: Add compiler front-end support
2018-09-20 ian.d.romanick INTEL_shader_integer_functions2: Add basic extension tracking
2019-12-02 ian.d.romanick Update README.md to include other test requirements
2019-11-27 malcolm.bechard Fix#1981
Roll third_party/shaderc/ efedd6739..f9278b9cb (4 commits)
efedd67396..f9278b9cb6
$ git log efedd6739..f9278b9cb --date=short --no-merges --format='%ad %ae %s'
2019-12-05 rharrison Change from old status type in the API (#927)
2019-12-04 rharrison Remove unused variable from C++ API (#926)
2019-12-04 9856269+sarahM0 spvc: Add missing APIs for HLSL support in Dawn - set_decoration (#924)
2019-12-03 rharrison Convert spvc return codes to their own enum (#923)
Roll third_party/spirv-cross/ fd5aa3ad5..15b860eb1 (15 commits)
fd5aa3ad51..15b860eb1c
$ git log fd5aa3ad5..15b860eb1 --date=short --no-merges --format='%ad %ae %s'
2019-12-04 post Remove obsolete use of AtomicCounterMemoryMask.
2019-12-04 post Don't emit memoryBarrierShared() in workgroup control barriers.
2019-12-03 dsinclair Update graphics robust access results
2019-12-03 post Fix MSVC warnings when building without exceptions.
2019-12-03 dsinclair Share test shader script
2019-12-03 post Update update_test_shaders.sh as well.
2019-12-02 dsinclair Roll SPIRV-Tools, SPIRV-Headers and GLSLang
2019-12-02 post Fix uninitialized memory issue.
2019-12-02 post MSL: Support ClipDistance as an input stage variable.
2019-11-28 post Fix sign handling for S/UToF.
2019-11-28 post MSL: Fix automatic binding allocation for image atomic buffers.
2019-11-27 agaule Added --msl-decoration-binding command line argument to enable binding decoration for Metal.
2019-11-26 sarahmashay Add licensing header to test_shaders.py
2019-11-26 post Mark loop headers as complex as early as possible.
2019-11-25 bill.hollings Expose as public Compiler::update_active_builtins() and has_active_builtin().
Created with:
roll-dep third_party/SPIRV-Tools third_party/glslang third_party/shaderc third_party/spirv-cross third_party/spirv-headers
Change-Id: I48bf11c85a723473d6d91eb40d1fa42e9b025e1a
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/14280
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
This is the first step for having a fully operational SPVC usage
path. This version of SPVC integration uses SPVC for setting up the
options to the compiler, but a lot of the actual interaction with
spirv-cross is done in Dawn, just via SPVC's compiler object.
Future CLs will migrate more of the spirv-cross interaction to using
the SPVC API, eventually removing the need for Dawn to know about
spirv-cross.
BUG=dawn:288
Change-Id: I68e0773f910d7fe967235b6987b3debe1d13883f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/14143
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Switch over to using the rule for building spirv-cross from spvc. This
allows GN to avoid double symbol issues in future patches.
Roll third_party/shaderc/ 1d6155d86..30f0559dd (2 commits)
1d6155d867..30f0559dd2
$ git log 1d6155d86..30f0559dd --date=short --no-merges --format='%ad %ae %s'
2019-11-27 rharrison Remove spvc's dependency on shaderc's util library (#914)
2019-11-27 rharrison Clean up how include dirs are propegated for spirv_cross (#912)
Created with:
roll-dep third_party/shaderc
BUG=dawn:281
Change-Id: I49cf237dcab884e84180f83cbbb21acfa549fe61
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/14121
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Roll third_party/shaderc/ 24536bdd3..1d6155d86 (1 commit)
24536bdd3c..1d6155d867
$ git log 24536bdd3..1d6155d86 --date=short --no-merges --format='%ad %ae %s'
2019-11-27 rharrison Moving spirv-cross dep from Dawn into shaderc (#911)
Created with:
roll-dep third_party/shaderc
BUG=dawn:285
Change-Id: I47d202166f9e34c88e7aad75d6a3c8aa9a7d6499
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/14120
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Also update shaderc override to be the correct directory
BUG=dawn:285
Change-Id: I021755bbc8f50daa65b6964f3e42d395b51bb94a
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/14080
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
This adds swiftshader as a dependency of Dawn, and when it is present
dawn_use_swiftshader=true will force usage of it. (due to a Vulkan
loader limitation we can't have both regular drivers and swiftshader in
the same VkInstance).
BUG=dawn:283
Change-Id: Ib94f4dcca652eb380e994f007cdcfb145b1a5102
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/13440
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Roll third_party/SPIRV-Tools/ 2ee9aaa28..85f3e93d1 (2 commits)
2ee9aaa288..85f3e93d13
$ git log 2ee9aaa28..85f3e93d1 --date=short --no-merges --format='%ad %ae %s'
2019-11-22 mattst88 Respect CMAKE_INSTALL_LIBDIR in installed CMake files (#3054)
2019-11-20 rharrison Add missing dealloc (#3061)
Roll third_party/glslang/ f4d466852..38b4db48f (6 commits)
f4d4668529..38b4db48f9
$ git log f4d466852..38b4db48f --date=short --no-merges --format='%ad %ae %s'
2019-11-23 cepheus Fix#1983: __ is okay starting with ES 300, rather than 310.
2019-11-22 cepheus Fix#1987: Use large enough built-in buffer to hold vec4 of maxint-64.
2019-11-21 dsinclair Check for ENABLE_SPVREMAPPER flag in CMakeList files.
2019-11-18 Arfrever Respect CMAKE_INSTALL_LIBDIR in installed CMake files
2019-11-14 andreas.floejt Add a test for 8- and 16-bit construction.
2019-11-11 andreas.floejt Fix construction issue for 8 and 16 bit types.
Roll third_party/shaderc/ c7f5cfd07..da52fae11 (6 commits)
c7f5cfd07f..da52fae116
$ git log c7f5cfd07..da52fae11 --date=short --no-merges --format='%ad %ae %s'
2019-11-21 rharrison Revert "Convert to using standard spirv_cross deps in BUILD.gn (#902)" (#905)
2019-11-21 9856269+sarahM0 Add spvc parser support for OpTypeForwardPointer, OpTypeAccelerationStructureNV (#903)
2019-11-21 rharrison Convert to using standard spirv_cross deps in BUILD.gn (#902)
2019-11-21 rharrison Convert spvc parser flag from build time to runtime (#901)
2019-11-21 9856269+sarahM0 Add spvc parser support for OpGroupDecorate, OpGroupMemberGecorate, OpDecorateStringGOOGLE, and OpMemberDecorateStringGOOGLE (#899)
2019-11-20 9856269+sarahM0 Add spvc parser support for OpUndef, OpString, OpMemberDecorate, OpDecorationGroup, OpLine, and OpNoLine (#898)
Created with:
roll-dep third_party/SPIRV-Tools third_party/glslang third_party/shaderc third_party/spirv-cross third_party/spirv-headers
Change-Id: I89de33e4bcee1d73e8ee91fcbe8984939fa8fe3e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/14034
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
This reverts commit 1954436fe2.
Reason for revert:
The shaderc side of this multi-patch brings in a dependency on glslang, which uses a static initializer, which chromium doesn't like.
Original change's description:
> Convert spvc build flag to a runtime toggle
>
> Also moves some of the spirv_cross code into the main library that was
> feature guarded, since spvc requires it.
>
> BUG=dawn:281
>
> Change-Id: I482d1d5a5c851956d3815bad90665c52a1ea15bb
> Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/13860
> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
TBR=cwallez@chromium.org,kainino@chromium.org,enga@chromium.org,rharrison@chromium.org
Change-Id: Ia9a025fb4440c96874d1b45776a9f97023ca591d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: dawn:281
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/13941
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Also moves some of the spirv_cross code into the main library that was
feature guarded, since spvc requires it.
BUG=dawn:281
Change-Id: I482d1d5a5c851956d3815bad90665c52a1ea15bb
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/13860
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Roll third_party/SPIRV-Tools/ 12e54dae1..2ee9aaa28 (11 commits)
12e54dae16..2ee9aaa288
$ git log 12e54dae1..2ee9aaa28 --date=short --no-merges --format='%ad %ae %s'
2019-11-19 rharrison Initialize binary for use as guard later (#3058)
2019-11-19 stevenperron Handle OpPhi with no in operands in value numbering (#3056)
2019-11-19 stevenperron Kill the id-to-func map after wrap-opkill (#3055)
2019-11-18 rharrison Convert stderr and stdout in status to strings on assignment (#3049)
2019-11-14 dneto Update README (#3047)
2019-11-14 pierremoreau Update README (#3048)
2019-11-13 dneto Avoid uninit warning in GCC (#3044)
2019-10-23 bclayton utils/vscode: Add SPIR-V language server support
2019-11-11 bclayton utils/vscode: Add go language server packages.
2019-11-12 alanbaker Fix operand access of composite in upgrade memory model (#3021)
2019-11-12 alanbaker Validate array stride does not cause overlap (#3028)
Roll third_party/glslang/ 37dcb8945..f4d466852 (1 commit)
37dcb89457..f4d4668529
$ git log 37dcb8945..f4d466852 --date=short --no-merges --format='%ad %ae %s'
2019-11-14 cepheus HLSL: Fix#1976: Don't let ENABLE_HLSL change struct/class layout.
Roll third_party/shaderc/ 0865050e5..c7f5cfd07 (11 commits)
0865050e54..c7f5cfd07f
$ git log 0865050e5..c7f5cfd07 --date=short --no-merges --format='%ad %ae %s'
2019-11-20 rharrison Rolling 4 dependencies (#897)
2019-11-19 rharrison Migrate away from nosetest to unittest (#896)
2019-11-18 9856269+sarahM0 Add spvc parser support for control flow instructions (#894)
2019-11-15 dneto Android.mk: Avoid polluting NDK build's test tree. (#888)
2019-11-15 rharrison Add access to MSL options needed by Dawn (#893)
2019-11-14 9856269+sarahM0 Add spvc parser support for all OpConstant.* and OpSpecConstant.* (#886)
2019-11-13 dneto Android.mk: Fix detection of spirv-headers directory (#887)
2019-11-13 9856269+sarahM0 Add spvc parser support and unit tests for: OpTypeMatrix, OpTypeRuntimeArray, OpTypeImage, OpTypeSampler, OpTypeSampledImage (#885)
2019-11-13 rharrison Remove the deprectated all-in-one generation API (#883)
2019-11-13 rharrison Expose spirv_cross compiler to ease integration into Dawn (#884)
2019-11-13 9856269+sarahM0 Add spvc parser support and unit tests for: OpTypeBool, OpTypeFloat, … (#881)
Roll third_party/spirv-headers/ af64a9e82..204cd131c (2 commits)
af64a9e826..204cd131c4
$ git log af64a9e82..204cd131c --date=short --no-merges --format='%ad %ae %s'
2019-11-20 Tobias.Hector Off-by-one errors
2019-11-20 Tobias.Hector Reserve a new block of 64 opcodes
Created with:
roll-dep third_party/SPIRV-Tools third_party/glslang third_party/shaderc third_party/spirv-cross third_party/spirv-headers
Change-Id: Id1417493410e35b951d1d4623576b11fa2baab2b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/13840
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Roll third_party/SPIRV-Tools/ 3724cfbea..12e54dae1 (10 commits)
3724cfbea8..12e54dae16
$ git log 3724cfbea..12e54dae1 --date=short --no-merges --format='%ad %ae %s'
2019-11-11 ehsannas Update Offset to ConstOffset bitmask if operand is constant. (#3024)
2019-11-08 dneto Try to fix go linter: exported constant comment (#3026)
2019-11-08 afdx spirv-fuzz: Eliminate spurious semicolons (#3025)
2019-11-07 afdx spirv-fuzz: simplify transformation for replacing an id with a synonym (#3020)
2019-11-07 alanbaker Re-enable OpReadClockKHR validation (#3013)
2019-11-07 dneto Python 3: remove deprecated U qualifier on 'open' (#3019)
2019-11-07 paulthomson Remove semicolon (#3022)
2019-11-06 afdx spirv-fuzz: vector shuffle transformation (#3015)
2019-11-06 afdx Add basic documentation about spirv-fuzz (#3016)
2019-11-05 dneto Fix Go lint issues: comment exported symbols (#3014)
Roll third_party/glslang/ 5d0e01d9e..37dcb8945 (5 commits)
5d0e01d9e7..37dcb89457
$ git log 5d0e01d9e..37dcb8945 --date=short --no-merges --format='%ad %ae %s'
2019-11-12 cepheus HLSL: Fix#1960: fmod() was not converting int args to float.
2019-11-07 dneto SPIR-V postprocessing: WEB case only needs CFG mods
2019-11-06 kainino Fix compileGLSLZeroCopy accidental minification
2019-11-06 dsinclair Add deprecation for SPIRV/ install folder location.
2019-11-05 cepheus Fix#1959 by reverting 7b0e236 to put files in two places.
Roll third_party/shaderc/ f4cf10c66..c9d5be6b0 (2 commits)
f4cf10c66f..c9d5be6b01
$ git log f4cf10c66..c9d5be6b0 --date=short --no-merges --format='%ad %ae %s'
2019-11-11 rharrison Remove deprecated items from result/message refactoring (#878)
2019-11-11 9856269+sarahM0 Add spvc parser support and unit tests for OpVariable, OpDecorate, OpExtInstImport, … … (#873)
Roll third_party/spirv-cross/ 24f209eb9..fd5aa3ad5 (12 commits)
24f209eb93..fd5aa3ad51
$ git log 24f209eb9..fd5aa3ad5 --date=short --no-merges --format='%ad %ae %s'
2019-11-12 post CMake: Clarify some warning messages.
2019-11-12 post HLSL: Add CLI support for --hlsl-auto-binding.
2019-11-11 post HLSL: Add support to remove register() bindings.
2019-11-07 post MSL: Remove dubious workaround code in unpack_expression.
2019-11-07 post MSL: Fix unpack_expression from column of padded matrix.
2019-11-06 post HLSL: Report more explicitly which member failed validation.
2019-11-06 post HLSL: Report which cbuffer failed validation.
2019-11-06 post Move .invalid. test shaders to the more appropriate subfolders.
2019-11-05 dsinclair Move all .invalid shaders into no-opt folders.
2019-11-05 dsinclair Remove old reference shaders
2019-11-05 dsinclair Only run spirv-opt if the spirv is valid.
2019-11-05 dsinclair Roll GLSLang and SPIRV-Tools
Created with:
roll-dep third_party/SPIRV-Tools third_party/glslang third_party/shaderc third_party/spirv-cross third_party/spirv-headers
Change-Id: I7b57223fabdd62adcdfd17756c866e9dfa23b374
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/13421
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Subtle change to how results are handled requiring another change.
Rolling DEPS ahead to pick up change.
Roll third_party/shaderc/ 76ee91e12..f4cf10c66 (4 commits)
76ee91e126..f4cf10c66f
$ git log 76ee91e12..f4cf10c66 --date=short --no-merges --format='%ad %ae %s'
2019-11-11 rharrison Correct Unicode issue with add_copyright.py (#876)
2019-11-08 rharrison Another major API rework (#871)
2019-11-07 rharrison Remove deprecated API elements (#870)
2019-11-07 9856269+sarahM0 Add support and unit test for OpTypeInt, OpTypePointer and OpConstant (#872)
Created with:
roll-dep third_party/shaderc
Change-Id: Ic461c3ec135d2c73ebadede62fb34c90e7961eda
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/13380
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Due to a renaming/refactoring of the spvc API Dawn is currently using
a deprecated class name. Fixing this, so the deprecated APIs can be
removed.
Also including the roll to pick up the API changes.
Roll third_party/shaderc/ 0a260d789..76ee91e12 (7 commits)
0a260d789f..76ee91e126
$ git log 0a260d789..76ee91e12 --date=short --no-merges --format='%ad %ae %s'
2019-11-06 9856269+sarahM0 Fix spvc test machanism and adds unit tests for OpSource (#868)
2019-11-06 rharrison Move spirv_cross state out of result and rename opaque state handle (#865)
2019-11-05 9856269+sarahM0 Add unit test for spvcir parser (#866)
2019-11-04 rharrison Rolling 5 dependencies (#862)
2019-11-04 9856269+sarahM0 Add --emit-line-drective option (#861)
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)
Created with:
roll-dep third_party/shaderc
Change-Id: I81649618da6753657ef5a7533785559c2a13c416
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/13180
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Deploy self-built Vulkan validation layers instead of system installed
one. And it will reuse third_party/angle's Vulkan validation layers if
building with chromium.
Bug: dawn:150
Change-Id: I94e26f7a152fb2a1c39bcb102d60024f4d65eee6
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/11120
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Roll third_party/SPIRV-Tools/ 618ee5094..3724cfbea (7 commits)
618ee50942..3724cfbea8
$ git log 618ee5094..3724cfbea --date=short --no-merges --format='%ad %ae %s'
2019-11-05 afdx spirv-fuzz: better computation of data synonym facts (#3010)
2019-11-05 afdx spirv-fuzz: make equivalence classes deterministic (#3011)
2019-11-04 jmadill Add missing headers to GN. (#3009)
2019-11-04 chris Correct "environment" typo (#3007)
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)
Roll third_party/glslang/ b131630e7..5d0e01d9e (8 commits)
b131630e7c..5d0e01d9e7
$ git log b131630e7..5d0e01d9e --date=short --no-merges --format='%ad %ae %s'
2019-11-04 rharrison Remove std::move that is breaking chromium roll
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
Roll third_party/shaderc/ 0a260d789..f16e79385 (4 commits)
0a260d789f..f16e793858
$ git log 0a260d789..f16e79385 --date=short --no-merges --format='%ad %ae %s'
2019-11-04 rharrison Rolling 5 dependencies (#862)
2019-11-04 9856269+sarahM0 Add --emit-line-drective option (#861)
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)
Roll third_party/spirv-cross/ d253f41e1..24f209eb9 (4 commits)
d253f41e17..24f209eb93
$ git log d253f41e1..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
Created with:
roll-dep third_party/SPIRV-Tools third_party/glslang third_party/shaderc third_party/spirv-cross third_party/spirv-headers
Change-Id: I6109f6d6c0602d39d459bb3f4983ee2c88a6fcb9
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/13081
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Recently, BUILD.gn has been added to spirv-cross repo:
https://github.com/KhronosGroup/SPIRV-Cross/blob/master/gn/BUILD.gn
However, it is incomplete, currently only inlcudes small config needed
by ANGLE's metal backend.
When building ANGLE and Dawn together with chromium, errors were thrown:
ERROR at //third_party/spirv-cross/spirv-cross/spirv_common.hpp:21:11: Include not allowed.
#include "spirv_cross_containers.hpp"
^-------------------------
It is not in any dependency of
//third_party/dawn/third_party:spirv_cross
The include file is in the target(s):
//third_party/spirv-cross/spirv-cross/gn:spirv_cross_sources
which should somehow be reachable.
___________________
ERROR at //third_party/spirv-cross/spirv-cross/spirv_common.hpp:22:11: Include not allowed.
#include "spirv_cross_error_handling.hpp"
^-----------------------------
It is not in any dependency of
//third_party/dawn/third_party:spirv_cross
Bug: angleproject:2634
Change-Id: Idb328643db0b765ab228ee7d59d7996b6e6073e4
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/13020
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Roll third_party/SPIRV-Tools/ e8c3f9b0b..618ee5094 (15 commits)
e8c3f9b0b4..618ee50942
$ git log e8c3f9b0b..618ee5094 --date=short --no-merges --format='%ad %ae %s'
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
Roll third_party/glslang/ 834ee546f..b131630e7 (16 commits)
834ee546f9..b131630e7c
$ git log 834ee546f..b131630e7 --date=short --no-merges --format='%ad %ae %s'
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/shaderc/ c4835b852..0a260d789 (5 commits)
c4835b8523..0a260d789f
$ git log c4835b852..0a260d789 --date=short --no-merges --format='%ad %ae %s'
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)
Roll third_party/spirv-cross/ ff1897ae0..00189b19a (90 commits)
ff1897ae0e..00189b19a5
$ git log ff1897ae0..00189b19a --date=short --no-merges --format='%ad %ae %s'
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<T>.
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-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<T> 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<T> 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.
Created with:
roll-dep third_party/SPIRV-Tools third_party/glslang third_party/shaderc third_party/spirv-cross third_party/spirv-headers
Change-Id: I2a8721a29f71e50b617792cb5c898452617ed362
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/12940
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Roll third_party/SPIRV-Tools/ 253806adc..e3da3143b (14 commits)
253806adc4..e3da3143b2
$ git log 253806adc..e3da3143b --date=short --no-merges --format='%ad %ae %s'
2019-10-17 kubak Disallow use of OpCompositeExtract/OpCompositeInsert with no indices (#2980)
2019-10-17 rharrison Add fuzzer for spirv-dis call path (#2977)
2019-10-17 rharrison Check binary->code existence before destroying (#2979)
2019-10-17 akb825 Improved CMake install step. (#2963)
2019-10-16 kubak Support constant-folding UConvert and SConvert (#2960)
2019-10-16 rharrison Add fuzzer for spirv-as call path (#2976)
2019-10-15 afdx spirv-fuzz: Refactor 'copy object' and 'construct composite' transformations (#2966)
2019-10-15 dneto Update SPIR-V binary header test for SPIR-V 1.5 (#2967)
2019-10-14 afdx spirv-fuzz: Refactor 'split blocks' to identify instructions differently (#2961)
2019-10-11 alanbaker Validate that selections are structured (#2962)
2019-10-11 afdx spirv-fuzz: Rework id descriptors (#2959)
2019-10-11 afdx spirv-fuzz: Add fuzzer pass to add NoContraction decorations (#2950)
2019-10-11 afdx spirv-fuzz: Add fuzzer pass to change function controls (#2951)
2019-10-10 paulthomson reduce: add large tests and fix (#2947)
Roll third_party/glslang/ 4b97a1108..834ee546f (23 commits)
4b97a11081..834ee546f9
$ git log 4b97a1108..834ee546f --date=short --no-merges --format='%ad %ae %s'
2019-10-17 jbolz Only apply volatile semantics to atomics when using Vulkan Memory Model
2019-10-16 dsinclair Use commandline options instead of ENV variables
2019-10-16 rharrison Keep code style improvements
2019-10-16 dsinclair Indenting
2019-10-15 dsinclair Update CMakeLists.txt
2019-10-15 dsinclair Move TARGETDIR as well
2019-10-15 dsinclair Make runtests configurable.
2019-10-15 rharrison Fix config issues and revert previous fixes for semi-colon issues
2019-10-16 swda.durl Added an option to make pch enabled in Cmake
2019-10-15 wahlster find Python and add External subdir only if BUILD_EXTERNAL option was set (on by default) and /External dir exists
2019-10-14 cepheus GLSL/SPV: Pre SPIR-V 1.5, subgroupQuadBroadcast index must be constant
2019-10-12 geothrock remove redundant check
2019-10-12 Xottab-DUTY Fixed typo in README.md
2019-10-11 rharrison Forgot that GCC doesn't recognize this flag
2019-10-11 rharrison Remove unnecessary semi-colons and add warning about them
2019-10-10 cepheus Fix#1924: Promote SPV_EXT_physical_storage_buffer to KHR when required.
2019-10-10 greg Update spirv-tools known good.
2019-10-10 cepheus Fix#1924: Emit SPV_EXT_physical_storage_buffer, not the KHR form.
2019-09-04 lryer Fix code style issue and remove setXfbBufferStride new paramte
2019-09-02 lryer Adjusting code interface
2019-08-25 geothrock Add support for GL_ARB_explicit_uniform_location
2019-08-06 james.rumble Handle install vs build include directories
2019-08-06 james.rumble Export glslang targets on installation
Roll third_party/spirv-cross/ e5d3a6655..a92668bc1 (8 commits)
e5d3a6655e..a92668bc11
$ git log e5d3a6655..a92668bc1 --date=short --no-merges --format='%ad %ae %s'
2019-10-17 post Fix OpVectorExtractDynamic with spec constant op index.
2019-10-16 post Travis: Update PATH for Python3 on Windows.
2019-10-14 post MSL: Add opt-in support for huge IABs.
2019-10-14 post HLSL: Fix unrolled S/G LE/LT/GE/GT opcodes.
2019-10-14 post GLSL: Deal correctly with bitwidth on integer compares.
2019-10-14 post HLSL: Partially implement Unordered compare.
2019-10-14 post GLSL: Support unordered floating point compare.
2019-10-11 post MSL: Fix regression with OpCompositeConstruct from std140 float[].
Roll third_party/spirv-headers/ b252a5095..af64a9e82 (2 commits)
b252a50953..af64a9e826
$ git log b252a5095..af64a9e82 --date=short --no-merges --format='%ad %ae %s'
2019-10-15 cepheus Versioning: Complete the versioning change in recent commits.
2019-10-14 nicolai.haehnle buildHeaders: update version to SPIR-V 1.5
Created with:
roll-dep third_party/SPIRV-Tools third_party/glslang third_party/shaderc third_party/spirv-cross third_party/spirv-headers
Change-Id: I0396a3e0e20e7cfc74603ef60512c2c715eb2c70
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/12440
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Trace data can be used to build additional metrics which measure
validation costs, GPU time, etc. It will also be helpful to store in
the test output for later analysis.
This CL also adds jsoncpp as a DEP so we can dump trace file json
output.
Bug: dawn:208
Change-Id: Ia6c05ca90aecae308ee6a4fd11e5f43bb03b1dc9
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/12080
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>