Skip to content

[SPIRV][MoltenVK] WaveReadLaneAt.Int.64.test. generating call to nonexistant functionsimd_shuffle #672

@farzonl

Description

@farzonl

godbolt

https://godbolt.org/z/f119TW1YP

The error is:

[mvk-error] VK_ERROR_INITIALIZATION_FAILED: Shader library compile failed (Error code 3):

This is very likely to be a bug we need to file in https://github.com/KhronosGroup/SPIRV-Cross. This is a place holder for now until we file an actionable ticket for them. It seems very similar to KhronosGroup/SPIRV-Cross#2538 but don't want to reopen it prematurely.

/Users/farzon/Projects/builds/llvm_relwithdebinfo_offload/tools/OffloadTest/test/clang-vk/WaveOps/Output/WaveReadLaneAt.Int.64.test.tmp/source.hlsl:14:46: warning: implicit conversion changes signedness: 'const long' to 'unsigned long' [-Wsign-conversion]
   14 |   uint64_t4 ThreadInInt = {InInt[TID.x].xyz, InInt[TID.x].w};
      |                           ~                  ^~~~~~~~~~~~~~
/Users/farzon/Projects/builds/llvm_relwithdebinfo_offload/tools/OffloadTest/test/clang-vk/WaveOps/Output/WaveReadLaneAt.Int.64.test.tmp/source.hlsl:14:28: warning: implicit conversion changes signedness: 'const long' to 'unsigned long' [-Wsign-conversion]
   14 |   uint64_t4 ThreadInInt = {InInt[TID.x].xyz, InInt[TID.x].w};
      |                           ~^~~~~~~~~~~~~~~~
/Users/farzon/Projects/builds/llvm_relwithdebinfo_offload/tools/OffloadTest/test/clang-vk/WaveOps/Output/WaveReadLaneAt.Int.64.test.tmp/source.hlsl:14:28: warning: implicit conversion changes signedness: 'const long' to 'unsigned long' [-Wsign-conversion]
   14 |   uint64_t4 ThreadInInt = {InInt[TID.x].xyz, InInt[TID.x].w};
      |                           ~^~~~~~~~~~~~~~~~
/Users/farzon/Projects/builds/llvm_relwithdebinfo_offload/tools/OffloadTest/test/clang-vk/WaveOps/Output/WaveReadLaneAt.Int.64.test.tmp/source.hlsl:14:28: warning: implicit conversion changes signedness: 'const long' to 'unsigned long' [-Wsign-conversion]
   14 |   uint64_t4 ThreadInInt = {InInt[TID.x].xyz, InInt[TID.x].w};
      |                           ~^~~~~~~~~~~~~~~~
/Users/farzon/Projects/builds/llvm_relwithdebinfo_offload/tools/OffloadTest/test/clang-vk/WaveOps/Output/WaveReadLaneAt.Int.64.test.tmp/source.hlsl:15:25: warning: implicit conversion changes signedness: 'uint64_t4' (aka 'vector<uint64_t, 4>') to 'vector<long, 4>' (vector of 4 'long' values) [-Wsign-conversion]
   15 |   OutInt[OutIdx + 1] =  WaveReadLaneAt(ThreadInInt, TID.x);;
      |                      ~  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/farzon/Projects/builds/llvm_relwithdebinfo_offload/tools/OffloadTest/test/clang-vk/WaveOps/Output/WaveReadLaneAt.Int.64.test.tmp/source.hlsl:20:47: warning: implicit conversion changes signedness: 'const unsigned long' to 'long' [-Wsign-conversion]
   20 |   int64_t4 ThreadInUInt = {InUInt[TID.x].xyz, InUInt[TID.x].w};
      |                           ~                   ^~~~~~~~~~~~~~~
/Users/farzon/Projects/builds/llvm_relwithdebinfo_offload/tools/OffloadTest/test/clang-vk/WaveOps/Output/WaveReadLaneAt.Int.64.test.tmp/source.hlsl:20:28: warning: implicit conversion changes signedness: 'const unsigned long' to 'long' [-Wsign-conversion]
   20 |   int64_t4 ThreadInUInt = {InUInt[TID.x].xyz, InUInt[TID.x].w};
      |                           ~^~~~~~~~~~~~~~~~~
/Users/farzon/Projects/builds/llvm_relwithdebinfo_offload/tools/OffloadTest/test/clang-vk/WaveOps/Output/WaveReadLaneAt.Int.64.test.tmp/source.hlsl:20:28: warning: implicit conversion changes signedness: 'const unsigned long' to 'long' [-Wsign-conversion]
   20 |   int64_t4 ThreadInUInt = {InUInt[TID.x].xyz, InUInt[TID.x].w};
      |                           ~^~~~~~~~~~~~~~~~~
/Users/farzon/Projects/builds/llvm_relwithdebinfo_offload/tools/OffloadTest/test/clang-vk/WaveOps/Output/WaveReadLaneAt.Int.64.test.tmp/source.hlsl:20:28: warning: implicit conversion changes signedness: 'const unsigned long' to 'long' [-Wsign-conversion]
   20 |   int64_t4 ThreadInUInt = {InUInt[TID.x].xyz, InUInt[TID.x].w};
      |                           ~^~~~~~~~~~~~~~~~~
/Users/farzon/Projects/builds/llvm_relwithdebinfo_offload/tools/OffloadTest/test/clang-vk/WaveOps/Output/WaveReadLaneAt.Int.64.test.tmp/source.hlsl:21:26: warning: implicit conversion changes signedness: 'int64_t4' (aka 'vector<int64_t, 4>') to 'vector<unsigned long, 4>' (vector of 4 'unsigned long' values) [-Wsign-conversion]
   21 |   OutUInt[OutIdx + 1] =  WaveReadLaneAt(ThreadInUInt, TID.x);;
      |                       ~  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
10 warnings generated.
/Users/farzon/Projects/builds/llvm_relwithdebinfo_offload/bin/offloader -debug-layer -adapter-substring="MoltenVK" /Users/farzon/Projects/builds/llvm_relwithdebinfo_offload/tools/OffloadTest/test/clang-vk/WaveOps/Output/WaveReadLaneAt.Int.64.test.tmp/pipeline.yaml /Users/farzon/Projects/builds/llvm_relwithdebinfo_offload/tools/OffloadTest/test/clang-vk/WaveOps/Output/WaveReadLaneAt.Int.64.test.tmp.o # RUN: at line 110
+ /Users/farzon/Projects/builds/llvm_relwithdebinfo_offload/bin/offloader -debug-layer -adapter-substring=MoltenVK /Users/farzon/Projects/builds/llvm_relwithdebinfo_offload/tools/OffloadTest/test/clang-vk/WaveOps/Output/WaveReadLaneAt.Int.64.test.tmp/pipeline.yaml /Users/farzon/Projects/builds/llvm_relwithdebinfo_offload/tools/OffloadTest/test/clang-vk/WaveOps/Output/WaveReadLaneAt.Int.64.test.tmp.o
[mvk-error] VK_ERROR_INITIALIZATION_FAILED: Shader library compile failed (Error code 3):
program_source:91:30: warning: unused variable '_str' [-Wunused-variable]
    spvUnsafeArray<uchar, 6> _str = spvUnsafeArray<uchar, 6>({ uchar(73), uchar(110), uchar(73), uchar(110), uchar(116), uchar(0) });
                             ^
program_source:92:30: warning: unused variable '_str_2' [-Wunused-variable]
    spvUnsafeArray<uchar, 7> _str_2 = spvUnsafeArray<uchar, 7>({ uchar(79), uchar(117), uchar(116), uchar(73), uchar(110), uchar(116), uchar(0) });
                             ^
program_source:93:30: warning: unused variable '_str_4' [-Wunused-variable]
    spvUnsafeArray<uchar, 7> _str_4 = spvUnsafeArray<uchar, 7>({ uchar(73), uchar(110), uchar(85), uchar(73), uchar(110), uchar(116), uchar(0) });
                             ^
program_source:94:30: warning: unused variable '_str_6' [-Wunused-variable]
    spvUnsafeArray<uchar, 8> _str_6 = spvUnsafeArray<uchar, 8>({ uchar(79), uchar(117), uchar(116), uchar(85), uchar(73), uchar(110), uchar(116), uchar(0) });
                             ^
program_source:50:12: error: no matching function for call to 'simd_shuffle'
    return simd_shuffle(value, lane);
           ^~~~~~~~~~~~
program_source:96:44: note: in instantiation of function template specialization 'spvSubgroupShuffle<unsigned long __attribute__((ext_vector_type(4)))>' requested here
    (*spvDescriptorSet0.OutInt)._m0[_59] = spvSubgroupShuffle((*spvDescriptorSet0.InInt)._m0[gl_LocalInvocationID.x], gl_LocalInvocationID.x);
                                           ^
/System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/32023/Libraries/lib/clang/32023.850/include/metal/metal_simdgroup:207:14: note: candidate template ignored: requirement '__is_valid_simdgroup_type<unsigned long __attribute__((ext_vector_type(4))), void>::value' was not satisfied [with T = unsigned long __attribute__((ext_vector_type(4)))]
METAL_FUNC T simd_shuffle(T data METAL_MAYBE_UNDEF, ushort simd_lane_id)
             ^
program_source:50:12: error: no matching function for call to 'simd_shuffle'
    return simd_shuffle(value, lane);
           ^~~~~~~~~~~~
program_source:100:18: note: in instantiation of function template specialization 'spvSubgroupShuffle<unsigned long __attribute__((ext_vector_type(2)))>' requested here
    ulong2 _72 = spvSubgroupShuffle(_70.xy, gl_LocalInvocationID.x);
                 ^
/System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/32023/Libraries/lib/clang/32023.850/include/metal/metal_simdgroup:207:14: note: candidate template ignored: requirement '__is_valid_simdgroup_type<unsigned long __attribute__((ext_vector_type(2))), void>::value' was not satisfied [with T = unsigned long __attribute__((ext_vector_type(2)))]
METAL_FUNC T simd_shuffle(T data METAL_MAYBE_UNDEF, ushort simd_lane_id)
             ^
.
[mvk-error] VK_ERROR_INITIALIZATION_FAILED: Compute shader function could not be compiled into pipeline. See previous logged error.
gpu-exec: error: Failed to create pipeline.

Metadata

Metadata

Assignees

No one assigned

    Labels

    driver-bugBugs that are likely or confirmed GPU driver bugs

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions