We want to be able to apply scalar replacement on variables that have
the AliasPointer and RestrictPointer decorations.
This exposed a bug that needs to be fixed as well.
Scalar replacement sometimes uses the type manager to get the type id for the
variables it is creating. The variable type is a pointer to a pointee
type. Currently, scalar replacement uses the type manager when only if
the pointee type has to be unique in the module. This is done to try to avoid the case where two type hash to the same
value in the type manager, and it returns the wrong one.
However, this check is not the correct check. Pointer types still have to be
unique in the spir-v module. However, two unique pointer types can hash
to the same value if their pointee types are isomorphic. For example,
%s1 = OpTypeStruct %int
%s2 = OpTypeStruct %int
; %p1 and %p2 will hash to the same value even though they are still
; considered "unique".
%p1 = OpTypePointer Function %s1
%p2 = OpTypePointer Function %s2
To fix this, we now use FindPointerToType, and we modified TypeManager::IsUnique to refer to the whether or not a type will hash to a unique value and say that pointers are not unique.
Fixes#5196
7f1d2f4158...268a061764
$ git log 7f1d2f415..268a06176 --date=short --no-merges --format='%ad %ae %s'
2023-05-03 devillers Reserve a single block of opcodes and enumerants for Saarland University (#343)
2023-04-06 duncan.brawley Shift Codeplay opcode range to preserve alignment of opcodes and non-opcodes
Created with:
roll-dep external/spirv-headers
Co-authored-by: GitHub Actions[bot] <>
Split per-DescriptorSet state into separate memory blocks
which are accessed via an array of buffer device addresses.
This is being done to make it easier to update state for a
single DescriptorSet without rebuilding the old giant flat
buffer.
The new data format is documented as comments in
include/spirv-tools/instrument.hpp
12a5852e45...783d00fd19
$ git log 12a5852e4..783d00fd1 --date=short --no-merges --format='%ad %ae %s'
2023-04-21 tomhughes Use '=default' to define trivial constructor/destructors
2023-04-21 tomhughes Use the empty method to check for emptiness
2023-04-20 tomhughes Add missing std includes
2023-04-20 tomhughes Use std::make_unique
2023-04-20 tomhughes Fix spelling
2023-04-20 tomhughes Add missing std includes
2023-04-20 tomhughes Make parameter names in function declaration match the names in the definitions
2023-04-17 absl-team Update gMock Cookbook to reflect deprecation of testing::ByMove
2023-04-14 jerylvaz Suppress a clang-tidy warning in the MATCHER_P macro
Created with:
roll-dep external/googletest
Co-authored-by: GitHub Actions[bot] <>
* Update protobuf to v21.12
We need to update because the current version was not buliding with gcc 12.2. I
could not move upda to v22.x because there was an odd use of some defines that
were causing failures.
* Disable clang warnings for protobuf headers
7ee260c549...057b4e904f
$ git log 7ee260c54..057b4e904 --date=short --no-merges --format='%ad %ae %s'
2023-04-05 absl-team gtest.cc: run tests within a test suite in a deterministic order.
Created with:
roll-dep external/googletest
Co-authored-by: GitHub Actions[bot] <>
* Roll external/googletest/ ca0d46e95..b5fd99bbd (2 commits)
ca0d46e95d...b5fd99bbd5
$ git log ca0d46e95..b5fd99bbd --date=short --no-merges --format='%ad %ae %s'
2023-03-30 jacobsa gtest.cc: run tests within a test suite in a deterministic order.
2023-03-29 absl-team Update naming to "GoogleTest" in the GoogleTest Primer.
Created with:
roll-dep external/googletest
* Roll external/spirv-headers/ 90547c54e..29ba24931 (1 commit)
90547c54e2...29ba249312
$ git log 90547c54e..29ba24931 --date=short --no-merges --format='%ad %ae %s'
2023-03-23 duncan.brawley Reserve SPIR-V blocks for Codeplay
Created with:
roll-dep external/spirv-headers
---------
Co-authored-by: GitHub Actions[bot] <>
If the build fails, the artifacts must still be chowned
so the CI can pick them up. If they are not, the CI tooling
will fail and go into 'aborted' state, which blocks the logs.
Signed-off-by: Nathan Gauër <brioche@google.com>
88af49efa7...ca0d46e95d
$ git log 88af49efa..ca0d46e95 --date=short --no-merges --format='%ad %ae %s'
2023-03-28 dmauro Fix redundant redeclaration warning
2023-03-28 dmauro Remove the Win64 arch from the CMake Generator since this can't be used with MSVC 2022
2023-03-23 65027571+gonzalobg Add doc comment
2022-12-28 gonzalob Fix warnings with nvc++ as the compiler
Created with:
roll-dep external/googletest
Co-authored-by: GitHub Actions[bot] <>
The control barrier instruction was allowed in a limiteted set of shader types.
Part of the HLSL legalization, we use to remove the instructions when it was is
a shader in which it was not allowed. As of spv1.3 that restriction is not long
there.
This change modifies replaced invalid opc to no longer remove it.
Fixes#4999.
* dump: add ability to extract HLSL from module
Only adds the code to extract the source from the module. The extracted files are written to the given directory.
Android NDK21 has C++17 support, but no std::filesystem support. (NDK22). As for now, the tool is not built on Android.
Might be something to revisit is the need to have this tool on Android arises.