Timo Aaltonen pushed to branch upstream-unstable at X Strike Force / vulkan / spirv-tools
Commits: 57a42e6c by Spencer Fricke at 2024-04-30T12:29:22-04:00 spirv-val: Separate Location check for tess patch (#5654) - - - - - bfc3a156 by dependabot[bot] at 2024-04-30T12:54:12-04:00 build(deps): bump the github-actions group across 1 directory with 3 updates (#5656) Bumps the github-actions group with 3 updates in the / directory: [actions/checkout](https://github.com/actions/checkout), [actions/upload-artifact](https://github.com/actions/upload-artifact) and [github/codeql-action](https://github.com/github/codeql-action). Updates `actions/checkout` from 4.1.3 to 4.1.4 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/1d96c772d19495a3b5c517cd2bc0cb401ea0529f...0ad4b8fadaa221de15dcec353f45205ec38ea70b) Updates `actions/upload-artifact` from 4.3.2 to 4.3.3 - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/1746f4ab65b179e0ea60a494b83293b640dd5bba...65462800fd760344b1a7b4382951275a0abb4808) Updates `github/codeql-action` from 3.25.1 to 3.25.3 - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/c7f9125735019aa87cfc361530512d50ea439c71...d39d31e687223d841ef683f52467bd88e9b21c14) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-patch dependency-group: github-actions - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-patch dependency-group: github-actions - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-patch dependency-group: github-actions ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> - - - - - 9241a58a by Jeremy Gebben at 2024-05-02T18:52:17-04:00 opt: Remove bindless and buff addr instrumentation passes (#5657) These were only used by Vulkan-Validation layers, but they have been replaced by other code for several months. - - - - - 199038f1 by Sven van Haastregt at 2024-05-10T15:49:10-04:00 spirv-val: Validate MemoryAccessMask of OpCooperativeMatrixStoreKHR (#5668) Reject `OpCooperativeMatrixStoreKHR` with a `MakePointerVisibleKHR` MemoryAccess operand, as `MakePointerVisibleKHR` is not supposed to be used with store operations. The `CoopMatKHRStoreMemoryAccessFail` test failed to catch this because it used the helper function `GenCoopMatLoadStoreShader` which generates `...NV` instead of `...KHR` instructions. Add a new helper function to generate similar shaders for the KHR extension, as the NV and KHR extensions have various subtle differences that makes parameterizing the original helper function non-trivial. Signed-off-by: Sven van Haastregt <[email protected]> - - - - - ccf3e3c1 by alan-baker at 2024-05-14T15:13:54-04:00 Improve matrix layout validation (#5662) * Check for matrix decorations on arrays of matrices * MatrixStide, RowMajor and ColMajor can be applied to matrix or arrays of matrix members * Check that matrix stride satisfies alignment in arrays - - - - - 14fe558c by dependabot[bot] at 2024-05-21T10:09:12-04:00 --- (#5679) updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-patch dependency-group: github-actions - dependency-name: lukka/get-cmake dependency-type: direct:production update-type: version-update:semver-patch dependency-group: github-actions - dependency-name: ossf/scorecard-action dependency-type: direct:production update-type: version-update:semver-patch dependency-group: github-actions - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-patch dependency-group: github-actions ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> - - - - - e4b1a48a by Zheng Shaokun at 2024-05-21T11:34:06-04:00 Use raw string to avoid unintended escapes in regex (#5676) - - - - - e2646f5e by Sven van Haastregt at 2024-05-21T13:02:17-04:00 spirv-val: Consider target env for OpReadClockKHR scope (#5681) The Scope operand of `OpReadClockKHR` was always validated using the Vulkan environment rules, which only allow `Subgroup` or `Device`. For the OpenCL environment, `Workgroup` is also a valid Scope, so `Workgroup` should not be rejected in the universal environment. Guard the existing Scope check behind `spvIsVulkanEnv` and add a new Scope check for the OpenCL environment. Signed-off-by: Sven van Haastregt <[email protected]> - - - - - ee749f50 by Steven Perron at 2024-05-21T22:15:30-04:00 Add abseil to the autoroller (#5680) The autoroller does not update abseil, and that it stopping us from updating RE2. This change will update the auto roller, then the next time it runs, we should be able to update everything. - - - - - 336b5710 by Steven Perron at 2024-05-22T13:01:26-04:00 Do not fold mul and adds to generate fmas (#5682) This removes the folding rules added in #4783 and #4808. They lead to poor code generation on Adreno devices when 16-bit floating point values were used. Since this change is transformation is suppose to be neutral, there is no general reason to continue doing it. I have talked to the owners of SwiftShader, and they do not mind if the transform is removed. They were the ones the requested the change in the first place. Fixes #5658 - - - - - 77c40bec by github-actions[bot] at 2024-05-23T16:18:51-04:00 Roll deps * Roll external/googletest/ 5a37b517a..9b4993ca7 (8 commits) https://github.com/google/googletest/compare/5a37b517ad4a...9b4993ca7d12 Created with: roll-dep external/googletest * Roll external/abseil_cpp/ 79ca5d7aa..1a31b81c0 (602 commits) https://github.com/abseil/abseil-cpp/compare/79ca5d7aad63...1a31b81c0a46 Created with: roll-dep external/abseil_cpp * Roll external/spirv-headers/ 4f7b471f1..49a1fceb9 (3 commits) https://github.com/KhronosGroup/SPIRV-Headers/compare/4f7b471f1a66...49a1fceb9b1d Created with: roll-dep external/spirv-headers --------- Co-authored-by: GitHub Actions[bot] <> - - - - - 3d240892 by Spencer Fricke at 2024-05-29T14:38:37-04:00 spirv-val: Add Duplicate EntryPoint Builtin check (#5678) * spirv-val: Add Decoration::builtin() * spirv-val: Add Duplicate EntryPoint Builtin check * spirv-val: Handle Built-ins in/out of block * spirv-val: Remove extra CheckBuiltInVariable - - - - - 7e1a8cdc by Kévin Petit at 2024-05-30T10:58:44-04:00 Basic support for SPV_EXT_replicated_composites (#5690) * Basic support for SPV_EXT_replicated_composites Validation will follow as a separate PR (still need to write a test suite) Change-Id: Ic95fa6ce39d32f5ac2787bc38dba2748c9cc58f7 Signed-off-by: Kevin Petit <[email protected]> * Update SPIRV-Headers Change-Id: I6c0df248d99c13b49d78528d035a4222027c0232 --------- Signed-off-by: Kevin Petit <[email protected]> - - - - - 142bf7de by Sven van Haastregt at 2024-05-30T11:01:35-04:00 spirv-val: Fix indentation of --version output (#5686) The last three elements in the list of supported targets were misaligned: ``` Targets: SPIR-V 1.0 SPIR-V 1.1 ... SPIR-V 1.3 (under Vulkan 1.1 semantics) SPIR-V 1.4 (under Vulkan 1.1 semantics) SPIR-V 1.5 (under Vulkan 1.2 semantics) SPIR-V 1.6 (under Vulkan 1.3 semantics) ``` Signed-off-by: Sven van Haastregt <[email protected]> - - - - - 148c97f6 by Steven Perron at 2024-05-31T14:13:20+02:00 Avoid use of type manager in extact->construct folding (#5684) * Avoid use of type manager in extact->construct folding When dealing with structs the type manager merge two different structs into a single entry if they have all of the same decorations and element types. This is because they hash to the same value in the hash table. This can cause problems if you need to get the id of a type from the type manager because you could get either one. In this case, it returns the wrong one. The fix avoids using the type manager in one place. I have not looked closely at other places the type manager is used to make sure it is used safely everywhere. Fixes #5624 * Remove use of TypeManager::GetId This removes a use of TypeManager::GetId by keeping the id around. This avoid a potential problem if the type manager gets confused. These types of bugs are hard to generate test cases for, so I do not have a test. However, existing tests make sure that do not regress. - - - - - 95681dc4 by Steven Perron at 2024-06-03T15:07:52+02:00 Remove implicit call to GetId in ConvertToSampledImagePass. (#5692) We replace getting the id of a poitner type with a specific funciton call to FindPointerToType. Also, FindPointerToType is updated to not indirectly call GetId. This leads to a linear search for an existing type in all cases, but it is necessary. Note that this function could have a similar problem. There could be two pointer types with the same pointee and storage class, and the first one will be returned. I have checked the ~20 uses, and they are all used in situations where the id is used to create something new, and it does not have to match an existing type. These will not cause problems. Part of #5691 - - - - - fd96922e by Steven Perron at 2024-06-03T15:21:14+02:00 Remove calls to GetId in liveness analysis (#5693) Part of #5691 - - - - - 70ad4dae by alan-baker at 2024-06-03T10:43:26-04:00 OpSampledImage extra validation (#5695) * Validate that the type of Image operand matches the result type's Image operand - - - - - 4a2e0c9b by Steven Perron at 2024-06-03T12:05:04-04:00 Fix comments in liveness.h (#5699) Addressed comments from #5693 that were not fixed before merging. - - - - - 6a2bdeee by Nathan Gauër at 2024-06-04T16:18:06+02:00 spirv-val, core: add support for OpExtInstWithForwardRefs (#5698) * val, core: add support for OpExtInstWithForwardRefs This commit adds validation and support for OpExtInstWithForwardRefs. This new instruction will be used for non-semantic debug info, when forward references are required. For now, this commit only fixes the code to handle this new instruction, and adds validation rules. But it does not add the pass to generate/fix the OpExtInst instruction when forward references are in use. Such pass would be useful for DXC or other tools, but I wanted to land validation rules first. This commit also bumps SPIRV-Headers to get this new opcode. --------- Signed-off-by: Nathan Gauër <[email protected]> - - - - - 9db5b5ec by Steven Perron at 2024-06-05T06:22:58-07:00 Add assert header to val/decoration.h (#5703) Some platforms fail to compile if the cassert header is not included in decoration.h. Adding it to make those work. - - - - - e1c0ad23 by dependabot[bot] at 2024-06-05T10:22:32-07:00 build(deps): bump the github-actions group across 1 directory with 2 updates (#5702) Bumps the github-actions group with 2 updates in the / directory: [lukka/get-cmake](https://github.com/lukka/get-cmake) and [github/codeql-action](https://github.com/github/codeql-action). Updates `lukka/get-cmake` from 3.29.3 to 3.29.4 - [Release notes](https://github.com/lukka/get-cmake/releases) - [Commits](https://github.com/lukka/get-cmake/compare/c57ffe818cee3ee5f08fc1cc78c8bbede1cbbe59...85652a37b177d946c9f4fad0f696b2927ee7754d) Updates `github/codeql-action` from 3.25.6 to 3.25.8 - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/9fdb3e49720b44c48891d036bb502feb25684276...2e230e8fe0ad3a14a340ad0815ddb96d599d2aff) --- updated-dependencies: - dependency-name: lukka/get-cmake dependency-type: direct:production update-type: version-update:semver-patch dependency-group: github-actions - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-patch dependency-group: github-actions ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> - - - - - 7b569108 by alan-baker at 2024-06-05T13:23:01-07:00 update tests for disassembly changes (#5694) * update tests for disassembly changes * use DEPS in wasm build - - - - - ce46482d by Nathan Gauër at 2024-06-06T03:17:51-07:00 Add KHR suffix to OpExtInstWithForwardRef opcode. (#5704) The KHR suffix was missing from the published SPIR-V extension. This is now fixed, but requires some patches in SPIRV-Tools. Signed-off-by: Nathan Gauër <[email protected]> - - - - - c3178da8 by Shahbaz Youssefi at 2024-06-10T15:22:25-04:00 spirv-dis: add decorations to comments (#5675) - - - - - 65d30c31 by Nathan Gauër at 2024-06-11T17:13:46+02:00 opt: fix Subgroup* trimming (#5706) PR #5648 added support for the GroupNonUniformPartitionedNV. But there was an issue: the opcodes are enabled by multiple capabilities, and the actual operand is what matters. Added testing coverage and the implementation to correctly trim a few NonUniform capabilities. Signed-off-by: Nathan Gauër <[email protected]> - - - - - bc28ac7c by Nathan Gauër at 2024-06-13T02:09:58-07:00 opt: add OpExtInst forward ref fixup pass (#5708) This pass fixups the opcode used for OpExtInst instructions to use OpExtInstWithForwardRefsKHR when it contains a forward reference. This pass is agnostic to the extension used, hence the validity of the code depends of the validity of the usage: If a forward reference is used on a non-semantic extended instruction, the generated code will remain invalid, but the opcode will change. What this pass guarantees is valid code won't become invalid. --------- Signed-off-by: Nathan Gauër <[email protected]> Co-authored-by: Steven Perron <[email protected]> - - - - - 7564e142 by Shahbaz Youssefi at 2024-06-17T09:54:18-04:00 spirv-dis: Add --nested-indent and --reorder-blocks (#5671) With --nested-indent, the SPIR-V blocks are nested according to the structured control flow. Each OpLabel is nested that much with the contents of the block nested a little more. The blocks are separated by a blank line for better visualization. With --reorder-blocks, the SPIR-V blocks are reordered according to the structured control flow. This is particularly useful with --nested-indent. Note that with --nested-indent, the disassembly does not exactly show the binary as-is, and the instructions may be reordered. - - - - - 6c8b460e by Nathan Gauër at 2024-06-17T16:08:55+02:00 misc: remove encoding parameter (#5710) Those scripts are running on Python2.7 if build with the NDK tools. Under python2.7, io.open will load as "utf-8" since we give the encoding option, and return a "unicode" string. Under Python3, the open() function will return a UTF-8 string. This means the XMLParser needs to have a different 'encoding' option depending on the python version. For some reason I don't know, the XMLParser still fails if we use 'unicode' under Python2.7. But converting the unicode string to utf-8 does work. Signed-off-by: Nathan Gauër <[email protected]> - - - - - 7bf2d027 by github-actions[bot] at 2024-06-17T11:18:20-04:00 roll deps (#5685) * Roll external/re2/ 917047f36..4a8cee3dd (27 commits) https://github.com/google/re2/compare/917047f3606d...4a8cee3dd3c3 Created with: roll-dep external/re2 * Roll external/googletest/ 9b4993ca7..1d17ea141 (3 commits) https://github.com/google/googletest/compare/9b4993ca7d12...1d17ea141d2c Created with: roll-dep external/googletest * Roll external/abseil_cpp/ 1a31b81c0..1315c900e (91 commits) https://github.com/abseil/abseil-cpp/compare/1a31b81c0a46...1315c900e1dd Created with: roll-dep external/abseil_cpp * Roll external/spirv-headers/ eb49bb7b1..2acb319af (1 commit) https://github.com/KhronosGroup/SPIRV-Headers/compare/eb49bb7b1136...2acb319af38d Created with: roll-dep external/spirv-headers * Roll external/effcee/ 19b4aa87a..d74d33d93 (4 commits) https://github.com/google/effcee/compare/19b4aa87af25...d74d33d93043 Created with: roll-dep external/effcee * Update module.bazel to find re2 --------- Co-authored-by: GitHub Actions[bot] <> Co-authored-by: Steven Perron <[email protected]> - - - - - 80a1aed2 by Cassandra Beckley at 2024-06-18T17:52:50+00:00 Use bzlmod for effcee (#5707) - - - - - 581279de by Steven Perron at 2024-06-19T19:17:05+02:00 [OPT] Zero-extend unsigned 16-bit integers when bitcasting (#5714) The folding rule `BitCastScalarOrVector` was incorrectly handling bitcasting to unsigned integers smaller than 32-bits. It was simply copying the entire 32-bit word containing the integer. This conflicts with the requirement in section 2.2.1 of the SPIR-V spec which states that unsigned numeric types with a bit width less than 32-bits must have the high-order bits set to 0. This change include a refactor of the bit extension code to be able to test it better, and to use it in multiple files. Fixes https://github.com/microsoft/DirectXShaderCompiler/issues/6319. - - - - - 0cfe9e72 by Steven Perron at 2024-06-20T10:29:42-04:00 Prepare release v2024.3 (#5719) - - - - - 30 changed files: - .github/workflows/autoroll.yml - .github/workflows/bazel.yml - .github/workflows/ios.yml - .github/workflows/release.yml - .github/workflows/scorecard.yml - .github/workflows/wasm.yml - Android.mk - BUILD.bazel - BUILD.gn - CHANGES - DEPS - MODULE.bazel - WORKSPACE - include/spirv-tools/instrument.hpp - include/spirv-tools/libspirv.h - include/spirv-tools/optimizer.hpp - source/binary.cpp - source/disassemble.cpp - source/disassemble.h - source/opcode.cpp - source/opcode.h - source/operand.cpp - source/operand.h - source/opt/CMakeLists.txt - source/opt/build_module.h - source/opt/const_folding_rules.cpp - source/opt/constants.cpp - source/opt/constants.h - source/opt/convert_to_sampled_image_pass.cpp - source/opt/eliminate_dead_output_stores_pass.cpp The diff was not included because it is too large. View it on GitLab: https://salsa.debian.org/xorg-team/vulkan/spirv-tools/-/compare/dd4b663e13c07fea4fbb3f70c1c91c86731099f7...0cfe9e7219148716dfd30b37f4d21753f098707a -- View it on GitLab: https://salsa.debian.org/xorg-team/vulkan/spirv-tools/-/compare/dd4b663e13c07fea4fbb3f70c1c91c86731099f7...0cfe9e7219148716dfd30b37f4d21753f098707a You're receiving this email because of your account on salsa.debian.org.

