Skip to content

Validator support for non-semantic clspv reflection#3618

Merged
alan-baker merged 12 commits intoKhronosGroup:masterfrom
alan-baker:clspv-reflection
Jul 30, 2020
Merged

Validator support for non-semantic clspv reflection#3618
alan-baker merged 12 commits intoKhronosGroup:masterfrom
alan-baker:clspv-reflection

Conversation

@alan-baker
Copy link
Copy Markdown
Contributor

Add validation for clspv's embedded reflection instructions.

  • Remove SPIRV-Tools local duplicated copies of extended instruction set grammars
  • Change the build to use extended instruction grammars from SPIRV-Headers instead
  • Add a build for clspv reflection extended instruction grammar

* basic validation of remaining instructions
* fix some operand size checks
* Change build to use grammar files from SPIRV-Headers instead of
  SPIRV-Tools
  * TODO: remove redundant grammar files
* Add enum for clspv reflection extended instruction set
  * count it as non-semantic
* verify arg info and kernel decls are from the same import as their
  uses
* basic tests
* Improve constant checks
* Add name match check for entry points
* More tests
* Fixed some bad messages
* compacted tests to fewer suites
* covered remaining cases
* Remove local copies of extended instructions sets
  * Instead source them from SPIRV-Headers
@alan-baker alan-baker requested a review from dneto0 July 29, 2020 18:30
@alan-baker alan-baker self-assigned this Jul 29, 2020
Copy link
Copy Markdown
Collaborator

@dneto0 dneto0 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Need Android.mk changes. Still reviewing.

# It might migrate to SPIRV-Headers.
set(DEBUGINFO_GRAMMAR_JSON_FILE "${CMAKE_CURRENT_SOURCE_DIR}/extinst.debuginfo.grammar.json")
set(CLDEBUGINFO100_GRAMMAR_JSON_FILE "${CMAKE_CURRENT_SOURCE_DIR}/extinst.opencl.debuginfo.100.grammar.json")
set(DEBUGINFO_GRAMMAR_JSON_FILE "${SPIRV_HEADER_INCLUDE_DIR}/spirv/unified1/extinst.debuginfo.grammar.json")
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also need corresponding changes in the Android.mk file

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And BUILD.bazel and BUILD.gn... so many build systems.

* Update non-cmake builds to use grammars from SPIRV-Headers instead of
  local duplicates
  * Affects Android.mk, BUILD.bazel, BUILD.gn
* Formatting
* Update parameter name to clarify it is an index not an id
* Fix kernel validation to not assert when functio is not an entry point
@alan-baker alan-baker requested review from dnovillo and zoddicus July 29, 2020 20:57
@alan-baker
Copy link
Copy Markdown
Contributor Author

@dnovillo please take a look at the BUILD.bazel changes.

@zoddicus please take a look at the BUILD.gn changes.

* Android builds couldn't find stoul
* Add checks that there is a version on the import
  * new test
Copy link
Copy Markdown
Collaborator

@dneto0 dneto0 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Still want opinions on BUILD.gn and Bazel updates.

Copy link
Copy Markdown
Contributor

@dnovillo dnovillo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The bazel build changes LGTM.

Copy link
Copy Markdown
Contributor

@zoddicus zoddicus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm, then missing }s I pointed out.

BUILD.gn Outdated
glsl_json_file = "${spirv_headers}/include/spirv/${version}/extinst.glsl.std.450.grammar.json"
debuginfo_insts_file = "source/extinst.debuginfo.grammar.json"
cldebuginfo100_insts_file = "source/extinst.opencl.debuginfo.100.grammar.json"
debuginfo_insts_file = "${spirv_headers/include/spirv/unified1/extinst.debuginfo.grammar.json"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing closing }s

@alan-baker alan-baker merged commit 5030045 into KhronosGroup:master Jul 30, 2020
@alan-baker alan-baker deleted the clspv-reflection branch July 30, 2020 16:08
dnovillo pushed a commit to dnovillo/SPIRV-Tools that referenced this pull request Aug 19, 2020
* Generate ext inst table for reflection
* Change build to use grammar files from SPIRV-Headers instead of
  SPIRV-Tools
