Skip to content

VUID-StandaloneSpirv-MemorySemantics-10871 with the latest vulkan validation layer #21512

@beicause

Description

@beicause

Bevy version and features

0.17.1 and main branch

Relevant system information

vulkan-validation-layers 1.4.328.1-1 (Installed)

2025-10-12T04:09:32.430649Z  INFO bevy_diagnostic::system_information_diagnostics_plugin::internal: SystemInfo { os: "Linux (EndeavourOS rolling)", kernel: "6.17.1-arch1-1", cpu: "AMD Ryzen 7 4800U with Radeon Graphics", core_count: "8", memory: "15.0 GiB" }
2025-10-12T04:09:32.796549Z  INFO bevy_render::renderer: AdapterInfo { name: "AMD Radeon Graphics (RADV RENOIR)", vendor: 4098, device: 5686, device_type: IntegratedGpu, driver: "radv", driver_info: "Mesa 25.2.4-arch1.1", backend: Vulkan }
2025-10-12T04:09:33.420231Z  INFO bevy_render::batching::gpu_preprocessing: GPU preprocessing is fully supported on this device.

What you did

Run examples in this repo, such as 3d_scene, 2d_shapes.

What went wrong

2025-10-12T04:12:00.101508Z ERROR wgpu_hal::vulkan::instance: VALIDATION [VUID-StandaloneSpirv-MemorySemantics-10871 (0x72170603)]
	vkCreateShaderModule(): pCreateInfo->pCode (spirv-val produced an error):
AtomicIAdd: Memory Semantics with at least one Vulkan-supported storage class semantics bit set (UniformMemory, WorkgroupMemory, ImageMemory, or OutputMemory) must use a non-relaxed memory order (Acquire, Release, or AcquireRelease)
  %318 = OpAtomicIAdd %uint %319 %int_1 %uint_64 %uint_1

Command to reproduce:
	spirv-val <input.spv> --relax-block-layout --target-env vulkan1.3

The Vulkan spec states: MemorySemantics with at least one Vulkan-supported storage class semantics bit set (UniformMemory, WorkgroupMemory, ImageMemory, or OutputMemory) must use a non-relaxed memory order (Acquire, Release, or AcquireRelease) (https://docs.vulkan.org/spec/latest/appendices/spirvenv.html#VUID-StandaloneSpirv-MemorySemantics-10871)
2025-10-12T04:12:00.251397Z ERROR wgpu_hal::vulkan::instance: VALIDATION [VUID-StandaloneSpirv-MemorySemantics-10871 (0x72170603)]
	vkCreateShaderModule(): pCreateInfo->pCode (spirv-val produced an error):
AtomicIAdd: Memory Semantics with at least one Vulkan-supported storage class semantics bit set (UniformMemory, WorkgroupMemory, ImageMemory, or OutputMemory) must use a non-relaxed memory order (Acquire, Release, or AcquireRelease)
  %535 = OpAtomicIAdd %uint %536 %int_1 %uint_64 %uint_1

Command to reproduce:
	spirv-val <input.spv> --relax-block-layout --target-env vulkan1.3

The Vulkan spec states: MemorySemantics with at least one Vulkan-supported storage class semantics bit set (UniformMemory, WorkgroupMemory, ImageMemory, or OutputMemory) must use a non-relaxed memory order (Acquire, Release, or AcquireRelease) (https://docs.vulkan.org/spec/latest/appendices/spirvenv.html#VUID-StandaloneSpirv-MemorySemantics-10871)
2025-10-12T04:12:00.435748Z ERROR wgpu_hal::vulkan::instance: VALIDATION [VUID-StandaloneSpirv-MemorySemantics-10871 (0x72170603)]
	vkCreateShaderModule(): pCreateInfo->pCode (spirv-val produced an error):
AtomicIAdd: Memory Semantics with at least one Vulkan-supported storage class semantics bit set (UniformMemory, WorkgroupMemory, ImageMemory, or OutputMemory) must use a non-relaxed memory order (Acquire, Release, or AcquireRelease)
  %86 = OpAtomicIAdd %uint %87 %int_1 %uint_64 %uint_1

Command to reproduce:
	spirv-val <input.spv> --relax-block-layout --target-env vulkan1.3

The Vulkan spec states: MemorySemantics with at least one Vulkan-supported storage class semantics bit set (UniformMemory, WorkgroupMemory, ImageMemory, or OutputMemory) must use a non-relaxed memory order (Acquire, Release, or AcquireRelease) (https://docs.vulkan.org/spec/latest/appendices/spirvenv.html#VUID-StandaloneSpirv-MemorySemantics-10871)
2025-10-12T04:12:00.521919Z ERROR wgpu_hal::vulkan::instance: VALIDATION [VUID-StandaloneSpirv-MemorySemantics-10871 (0x72170603)]
	vkCreateShaderModule(): pCreateInfo->pCode (spirv-val produced an error):
AtomicIAdd: Memory Semantics with at least one Vulkan-supported storage class semantics bit set (UniformMemory, WorkgroupMemory, ImageMemory, or OutputMemory) must use a non-relaxed memory order (Acquire, Release, or AcquireRelease)
  %86 = OpAtomicIAdd %uint %87 %int_1 %uint_64 %uint_1

Command to reproduce:
	spirv-val <input.spv> --relax-block-layout --target-env vulkan1.3

The Vulkan spec states: MemorySemantics with at least one Vulkan-supported storage class semantics bit set (UniformMemory, WorkgroupMemory, ImageMemory, or OutputMemory) must use a non-relaxed memory order (Acquire, Release, or AcquireRelease) (https://docs.vulkan.org/spec/latest/appendices/spirvenv.html#VUID-StandaloneSpirv-MemorySemantics-10871)
2025-10-12T04:12:00.542876Z ERROR wgpu_hal::vulkan::instance: VALIDATION [VUID-StandaloneSpirv-MemorySemantics-10871 (0x72170603)]
	vkCreateShaderModule(): pCreateInfo->pCode (spirv-val produced an error):
AtomicIAdd: Memory Semantics with at least one Vulkan-supported storage class semantics bit set (UniformMemory, WorkgroupMemory, ImageMemory, or OutputMemory) must use a non-relaxed memory order (Acquire, Release, or AcquireRelease)
  %87 = OpAtomicIAdd %uint %88 %int_1 %uint_64 %uint_1

Command to reproduce:
	spirv-val <input.spv> --relax-block-layout --target-env vulkan1.3

The Vulkan spec states: MemorySemantics with at least one Vulkan-supported storage class semantics bit set (UniformMemory, WorkgroupMemory, ImageMemory, or OutputMemory) must use a non-relaxed memory order (Acquire, Release, or AcquireRelease) (https://docs.vulkan.org/spec/latest/appendices/spirvenv.html#VUID-StandaloneSpirv-MemorySemantics-10871)
2025-10-12T04:12:00.568149Z ERROR wgpu_hal::vulkan::instance: VALIDATION [VUID-StandaloneSpirv-MemorySemantics-10871 (0x72170603)]
	vkCreateShaderModule(): pCreateInfo->pCode (spirv-val produced an error):
AtomicIAdd: Memory Semantics with at least one Vulkan-supported storage class semantics bit set (UniformMemory, WorkgroupMemory, ImageMemory, or OutputMemory) must use a non-relaxed memory order (Acquire, Release, or AcquireRelease)
  %87 = OpAtomicIAdd %uint %88 %int_1 %uint_64 %uint_1

Command to reproduce:
	spirv-val <input.spv> --relax-block-layout --target-env vulkan1.3

The Vulkan spec states: MemorySemantics with at least one Vulkan-supported storage class semantics bit set (UniformMemory, WorkgroupMemory, ImageMemory, or OutputMemory) must use a non-relaxed memory order (Acquire, Release, or AcquireRelease) (https://docs.vulkan.org/spec/latest/appendices/spirvenv.html#VUID-StandaloneSpirv-MemorySemantics-10871)
2025-10-12T04:12:00.591773Z ERROR wgpu_hal::vulkan::instance: VALIDATION [VUID-StandaloneSpirv-MemorySemantics-10871 (0x72170603)]
	vkCreateShaderModule(): pCreateInfo->pCode (spirv-val produced an error):
AtomicIAdd: Memory Semantics with at least one Vulkan-supported storage class semantics bit set (UniformMemory, WorkgroupMemory, ImageMemory, or OutputMemory) must use a non-relaxed memory order (Acquire, Release, or AcquireRelease)
  %86 = OpAtomicIAdd %uint %87 %int_1 %uint_64 %uint_1

Command to reproduce:
	spirv-val <input.spv> --relax-block-layout --target-env vulkan1.3

The Vulkan spec states: MemorySemantics with at least one Vulkan-supported storage class semantics bit set (UniformMemory, WorkgroupMemory, ImageMemory, or OutputMemory) must use a non-relaxed memory order (Acquire, Release, or AcquireRelease) (https://docs.vulkan.org/spec/latest/appendices/spirvenv.html#VUID-StandaloneSpirv-MemorySemantics-10871)
2025-10-12T04:12:00.658468Z ERROR wgpu_hal::vulkan::instance: VALIDATION [VUID-StandaloneSpirv-MemorySemantics-10871 (0x72170603)]
	vkCreateShaderModule(): pCreateInfo->pCode (spirv-val produced an error):
AtomicLoad: Memory Semantics with at least one Vulkan-supported storage class semantics bit set (UniformMemory, WorkgroupMemory, ImageMemory, or OutputMemory) must use a non-relaxed memory order (Acquire, Release, or AcquireRelease)
  %390 = OpAtomicLoad %uint %389 %int_1 %uint_64

Command to reproduce:
	spirv-val <input.spv> --relax-block-layout --target-env vulkan1.3

The Vulkan spec states: MemorySemantics with at least one Vulkan-supported storage class semantics bit set (UniformMemory, WorkgroupMemory, ImageMemory, or OutputMemory) must use a non-relaxed memory order (Acquire, Release, or AcquireRelease) (https://docs.vulkan.org/spec/latest/appendices/spirvenv.html#VUID-StandaloneSpirv-MemorySemantics-10871)
2025-10-12T04:12:00.798160Z ERROR wgpu_hal::vulkan::instance: VALIDATION [VUID-StandaloneSpirv-MemorySemantics-10871 (0x72170603)]
	vkCreateShaderModule(): pCreateInfo->pCode (spirv-val produced an error):
AtomicStore: Memory Semantics with at least one Vulkan-supported storage class semantics bit set (UniformMemory, WorkgroupMemory, ImageMemory, or OutputMemory) must use a non-relaxed memory order (Acquire, Release, or AcquireRelease)
  OpAtomicStore %28 %int_1 %uint_64 %uint_0

Command to reproduce:
	spirv-val <input.spv> --relax-block-layout --target-env vulkan1.3

The Vulkan spec states: MemorySemantics with at least one Vulkan-supported storage class semantics bit set (UniformMemory, WorkgroupMemory, ImageMemory, or OutputMemory) must use a non-relaxed memory order (Acquire, Release, or AcquireRelease) (https://docs.vulkan.org/spec/latest/appendices/spirvenv.html#VUID-StandaloneSpirv-MemorySemantics-10871)
2025-10-12T04:12:00.841621Z ERROR wgpu_hal::vulkan::instance: VALIDATION [VUID-StandaloneSpirv-MemorySemantics-10871 (0x72170603)]
	(Warning - This VUID has now been reported 10 times, which is the duplicate_message_limit value, this will be the last time reporting it).
vkCreateShaderModule(): pCreateInfo->pCode (spirv-val produced an error):
AtomicIAdd: Memory Semantics with at least one Vulkan-supported storage class semantics bit set (UniformMemory, WorkgroupMemory, ImageMemory, or OutputMemory) must use a non-relaxed memory order (Acquire, Release, or AcquireRelease)
  %86 = OpAtomicIAdd %uint %87 %int_1 %uint_64 %uint_1

Command to reproduce:
	spirv-val <input.spv> --relax-block-layout --target-env vulkan1.3

The Vulkan spec states: MemorySemantics with at least one Vulkan-supported storage class semantics bit set (UniformMemory, WorkgroupMemory, ImageMemory, or OutputMemory) must use a non-relaxed memory order (Acquire, Release, or AcquireRelease) (https://docs.vulkan.org/spec/latest/appendices/spirvenv.html#VUID-StandaloneSpirv-MemorySemantics-10871)

Additional information

This issue seems to happen just after I updated vvl recently.
Might be related to KhronosGroup/SPIRV-Tools#6216

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-RenderingDrawing game state to the screenC-BugAn unexpected or incorrect behaviorC-Machine-SpecificThis bug is isolated to specific hardware or driver configurationsS-Needs-InvestigationThis issue requires detective work to figure out what's going wrong

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions