| ;; Test where variable set/binding/location decorations are different between |
| ;; src and dst fragment shaders. |
| OpCapability Shader |
| OpMemoryModel Logical GLSL450 |
| OpEntryPoint Fragment %63 "main" %4 %22 |
| OpExecutionMode %63 OriginUpperLeft |
| OpSource GLSL 450 |
| OpName %4 "_ue" |
| OpName %8 "_uf" |
| OpName %11 "_ug" |
| OpName %12 "_uA" |
| OpMemberName %12 0 "_ux" |
| OpName %14 "_uc" |
| OpName %15 "_uB" |
| OpMemberName %15 0 "_ux" |
| OpName %20 "_ud" |
| OpName %22 "_ucol" |
| OpName %26 "ANGLEDepthRangeParams" |
| OpMemberName %26 0 "near" |
| OpMemberName %26 1 "far" |
| OpMemberName %26 2 "diff" |
| OpMemberName %26 3 "reserved" |
| OpName %27 "ANGLEUniformBlock" |
| OpMemberName %27 0 "viewport" |
| OpMemberName %27 1 "clipDistancesEnabled" |
| OpMemberName %27 2 "xfbActiveUnpaused" |
| OpMemberName %27 3 "xfbVerticesPerInstance" |
| OpMemberName %27 4 "numSamples" |
| OpMemberName %27 5 "xfbBufferOffsets" |
| OpMemberName %27 6 "acbBufferOffsets" |
| OpMemberName %27 7 "depthRange" |
| OpName %29 "ANGLEUniforms" |
| OpName %33 "_uc" |
| OpName %32 "_uh" |
| OpName %49 "_ux" |
| OpName %50 "_uy" |
| OpName %48 "_ui" |
| OpName %63 "main" |
| OpName %65 "param" |
| OpName %68 "param" |
| OpName %73 "param" |
| OpDecorate %4 Location 0 |
| OpDecorate %8 RelaxedPrecision |
| OpDecorate %8 DescriptorSet 0 |
| OpDecorate %8 Binding 0 |
| OpDecorate %11 DescriptorSet 0 |
| OpDecorate %11 Binding 1 |
| OpMemberDecorate %12 0 Offset 0 |
| OpMemberDecorate %12 0 RelaxedPrecision |
| OpDecorate %12 Block |
| OpDecorate %14 DescriptorSet 0 |
| OpDecorate %14 Binding 2 |
| OpMemberDecorate %15 0 Offset 0 |
| OpMemberDecorate %15 0 RelaxedPrecision |
| OpDecorate %15 BufferBlock |
| OpDecorate %20 DescriptorSet 0 |
| OpDecorate %20 Binding 3 |
| OpDecorate %22 RelaxedPrecision |
| OpDecorate %22 Location 0 |
| OpMemberDecorate %26 0 Offset 0 |
| OpMemberDecorate %26 1 Offset 4 |
| OpMemberDecorate %26 2 Offset 8 |
| OpMemberDecorate %26 3 Offset 12 |
| OpMemberDecorate %27 0 Offset 0 |
| OpMemberDecorate %27 1 Offset 16 |
| OpMemberDecorate %27 2 Offset 20 |
| OpMemberDecorate %27 3 Offset 24 |
| OpMemberDecorate %27 4 Offset 28 |
| OpMemberDecorate %27 5 Offset 32 |
| OpMemberDecorate %27 6 Offset 48 |
| OpMemberDecorate %27 7 Offset 64 |
| OpMemberDecorate %27 2 RelaxedPrecision |
| OpMemberDecorate %27 4 RelaxedPrecision |
| OpDecorate %27 Block |
| OpDecorate %29 DescriptorSet 0 |
| OpDecorate %29 Binding 4 |
| OpDecorate %32 RelaxedPrecision |
| OpDecorate %33 RelaxedPrecision |
| OpDecorate %36 RelaxedPrecision |
| OpDecorate %37 RelaxedPrecision |
| OpDecorate %38 RelaxedPrecision |
| OpDecorate %39 RelaxedPrecision |
| OpDecorate %41 RelaxedPrecision |
| OpDecorate %42 RelaxedPrecision |
| OpDecorate %43 RelaxedPrecision |
| OpDecorate %48 RelaxedPrecision |
| OpDecorate %49 RelaxedPrecision |
| OpDecorate %50 RelaxedPrecision |
| OpDecorate %52 RelaxedPrecision |
| OpDecorate %53 RelaxedPrecision |
| OpDecorate %54 RelaxedPrecision |
| OpDecorate %55 RelaxedPrecision |
| OpDecorate %56 RelaxedPrecision |
| OpDecorate %57 RelaxedPrecision |
| OpDecorate %58 RelaxedPrecision |
| OpDecorate %59 RelaxedPrecision |
| OpDecorate %60 RelaxedPrecision |
| OpDecorate %67 RelaxedPrecision |
| OpDecorate %68 RelaxedPrecision |
| OpDecorate %72 RelaxedPrecision |
| OpDecorate %73 RelaxedPrecision |
| OpDecorate %75 RelaxedPrecision |
| OpDecorate %76 RelaxedPrecision |
| OpDecorate %77 RelaxedPrecision |
| OpDecorate %80 RelaxedPrecision |
| OpDecorate %81 RelaxedPrecision |
| %1 = OpTypeFloat 32 |
| %2 = OpTypeVector %1 4 |
| %5 = OpTypeImage %1 2D 0 0 0 1 Unknown |
| %6 = OpTypeSampledImage %5 |
| %9 = OpTypeImage %1 2D 0 0 0 2 Rgba8 |
| %12 = OpTypeStruct %2 |
| %15 = OpTypeStruct %2 |
| %16 = OpTypeInt 32 0 |
| %17 = OpConstant %16 2 |
| %18 = OpTypeArray %15 %17 |
| %23 = OpTypeInt 32 1 |
| %24 = OpTypeVector %23 4 |
| %25 = OpTypeVector %16 4 |
| %26 = OpTypeStruct %1 %1 %1 %1 |
| %27 = OpTypeStruct %2 %16 %16 %23 %23 %24 %25 %26 |
| %35 = OpTypeVector %1 2 |
| %40 = OpTypeVector %23 2 |
| %61 = OpTypeVoid |
| %69 = OpConstant %16 0 |
| %78 = OpConstant %16 1 |
| %3 = OpTypePointer Input %2 |
| %7 = OpTypePointer UniformConstant %6 |
| %10 = OpTypePointer UniformConstant %9 |
| %13 = OpTypePointer Uniform %12 |
| %19 = OpTypePointer Uniform %18 |
| %21 = OpTypePointer Output %2 |
| %28 = OpTypePointer Uniform %27 |
| %30 = OpTypePointer Function %2 |
| %70 = OpTypePointer Uniform %2 |
| %31 = OpTypeFunction %2 %30 |
| %47 = OpTypeFunction %2 %30 %30 |
| %62 = OpTypeFunction %61 |
| %4 = OpVariable %3 Input |
| %8 = OpVariable %7 UniformConstant |
| %11 = OpVariable %10 UniformConstant |
| %14 = OpVariable %13 Uniform |
| %20 = OpVariable %19 Uniform |
| %22 = OpVariable %21 Output |
| %29 = OpVariable %28 Uniform |
| %32 = OpFunction %2 None %31 |
| %33 = OpFunctionParameter %30 |
| %34 = OpLabel |
| %36 = OpLoad %6 %8 |
| %37 = OpLoad %2 %33 |
| %38 = OpVectorShuffle %35 %37 %37 0 1 |
| %39 = OpImageSampleImplicitLod %2 %36 %38 |
| %41 = OpLoad %2 %33 |
| %42 = OpVectorShuffle %35 %41 %41 2 3 |
| %43 = OpConvertFToS %40 %42 |
| %44 = OpLoad %9 %11 |
| %45 = OpImageRead %2 %44 %43 |
| %46 = OpFAdd %2 %39 %45 |
| OpReturnValue %46 |
| OpFunctionEnd |
| %48 = OpFunction %2 None %47 |
| %49 = OpFunctionParameter %30 |
| %50 = OpFunctionParameter %30 |
| %51 = OpLabel |
| %52 = OpLoad %2 %49 |
| %53 = OpVectorShuffle %35 %52 %52 0 1 |
| %54 = OpLoad %2 %50 |
| %55 = OpVectorShuffle %35 %54 %54 2 3 |
| %56 = OpCompositeExtract %1 %53 0 |
| %57 = OpCompositeExtract %1 %53 1 |
| %58 = OpCompositeExtract %1 %55 0 |
| %59 = OpCompositeExtract %1 %55 1 |
| %60 = OpCompositeConstruct %2 %56 %57 %58 %59 |
| OpReturnValue %60 |
| OpFunctionEnd |
| %63 = OpFunction %61 None %62 |
| %64 = OpLabel |
| %65 = OpVariable %30 Function |
| %68 = OpVariable %30 Function |
| %73 = OpVariable %30 Function |
| %66 = OpLoad %2 %4 |
| OpStore %65 %66 |
| %67 = OpFunctionCall %2 %32 %65 |
| %71 = OpAccessChain %70 %14 %69 |
| %72 = OpLoad %2 %71 |
| OpStore %68 %72 |
| %74 = OpAccessChain %70 %20 %69 %69 |
| %75 = OpLoad %2 %74 |
| OpStore %73 %75 |
| %76 = OpFunctionCall %2 %48 %68 %73 |
| %77 = OpFAdd %2 %67 %76 |
| %79 = OpAccessChain %70 %20 %78 %69 |
| %80 = OpLoad %2 %79 |
| %81 = OpFAdd %2 %77 %80 |
| OpStore %22 %81 |
| OpReturn |
| OpFunctionEnd |
| |