Skip to content

Validate Volatile memory semantics bit#2672

Merged
alan-baker merged 1 commit intoKhronosGroup:masterfrom
alan-baker:val-semantics-volatile
Jun 17, 2019
Merged

Validate Volatile memory semantics bit#2672
alan-baker merged 1 commit intoKhronosGroup:masterfrom
alan-baker:val-semantics-volatile

Conversation

@alan-baker
Copy link
Copy Markdown
Contributor

  • Can only be used with Vulkan memory model
  • Can only be used with atomics
  • Bit setting must match for compare exchange opcodes
  • Updated memory semantics checks to allow constant instructions
    generally with CooperativeMatrixNV

@dneto0 and @zoddicus I left it disallowed for WebGPU. Should this be changed?

FYI @jeffbolznv

@alan-baker alan-baker requested a review from dneto0 June 13, 2019 17:26
@alan-baker alan-baker self-assigned this Jun 13, 2019
@jeffbolznv
Copy link
Copy Markdown
Contributor

LGTM

_.EvalInt32IfConst(
inst->GetOperandAs<uint32_t>(unequal_semantics_index));
if (is_equal_const && is_unequal_const &&
((equal_value & SpvMemorySemanticsVolatileMask) ^
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.

I think the new flag will end with "KHRMask"

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.

We put it in without the KHR part because the semantics won't change.
KhronosGroup/SPIRV-Headers#119 (comment)

@dneto0
Copy link
Copy Markdown
Collaborator

dneto0 commented Jun 14, 2019

I'm trying to fix the bot failures with #2675

@dneto0
Copy link
Copy Markdown
Collaborator

dneto0 commented Jun 14, 2019

Please rebase to get bots to pass.

@alan-baker alan-baker force-pushed the val-semantics-volatile branch from 7e6f959 to 069c6c3 Compare June 17, 2019 12:29
* Can only be used with Vulkan memory model
* Can only be used with atomics
* Bit setting must match for compare exchange opcodes
* Updated memory semantics checks to allow constant instructions
generally with CooperativeMatrixNV
@alan-baker alan-baker force-pushed the val-semantics-volatile branch from 069c6c3 to 7b5dab4 Compare June 17, 2019 15:33
@alan-baker alan-baker merged commit 3d5fb7b into KhronosGroup:master Jun 17, 2019
@alan-baker alan-baker deleted the val-semantics-volatile branch June 17, 2019 17:35
dneto0 pushed a commit to dneto0/SPIRV-Tools that referenced this pull request Sep 14, 2024
Roll third_party/glslang/ 9db7278..f9d08a2 (6 commits)

KhronosGroup/glslang@9db7278...f9d08a2

$ git log 9db7278..f9d08a2 --date=short --no-merges --format='%ad %ae %s'
2019-06-18 cepheus Bump revision.
2019-06-17 cepheus AST/SPV: Fix KhronosGroup#930: translate uvec4 <-> uint64 for SubgroupGeMask et. al.
2019-06-18 cepheus Bump revision.
2019-06-17 cepheus SPV: Add a switch for favoring non-NaN operands in min, max, and clamp.
2019-06-17 cepheus Bump revision.
2019-02-17 jbolz Add Float16/Int8/Int16 capabilities for private variables and function parameters

Roll third_party/googletest/ 176eccfb8..ee32b72e1 (12 commits)

google/googletest@176eccf...ee32b72

$ git log 176eccfb8..ee32b72e1 --date=short --no-merges --format='%ad %ae %s'
2019-06-18 misterg Googletest export
2019-06-17 misterg Googletest export
2019-06-17 misterg Fixing CI break by going to bazel 0.26.1
2019-06-17 misterg Revert "testing, explicitly specify compiler"
2019-06-17 absl-team Googletest export
2019-06-17 misterg Googletest export
2019-06-17 misterg revert travis.yml, irrelevant
2019-06-17 misterg bazel 0.26.1
2019-06-17 misterg bazel 0.26.1
2019-06-17 misterg testing with bazel 0.26.1
2019-06-17 misterg testing with bazel 0.26.1
2019-06-17 misterg testing, explicitly specify compiler

Roll third_party/spirv-cross/ 146dc453b..05ea05509 (2 commits)

KhronosGroup/SPIRV-Cross@146dc45...05ea055

$ git log 146dc453b..05ea05509 --date=short --no-merges --format='%ad %ae %s'
2019-06-18 post Make sure args.msl22 is set in test_shaders.py.
2019-06-18 post MSL: Fix path check in test_shaders.py.

Roll third_party/spirv-tools/ 59983a6..001e823 (5 commits)

KhronosGroup/SPIRV-Tools@59983a6...001e823

$ git log 59983a6..001e823 --date=short --no-merges --format='%ad %ae %s'
2019-06-18 afdx Add fuzzer pass to obfuscate constants. (KhronosGroup#2671)
2019-06-17 33432579+alan-baker Handle volatile memory semantics in upgrade (KhronosGroup#2674)
2019-06-17 33432579+alan-baker Validate Volatile memory semantics bit (KhronosGroup#2672)
2019-06-17 33432579+alan-baker Disallow stores to UBOs (KhronosGroup#2651)
2019-06-17 dneto Another fix uint -> uint32_t (KhronosGroup#2676)

Created with:
  roll-dep third_party/effcee third_party/glslang third_party/googletest third_party/re2 third_party/spirv-cross third_party/spirv-headers 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.

3 participants