* Add enum for clspv reflection extended instruction set
  * count it as non-semantic
* validate clspv reflection extended instruction set
* Remove local extended inst sets
* update headers deps
* Update nbuilds to use grammars from SPIRV-Headers instead of
  local duplicates
dneto0 pushed a commit to dneto0/SPIRV-Tools that referenced this pull request Sep 14, 2024
Roll third_party/glslang/ 3ee5f2f..b60e067 (8 commits)

KhronosGroup/glslang@3ee5f2f...b60e067

$ git log 3ee5f2f..b60e067 --date=short --no-merges --format='%ad %ae %s'
2020-08-06 john SPV: Fix KhronosGroup#1829: don't emit OpModuleProcessed use-storage-buffer
2020-08-05 john Build/Test: Dropping 2013 allows using the latest googletests.
2020-08-04 john SPV: Standalone; sanity check the client GLSL input semantics option value.
2020-08-04 john SPV: Use more correct SPV-Tools environment, partially addressing KhronosGroup#2290
2020-08-04 john SPV: Fix KhronosGroup#2363: include trailing newline named text SPV output.
2020-07-03 ShabbyX Use GLSLANG_ANGLE to strip features to what ANGLE requires
2020-07-31 bclayton Revert changes that migrate to `thread_local`.
2020-07-27 dneto Avoid spurious warning about uninit var

Created with:
  roll-dep third_party/glslang

Roll third_party/googletest/ a781fe29b..3af06fe16 (12 commits)

google/googletest@a781fe2...3af06fe

$ git log a781fe29b..3af06fe16 --date=short --no-merges --format='%ad %ae %s'
2020-08-05 absl-team Googletest export
2020-08-03 absl-team Googletest export
2020-08-03 absl-team Googletest export
2020-08-05 zumix.cpp fix endif comment
2020-08-02 zumix.cpp fix tests
2020-07-29 franciscogthiesen Removing tiny-dnn from "Who is using.."
2020-07-28 absl-team Googletest export
2020-07-29 zumix.cpp fix GTEST_REMOVE_LEGACY_TEST_CASEAPI_ typo
2020-07-28 absl-team Googletest export
2020-07-26 ofats Googletest export
2020-07-19 jasjuang fix clang tidy modernize-use-equals-default warnings
2020-07-02 siliconearth Fix test failing when simple regex is used

Created with:
  roll-dep third_party/googletest

Roll third_party/spirv-cross/ 0376576d2..82d1c43e4 (7 commits)

KhronosGroup/SPIRV-Cross@0376576...82d1c43

$ git log 0376576d2..82d1c43e4 --date=short --no-merges --format='%ad %ae %s'
2020-08-03 cdavis MSL: Fix handling of matrices and structs in the output control point array.
2020-07-29 post Add some test cases for complex type aliasing scenario.
2020-07-29 post Ensure that we use primary alias type when emitting flattened members.
2020-07-29 post GLSL: Be more aggressive about using type_alias.
2020-07-29 post Only rewrite type aliases for the base type.
2020-07-28 post GLSL: Add option to force flattening IO blocks.
2020-07-23 tommek Adding BuiltInSampleMask in HLSL

Created with:
  roll-dep third_party/spirv-cross

Roll third_party/spirv-headers/ 979924c..3fdabd0 (4 commits)

KhronosGroup/SPIRV-Headers@979924c...3fdabd0

$ git log 979924c..3fdabd0 --date=short --no-merges --format='%ad %ae %s'
2020-08-03 44190824+mmerecki Reserve SPIR-V token range for upcoming Intel extensions. (KhronosGroup#165)
2020-07-29 alanbaker Update BUILD.bazel and BUILD.gn (KhronosGroup#166)
2020-07-29 alanbaker Publish the headers for the clspv embedded reflection non-semantic extended instruction set (KhronosGroup#164)
2020-07-29 johnkslang Update the registry in spir-v.xml to modernize and split out opcodes. (KhronosGroup#156)

Created with:
  roll-dep third_party/spirv-headers

Roll third_party/spirv-tools/ b63f0e5..2990a21 (30 commits)

KhronosGroup/SPIRV-Tools@b63f0e5...2990a21

$ git log b63f0e5..2990a21 --date=short --no-merges --format='%ad %ae %s'
2020-08-10 stevenperron Avoid using /MP4 for clang on windows. (KhronosGroup#3662)
2020-08-06 antonikarp spirv-fuzz: TransformationReplaceAddSubMulWithCarryingExtended (KhronosGroup#3598)
2020-08-06 andreperezmaselco.developer spirv-fuzz: Add TransformationMakeVectorOperationDynamic (KhronosGroup#3597)
2020-08-06 andreperezmaselco.developer spirv-fuzz: iterate over blocks in replace linear algebra pass (KhronosGroup#3654)
2020-08-06 stefanomil spirv-fuzz: make outliner pass use additional transformations (KhronosGroup#3604)
2020-08-05 jaebaek OpenCL.DebugInfo.100 DebugTypeArray with variable size (KhronosGroup#3549)
2020-08-05 andreperezmaselco.developer spirv-opt: Improve the code of the Instruction class (KhronosGroup#3610)
2020-08-05 vasniktel spirv-fuzz: Handle OpPhis in livesafe functions (KhronosGroup#3642)
2020-08-05 vasniktel spirv-fuzz: Handle OpPhi during constant obfuscation (KhronosGroup#3640)
2020-08-05 vasniktel spirv-fuzz: Fix FuzzerPassCopyObjects (KhronosGroup#3638)
2020-08-04 vasniktel spirv-fuzz: Remove OpFunctionCall operands in correct order (KhronosGroup#3630)
2020-08-04 vasniktel spirv-fuzz: Handle capabilities during module donation (KhronosGroup#3651)
2020-08-04 vasniktel spirv-fuzz: Refactor boilerplate in TransformationAddParameter (KhronosGroup#3625)
2020-08-03 vasniktel spirv-fuzz: TransformationMoveInstructionDown (KhronosGroup#3477)
2020-07-31 jaebaek Remove DebugDeclare only for target variables in ssa-rewrite (KhronosGroup#3511)
2020-07-31 vasniktel Fix typo in ASAN CI build (KhronosGroup#3623)
2020-07-30 stefanomil spirv-fuzz: Transformation to add loop preheader (KhronosGroup#3599)
2020-07-30 stefanomil spirv-fuzz: Pass to replace int operands with ints of opposite signedness (KhronosGroup#3612)
2020-07-30 jaebaek Debug info preservation in loop-unroll pass (KhronosGroup#3548)
2020-07-30 alanbaker Validator support for non-semantic clspv reflection (KhronosGroup#3618)
2020-07-30 vasniktel spirv-fuzz: Fix memory bugs (KhronosGroup#3622)
2020-07-29 andreperezmaselco.developer spirv-fuzz: Implement the OpOuterProduct linear algebra case (KhronosGroup#3617)
2020-07-30 vasniktel spirv-fuzz: Compute corollary facts from OpBitcast (KhronosGroup#3538)
2020-07-29 dj2 Update some language usage. (KhronosGroup#3611)
2020-07-29 vasniktel spirv-fuzz: Relax type constraints in DataSynonym facts (KhronosGroup#3602)
2020-07-29 vasniktel spirv-fuzz: Remove non-deterministic behaviour (KhronosGroup#3608)
2020-07-29 afdx Avoid use of 'sanity' and 'sanity check' in the code base (KhronosGroup#3585)
2020-07-27 andreperezmaselco.developer spirv-fuzz: Add condition to make functions livesafe (KhronosGroup#3587)
2020-07-27 rharrison Rolling 4 dependencies (KhronosGroup#3601)
2020-07-27 andreperezmaselco.developer spirv-fuzz: Implement the OpTranspose linear algebra case (KhronosGroup#3589)

Created with:
  roll-dep third_party/spirv-tools
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants