Skip to content

Test WaveReadLaneAt.index.test in clang-vulkan config fails due to validatoin error with VUID-VkShaderModuleCreateInfo-pCode-08741 #352

@bob80905

Description

@bob80905

Logs:

# .---command stdout------------
# | Validation Error: [ VUID-VkShaderModuleCreateInfo-pCode-08741 ] | MessageID = 0x938b32
# | vkCreateShaderModule(): SPIR-V Extension SPV_KHR_no_integer_wrap_decoration was declared, but that is not supported by Vulkan.
# | The Vulkan spec states: If pCode is a pointer to SPIR-V code, pCode must not declare any SPIR-V extension that is not supported by the API, as described by the Extension section of the SPIR-V Environment appendix (https://vulkan.lunarg.com/doc/view/1.4.313.1/windows/antora/spec/latest/chapters/shaders.html#VUID-VkShaderModuleCreateInfo-pCode-08741)
# | 

This is the source that triggered it:

StructuredBuffer<int> InInt : register(t0);
RWStructuredBuffer<int> OutBroadcast : register(u1);
RWStructuredBuffer<int> OutShift : register(u2);
RWStructuredBuffer<int> OutMix : register(u3);

[numthreads(4,1,1)]
void main(uint3 TID : SV_GroupThreadID) {
  OutBroadcast[TID.x] = WaveReadLaneAt(InInt[TID.x], 2);

  uint PosShiftIndex = (TID.x + 1) % 4;
  int PosValue = WaveReadLaneAt(InInt[TID.x], PosShiftIndex);
  uint NegShiftIndex = (TID.x - 1) % 4;
  int NegValue = WaveReadLaneAt(InInt[TID.x], NegShiftIndex);
  OutShift[TID.x] = PosValue + NegValue;

  uint MixIndex = 0;
  switch (TID.x) {
    case 0:
      MixIndex = 2;
      break;
    case 1:
      MixIndex = 3;
      break;
    case 2:
      MixIndex = 1;
      break;
    default:
      break;
  }

  OutMix[TID.x] = WaveReadLaneAt(InInt[TID.x], MixIndex);
}

Run line:

# RUN: split-file %s %t
# RUN: %dxc_target -T cs_6_5 -Fo %t.o %t/source.hlsl
# RUN: %offloader %t/pipeline.yaml %t.o

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions