Skip to content

Change spvContextCreate() to take a target environment.#165

Closed
dekimir wants to merge 6 commits intomasterfrom
vulkan-val
Closed

Change spvContextCreate() to take a target environment.#165
dekimir wants to merge 6 commits intomasterfrom
vulkan-val

Conversation

@dekimir
Copy link
Copy Markdown

@dekimir dekimir commented Mar 30, 2016

Add the spv_target_env enum.

Run clang-format.

Add the spv_target_env enum.

Run clang-format.
@dekimir
Copy link
Copy Markdown
Author

dekimir commented Mar 30, 2016

@antiagainst @AWoloszyn @qining @dneto0 PTAL

// Certain target environments impose additional restrictions on SPIR-V, so it's
// often necessary to specify which one applies. SPV_ENV_UNIVERSAL means
// environment-agnostic SPIR-V.
enum spv_target_env { SPV_ENV_UNIVERSAL, SPV_ENV_VULKAN };
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.

How do we accomodate evolution of the SPIR-V spec or the Vulkan spec?
It seems to me there be versions attached.
E.g. SPV_ENV_UNIVSERAL_1_0 and SPV_ENV_VULKAN_1_0
If we don't add the version distinction now, then the meaning of these non-versioned names will be ambiguous in the future.

@dneto0
Copy link
Copy Markdown
Collaborator

dneto0 commented Mar 31, 2016

Overall, this looks good.
-1 for compilation failure, and I think the enum values should have explicit versions in their names.

Rename ValidEnvironment test to InvalidEnvironment.

Fix an integer overflow under GCC.
// often necessary to specify which one applies. SPV_ENV_UNIVERSAL means
// environment-agnostic SPIR-V.
enum spv_target_env { SPV_ENV_UNIVERSAL, SPV_ENV_VULKAN };
enum spv_target_env { SPV_ENV_UNIVERSAL_1_0_4, SPV_ENV_VULKAN_1_0_7 };
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.

It's great having this level of control. But right now Vulkan is rev'ing at a weekly pace.
Many users will only care about a more coarse grain target. That is I expect uses that drop the revision number, e.g.
SPV_ENV_UNIVERSAL_1_0 and SPV_ENV_VULKAN_1_0 will be very common.

So lets add those in addition to the more specific ones. The people who care about the tiniest changes can still get what they need.

Also the particular enum values should be stable over time. So don't make the less specific ones equal to the more specific ones.

I think that also means that even when we retire support for a very specific target env enum, we have to keep its value slot occupied. But we could change its name to break clients to indicate that the code is no longer supported. We could also cause the context creation to return nullptr when we don't support that value any more.

dekimir pushed a commit to google/shaderc that referenced this pull request Mar 31, 2016
@dekimir
Copy link
Copy Markdown
Author

dekimir commented Mar 31, 2016

Feedback addressed.

@dneto0
Copy link
Copy Markdown
Collaborator

dneto0 commented Mar 31, 2016

+2

@dekimir
Copy link
Copy Markdown
Author

dekimir commented Mar 31, 2016

Squashed and merged to master via 3d27da4.

@dekimir dekimir closed this Mar 31, 2016
dekimir pushed a commit to google/shaderc that referenced this pull request Mar 31, 2016
@dekimir dekimir deleted the vulkan-val branch March 31, 2016 16:36
@zoddicus zoddicus mentioned this pull request Aug 10, 2020
zoddicus added a commit that referenced this pull request Aug 10, 2020
Roll external/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 external/googletest

Roll external/spirv-headers/ 5538bf4..3fdabd0 (1 commit)

KhronosGroup/SPIRV-Headers@5538bf4...3fdabd0

$ git log 5538bf4..3fdabd0 --date=short --no-merges --format='%ad %ae %s'
2020-08-03 44190824+mmerecki Reserve SPIR-V token range for upcoming Intel extensions. (#165)

Created with:
  roll-dep external/spirv-headers
dnovillo pushed a commit to dnovillo/SPIRV-Tools that referenced this pull request Aug 19, 2020
Roll external/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 external/googletest

Roll external/spirv-headers/ 5538bf4..3fdabd0 (1 commit)

KhronosGroup/SPIRV-Headers@5538bf4...3fdabd0

$ git log 5538bf4..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)

Created with:
  roll-dep external/spirv-headers
rjodinchr pushed a commit to rjodinchr/SPIRV-Tools that referenced this pull request Jun 22, 2022
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.

2 participants