Skip to content

spirv-val: Missing OffsetIdEXT check on a struct #6696

@spencer-lunarg

Description

@spencer-lunarg

Currently going

%13 = OpTypeInt 32 0
%4 = OpConstant %13 0
OpDecorateId %7 OffsetIdEXT %4

%20 = OpTypeImage %13 1D 0 0 0 1 Unknown
%7 = OpTypeRuntimeArray %20

does not report an error even though the spec says

Image

https://godbolt.org/z/h3EnKsTxe

               OpCapability Shader
               OpCapability UntypedPointersKHR
               OpCapability DescriptorHeapEXT
               OpCapability Sampled1D
               OpExtension "SPV_KHR_untyped_pointers"
               OpExtension "SPV_EXT_descriptor_heap"
               OpMemoryModel Logical GLSL450
               OpEntryPoint GLCompute %1 "main" %2 %3
               OpExecutionMode %1 LocalSize 1 1 1
               OpDecorate %4 SpecId 0
               OpDecorate %5 SpecId 1
               OpDecorate %6 SpecId 2
               OpDecorate %2 BuiltIn ResourceHeapEXT
               OpDecorate %3 BuiltIn SamplerHeapEXT
               OpDecorateId %7 OffsetIdEXT %4
               OpDecorateId %8 OffsetIdEXT %5
               OpDecorateId %9 OffsetIdEXT %6
               OpMemberDecorate %10 0 Offset 0
         %11 = OpTypeVoid
         %12 = OpTypeFunction %11
         %13 = OpTypeInt 32 0
         %14 = OpTypeVector %13 4
         %15 = OpTypeFloat 32
         %16 = OpConstant %13 0
         %17 = OpConstant %13 1
         %18 = OpConstant %15 0
         %19 = OpConstant %15 1
          %4 = OpSpecConstant %13 0
          %5 = OpSpecConstant %13 0
          %6 = OpSpecConstant %13 0
         %20 = OpTypeImage %13 1D 0 0 0 1 Unknown
         %21 = OpTypeBufferEXT StorageBuffer
         %22 = OpTypeSampler
         %23 = OpTypeSampledImage %20
          %7 = OpTypeRuntimeArray %20
          %8 = OpTypeRuntimeArray %21
          %9 = OpTypeRuntimeArray %22
         %10 = OpTypeStruct %13
         %24 = OpTypeUntypedPointerKHR UniformConstant
         %25 = OpTypeUntypedPointerKHR StorageBuffer
          %2 = OpUntypedVariableKHR %24 UniformConstant
          %3 = OpUntypedVariableKHR %24 UniformConstant
          %1 = OpFunction %11 None %12
         %26 = OpLabel
         %27 = OpUntypedAccessChainKHR %24 %7 %2 %16
         %28 = OpLoad %20 %27
         %29 = OpUntypedAccessChainKHR %24 %9 %3 %16
         %30 = OpLoad %22 %29
         %31 = OpSampledImage %23 %28 %30
         %32 = OpImageSampleExplicitLod %14 %31 %19 Lod %18
         %33 = OpCompositeExtract %13 %32 0
         %34 = OpUntypedAccessChainKHR %24 %8 %2 %16
         %35 = OpBufferPointerEXT %25 %34
               OpStore %35 %33
               OpReturn
               OpFunctionEnd

Metadata

Metadata

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions