Commit Graph

4071 Commits

Author SHA1 Message Date
dan sinclair
e5c1498afa
Update proto JSON options call. (#5867)
This CL updates the usage of JsonOptions which is deprecated to the newer
JsonPrintOptions.
2024-10-31 21:08:25 -04:00
Shahbaz Youssefi
5f1e86cb55
tools: Move io utils to cpp (#5869)
In preparation for more code in that file, which would get unwieldy in a
header.
2024-10-28 13:31:54 -04:00
Jeff Bolz
ce92630396
Add validation for SPV_NV_tensor_addressing and SPV_NV_cooperative_matrix2 (#5865) 2024-10-24 13:55:04 -04:00
Nathan Gauër
298055b25c
opt: add StorageImageWriteWithoutFormat to trimm pass (#5860)
* opt: add StorageImageWriteWithoutFormat to trimm pass

---------

Signed-off-by: Nathan Gauër <brioche@google.com>
2024-10-24 06:21:17 -04:00
Nathan Gauër
895bb9ffec
opt: add KHR_fragment_shading_rate to allowlist (#5859)
Allowing this extensions to the few gated optimization passes.

Signed-off-by: Nathan Gauër <brioche@google.com>
2024-10-21 11:25:49 -07:00
Jeremy Gebben
ba37b3b513
opt: Remove InstDebugPrintfPass (#5856)
This code was only used by Vulkan-Validation layers and it has
now been replaced by code in that repository.
2024-10-17 15:05:56 -04:00
Spencer Fricke
14388d7014
ci: Update MacOS to latest OS (#5855) 2024-10-16 19:44:28 -04:00
alan-baker
a832c13331
Fix switch case construct validation (#5852)
* Fix switch case construct validation

Fixes https://crbug.com/tint/372311599

* Stop using block depth in switch validation and instead use the more
  robust structured exit logic from the switch construct
  * This is valid because the function has already handled the
    additional valid cases for case constructs

* formatting
2024-10-16 11:09:21 -04:00
Cassandra Beckley
2ea729062b
opt: Fix array copy propagation of access chain pointers (#5853)
#5827 is broken for situations where a loaded value is stored to a pointer resulting from an OpAccessChain. Traverse access chains to find the original OpVariable to add to the worklist.
2024-10-16 10:51:05 -04:00
dependabot[bot]
5b98dea6f1
build(deps): bump the github-actions group across 1 directory with 5 updates (#5847)
Bumps the github-actions group with 5 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [actions/checkout](https://github.com/actions/checkout) | `4.2.0` | `4.2.1` |
| [actions/cache](https://github.com/actions/cache) | `4.1.0` | `4.1.1` |
| [lukka/get-cmake](https://github.com/lukka/get-cmake) | `3.30.4` | `3.30.5` |
| [actions/upload-artifact](https://github.com/actions/upload-artifact) | `4.4.0` | `4.4.3` |
| [github/codeql-action](https://github.com/github/codeql-action) | `3.26.11` | `3.26.12` |



Updates `actions/checkout` from 4.2.0 to 4.2.1
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](d632683dd7...eef61447b9)

Updates `actions/cache` from 4.1.0 to 4.1.1
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](2cdf405574...3624ceb22c)

Updates `lukka/get-cmake` from 3.30.4 to 3.30.5
- [Release notes](https://github.com/lukka/get-cmake/releases)
- [Commits](582a9f5c6f...b516803a3c)

Updates `actions/upload-artifact` from 4.4.0 to 4.4.3
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](50769540e7...b4b15b8c7c)

Updates `github/codeql-action` from 3.26.11 to 3.26.12
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](6db8d6351f...c36620d31a)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
- dependency-name: actions/cache
  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: 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-14 15:19:35 -04:00
github-actions[bot]
68265e1604
Roll external/abseil_cpp/ 03b8d6ea3..8634e35f1 (1 commit) (#5844)
* Roll external/abseil_cpp/ 03b8d6ea3..40cab2445 (4 commits)

03b8d6ea3d...40cab24455

Created with:
  roll-dep external/abseil_cpp

* Roll external/spirv-headers/ d92cf88c3..50bc4debd (2 commits)

d92cf88c37...50bc4debdc

Created with:
  roll-dep external/spirv-headers

---------

Co-authored-by: GitHub Actions[bot] <>
2024-10-14 18:53:31 +00:00
alan-baker
42b315c15b
Fix result type check in ValidateImageTexelPointer (#5848)
Fixes https://crbug.com/oss-fuzz/42537207

* Fix check and messages in ValidateImageTexelPointer
2024-10-10 14:10:07 -04:00
alan-baker
fcf994a619
Handle aliases field in the grammar (#5799)
* Modify static table generation scripts to include alias lists
* Modify spv_opcode_desc_t and spv_operand_desc_t to include aliases
* Modify opcode and operand lookup by name to also search aliases

* update vim syntax generator
2024-10-09 12:50:32 -04:00
dependabot[bot]
4310fd4eda
build(deps): bump the github-actions group across 1 directory with 3 updates (#5841)
Bumps the github-actions group with 3 updates in the / directory: [actions/cache](https://github.com/actions/cache), [lukka/get-cmake](https://github.com/lukka/get-cmake) and [github/codeql-action](https://github.com/github/codeql-action).


Updates `actions/cache` from 4.0.2 to 4.1.0
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](0c45773b62...2cdf405574)

Updates `lukka/get-cmake` from 3.30.3 to 3.30.4
- [Release notes](https://github.com/lukka/get-cmake/releases)
- [Commits](070a0507a7...582a9f5c6f)

Updates `github/codeql-action` from 3.26.10 to 3.26.11
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](e2b3eafc8d...6db8d6351f)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-minor
  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: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-07 09:22:43 -04:00
github-actions[bot]
ada92f8492
roll deps (#5833)
* Roll external/googletest/ a1e255a58..71815bbf7 (1 commit)

a1e255a582...71815bbf7d

Created with:
  roll-dep external/googletest

* Roll external/abseil_cpp/ c6b27359c..03b8d6ea3 (2 commits)

c6b27359c3...03b8d6ea3d

Created with:
  roll-dep external/abseil_cpp

* Roll external/spirv-headers/ ec59c77a3..a62b03200 (1 commit)

ec59c77a3b...a62b032007

Created with:
  roll-dep external/spirv-headers

---------

Co-authored-by: GitHub Actions[bot] <>
2024-10-06 11:38:32 +00:00
Cassandra Beckley
522dfead39
opt: Add support for OpExtInst to capability trim pass (#5836)
The grammar does track required capabilities for extended instruction
set operations, so we just need to look them up.
2024-10-04 00:42:48 -07:00
dependabot[bot]
c173df736c
build(deps): bump github/codeql-action in the github-actions group (#5831)
Bumps the github-actions group with 1 update: [github/codeql-action](https://github.com/github/codeql-action).


Updates `github/codeql-action` from 3.26.9 to 3.26.10
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](461ef6c76d...e2b3eafc8d)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-02 11:36:27 -04:00
github-actions[bot]
4554c6b7ea
Roll external/abseil_cpp/ 482ca0b9d..c6b27359c (1 commit) (#5829)
* Roll external/googletest/ 6dae7eb4a..a1e255a58 (1 commit)

6dae7eb4a5...a1e255a582

Created with:
  roll-dep external/googletest

* Roll external/abseil_cpp/ 482ca0b9d..c6b27359c (1 commit)

482ca0b9d6...c6b27359c3

Created with:
  roll-dep external/abseil_cpp

---------

Co-authored-by: GitHub Actions[bot] <>
2024-10-02 15:19:52 +00:00
Cassandra Beckley
48f9f4a99e
opt: Update copy prop arrays to handle InterpolateAt* instructions (#5827)
Adds support for `InterpolateAtCentroid`, `InterpolateAtSample`, and `InterpolateAtOffset` to the copy propagate arrays pass, as well as propagating pointers with the `Input` storage class. Also handles situations where variables should be propagated in an order different than the order that they are declared in the source.
2024-10-02 09:38:32 -04:00
github-actions[bot]
d9c1aee6a6
Roll external/abseil_cpp/ ba5fd0979..482ca0b9d (1 commit) (#5828)
ba5fd0979b...482ca0b9d6

Created with:
  roll-dep external/abseil_cpp

Co-authored-by: GitHub Actions[bot] <>
2024-09-27 14:54:25 +00:00
Cassandra Beckley
b1ad37b175
opt: Mark InterpolateAt* argument as live for DCE (#5824)
The GLSL 450 InterpolateAt* instructions should be treated as a load by dead code elimination. This is part of https://github.com/microsoft/DirectXShaderCompiler/issues/3649.
2024-09-26 16:49:36 -04:00
Steven Perron
5b38abc877
Do not distrubute OpSNegate into OpUDiv (#5823)
We cannot apply the negate to an operand of an OpUDiv instead of it
result. This is because the operands of the OpUDiv are interpreted as
unsigned. We stop the optimizer from doing that.

There were no tests for distributing a negate into OpIMul, OpSDiv, and
OpUDiv. Tests are added for all of these.

Fixes #5822
2024-09-26 15:00:56 -04:00
dependabot[bot]
5c8442f7fc
build(deps-dev): bump rollup from 3.23.0 to 3.29.5 in /tools/sva (#5826)
Bumps [rollup](https://github.com/rollup/rollup) from 3.23.0 to 3.29.5.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v3.23.0...v3.29.5)

---
updated-dependencies:
- dependency-name: rollup
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-26 13:45:37 -04:00
dependabot[bot]
c0e6399dfb
build(deps): bump the github-actions group across 1 directory with 2 updates (#5825)
Bumps the github-actions group with 2 updates in the / directory: [actions/checkout](https://github.com/actions/checkout) and [github/codeql-action](https://github.com/github/codeql-action).


Updates `actions/checkout` from 4.1.7 to 4.2.0
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](692973e3d9...d632683dd7)

Updates `github/codeql-action` from 3.26.8 to 3.26.9
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](294a9d9291...461ef6c76d)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
  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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-26 13:40:52 -04:00
github-actions[bot]
3656c4bd1a
Roll external/abseil_cpp/ c0b9bd08e..ba5fd0979 (2 commits) (#5818)
* Roll external/abseil_cpp/ c0b9bd08e..ba5fd0979 (2 commits)

c0b9bd08e0...ba5fd0979b

Created with:
  roll-dep external/abseil_cpp

* Roll external/spirv-headers/ 2a9b6f951..ec59c77a3 (2 commits)

2a9b6f951c...ec59c77a3b

Created with:
  roll-dep external/spirv-headers

---------

Co-authored-by: GitHub Actions[bot] <>
2024-09-26 17:20:46 +00:00
JN Mo
44936c4a9d
Add support for SPV_KHR_compute_shader_derivative (#5817)
* Add support for SPV_KHR_compute_shader_derivative

* Update tests for SPV_KHR_compute_shader_derivatives

---------

Co-authored-by: MagicPoncho <magicponcho@gmail.com>
2024-09-25 09:59:33 -04:00
alan-baker
362ce7c60d
Allow more levels of arrays with component decoration (#5820)
Fixes #5819

* Allow multiple levels of arrays in a variable with component
  decoration
2024-09-24 11:14:28 -04:00
dependabot[bot]
24849751c4
build(deps): bump github/codeql-action in the github-actions group (#5813)
Bumps the github-actions group with 1 update: [github/codeql-action](https://github.com/github/codeql-action).


Updates `github/codeql-action` from 3.26.7 to 3.26.8
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](8214744c54...294a9d9291)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-23 11:44:51 -04:00
github-actions[bot]
c405baf8c9
Roll external/abseil_cpp/ 0df567400..c0b9bd08e (3 commits) (#5812)
0df5674003...c0b9bd08e0

Created with:
  roll-dep external/abseil_cpp

Co-authored-by: GitHub Actions[bot] <>
2024-09-23 15:24:08 +00:00
Sven van Haastregt
7ba72f14f2
spirv-val: Disallow stores according to VUID 06924 (#5368)
Ensure that the validator rejects stores to objects of types
`OpTypeImage`, `OpTypeSampler`, `OpTypeSampledImage`,
`OpTypeAccelerationStructureKHR`, and arrays of these types, according
to `VUID-StandaloneSpirv-OpTypeImage-06924`.

Guard the check behind the before_hlsl_legalization option, as
sometimes we may have temporaries or local variables that are expected
to get optimized away.

Fixes #4796


Change-Id: Ie035c01c5f94e7bdfc16b5c6c85705f302b7bda3

Signed-off-by: Sven van Haastregt <sven.vanhaastregt@arm.com>
2024-09-23 08:34:30 -04:00
Viktoria Maximova
01c8438ee4
[SPV_KHR_untyped_pointers] Fix verification for OpenCL.std instructions (#5810)
Allow `p` to be untyped pointer for `fract`, `frexp`, `lgamma_r`,
`modf`, `remquo`, and `sincos`.

```
operand must be a pointer(p1, ...).If it is a typed pointer, it must
point to data types.

```

https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/main/extensions/KHR/SPV_KHR_untyped_pointers.html#_modifications_to_the_opencl_std_extended_instruction_set
2024-09-20 11:31:46 -04:00
Cassandra Beckley
6dcc7e350a
Prepare release v2024.4 (#5811) 2024-09-19 15:28:18 -04:00
github-actions[bot]
04bdb6c7c9
roll deps (#5809)
* Roll external/googletest/ 0953a17a4..6dae7eb4a (1 commit)

0953a17a42...6dae7eb4a5

Created with:
  roll-dep external/googletest

* Roll external/abseil_cpp/ f7c22f52a..0df567400 (10 commits)

f7c22f52a7...0df5674003

Created with:
  roll-dep external/abseil_cpp

---------

Co-authored-by: GitHub Actions[bot] <>
2024-09-18 10:53:02 +00:00
Ben Ashbaugh
20788a4c5f
add support for SPV_INTEL_global_variable_host_access (#5786) 2024-09-17 12:31:29 -04:00
dependabot[bot]
04ad1e1ce3
build(deps): bump github/codeql-action in the github-actions group (#5808)
Bumps the github-actions group with 1 update: [github/codeql-action](https://github.com/github/codeql-action).


Updates `github/codeql-action` from 3.26.6 to 3.26.7
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](4dd16135b6...8214744c54)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-16 10:20:42 -04:00
Steven Perron
d85446fd7e
[OPT] Fix generating debugLocalVariable from debugGlobalVariable (#5803)
The code converting the global to local was generating an extra operand
that was incorrect. Fixed the code, and added a unit test.

Fixes #5776
2024-09-16 10:11:22 -04:00
github-actions[bot]
a2c9c2387e
Roll external/abseil_cpp/ 1d4466e8d..f7c22f52a (3 commits) (#5806)
1d4466e8d3...f7c22f52a7

Created with:
  roll-dep external/abseil_cpp

Co-authored-by: GitHub Actions[bot] <>
2024-09-15 12:57:18 +00:00
Nielsbishere
4c2094ee9b
Made libspirv include relative to allow better portability (#5807) 2024-09-14 10:36:17 -04:00
David Neto
4451f6ab13
Implement to_string(uint32_t) without using the locale (#5805)
Using the locale takes a mutex deep in the C++ library.
Avoid this on hot compilation paths, e.g. in the validator.

Fixed: #5802
2024-09-12 14:30:18 -07:00
github-actions[bot]
7c9210cc1d
Roll external/abseil_cpp/ 67d126083..1d4466e8d (2 commits) (#5801)
67d126083c...1d4466e8d3

Created with:
  roll-dep external/abseil_cpp

Co-authored-by: GitHub Actions[bot] <>
2024-09-12 15:04:34 +00:00
cheneym2
37d2fcb485
spirv-opt: fix crash in function declarations (#5796)
* spirv-opt: fix crash in function declarations

Function declarations contain no blocks, so bail before segfaulting
in function optimization passes that operate on blocks.

Fixes #5795

* spirv-opt: add test for optimizing declarations
2024-09-12 07:21:12 -04:00
alan-baker
380275eacd
Do not check structurally unreachable continue target predecessors (#5800)
Fixes #5784

* Rules only apply to structurally reachable blocks
2024-09-11 14:50:30 -04:00
github-actions[bot]
d160e170d7
Roll external/abseil_cpp/ f7f316824..67d126083 (3 commits) (#5787)
f7f316824d...67d126083c

Created with:
  roll-dep external/abseil_cpp

Co-authored-by: GitHub Actions[bot] <>
2024-09-09 23:14:26 -04:00
alan-baker
6209efd77c
Update SPIRV-Headers (#5793)
* Fix capability trimming tests to use KHR names for compute derivatives
2024-09-09 18:47:40 -04:00
Steven Perron
05be5b2466
Fix build.gn build. (#5791) 2024-09-09 16:05:32 -04:00
alan-baker
e9915cea8d
Update sampled image validation (#5789)
Fixes #5781

* Requires all image operands to match except for depth between operand
  and result
2024-09-09 13:09:19 -04:00
Nathan Gauër
07f49ce65d
spirv-opt: make traversal deterministic (#5790)
Related to https://github.com/microsoft/DirectXShaderCompiler/issues/6804
2024-09-09 08:59:51 -04:00
Viktoria Maximova
f914d9c8a4
[SPV_KHR_untyped_pointers] Fix verification of vload/vstore OpenCL.std instructions (#5788)
* [SPV_KHR_untyped_pointers] Fix verification of vload/vstore OpenCL.std instructions

Allow `p` to be untyped pointer.

```
operand must be a pointer(p1, ...).If it is a typed pointer, it must point to data types.

```

https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/main/extensions/KHR/SPV_KHR_untyped_pointers.html#_modifications_to_the_opencl_std_extended_instruction_set

* relax printf check as well
2024-09-06 10:59:59 -04:00
Laura Hermanns
b31baff4ee
[opt] Add struct-packing pass and unit test. (#5778)
This pass allows to re-assign offset layout decorations
to tightly pack a struct according to its packing rules.
2024-09-05 15:24:29 -04:00
github-actions[bot]
2a67ced433
Roll external/abseil_cpp/ e64dd622d..f7f316824 (2 commits) (#5782)
e64dd622d7...f7f316824d

Created with:
  roll-dep external/abseil_cpp

Co-authored-by: GitHub Actions[bot] <>
2024-09-05 17:46:13 +00:00