#!amber

# Copyright 2020 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.


# A test for a bug found by the GraphicsFuzz project.

# Short description: Equivalent shaders, one where an id is hidden inside a composite

# The test passes because both shaders render the same image.

SHADER vertex reference_vertex_shader PASSTHROUGH

SHADER fragment reference_fragment_shader SPIRV-ASM TARGET_ENV spv1.0
; SPIR-V
; Version: 1.0
; Generator: Khronos Glslang Reference Front End; 7
; Bound: 107
; Schema: 0
               OpCapability Shader
          %1 = OpExtInstImport "GLSL.std.450"
               OpMemoryModel Logical GLSL450
               OpEntryPoint Fragment %4 "main" %12 %74
               OpExecutionMode %4 OriginUpperLeft
               OpSource ESSL 320
               OpName %4 "main"
               OpName %12 "gl_FragCoord"
               OpName %15 "buf0"
               OpMemberName %15 0 "resolution"
               OpName %17 ""
               OpName %74 "_GLF_color"
               OpName %100 "indexable"
               OpDecorate %12 BuiltIn FragCoord
               OpMemberDecorate %15 0 Offset 0
               OpDecorate %15 Block
               OpDecorate %17 DescriptorSet 0
               OpDecorate %17 Binding 0
               OpDecorate %74 Location 0
          %2 = OpTypeVoid
          %3 = OpTypeFunction %2
          %6 = OpTypeFloat 32
          %7 = OpTypeVector %6 2
         %10 = OpTypeVector %6 4
         %11 = OpTypePointer Input %10
         %12 = OpVariable %11 Input
         %15 = OpTypeStruct %7
         %16 = OpTypePointer Uniform %15
         %17 = OpVariable %16 Uniform
         %18 = OpTypeInt 32 1
         %19 = OpConstant %18 0
         %20 = OpTypePointer Uniform %7
         %27 = OpTypeInt 32 0
         %32 = OpConstant %6 10
         %47 = OpConstant %18 10
         %51 = OpConstant %18 100
         %60 = OpTypeBool
         %62 = OpConstant %18 4
         %65 = OpConstant %18 1000
         %71 = OpConstant %18 1
         %73 = OpTypePointer Output %10
         %74 = OpVariable %73 Output
         %75 = OpConstant %27 16
         %76 = OpTypeArray %10 %75
         %77 = OpConstant %6 0
         %78 = OpConstant %6 1
         %79 = OpConstantComposite %10 %77 %77 %77 %78
         %80 = OpConstant %6 0.5
         %81 = OpConstantComposite %10 %80 %77 %77 %78
         %82 = OpConstantComposite %10 %77 %80 %77 %78
         %83 = OpConstantComposite %10 %80 %80 %77 %78
         %84 = OpConstantComposite %10 %77 %77 %80 %78
         %85 = OpConstantComposite %10 %80 %77 %80 %78
         %86 = OpConstantComposite %10 %77 %80 %80 %78
         %87 = OpConstantComposite %10 %80 %80 %80 %78
         %88 = OpConstantComposite %10 %78 %77 %77 %78
         %89 = OpConstantComposite %10 %77 %78 %77 %78
         %90 = OpConstantComposite %10 %78 %78 %77 %78
         %91 = OpConstantComposite %10 %77 %77 %78 %78
         %92 = OpConstantComposite %10 %78 %77 %78 %78
         %93 = OpConstantComposite %10 %77 %78 %78 %78
         %94 = OpConstantComposite %10 %78 %78 %78 %78
         %95 = OpConstantComposite %76 %79 %81 %82 %83 %84 %85 %86 %87 %79 %88 %89 %90 %91 %92 %93 %94
         %97 = OpConstant %18 16
         %99 = OpTypePointer Function %76
        %101 = OpTypePointer Function %10
          %4 = OpFunction %2 None %3
          %5 = OpLabel
        %100 = OpVariable %99 Function
         %13 = OpLoad %10 %12
         %14 = OpVectorShuffle %7 %13 %13 0 1
         %21 = OpAccessChain %20 %17 %19
         %22 = OpLoad %7 %21
         %23 = OpFDiv %7 %14 %22
         %31 = OpCompositeExtract %6 %23 0
         %33 = OpFMul %6 %31 %32
         %34 = OpConvertFToS %18 %33
         %37 = OpCompositeExtract %6 %23 1
         %38 = OpFMul %6 %37 %32
         %39 = OpConvertFToS %18 %38
         %48 = OpIMul %18 %39 %47
         %49 = OpIAdd %18 %34 %48
               OpBranch %53
         %53 = OpLabel
        %106 = OpPhi %18 %51 %5 %69 %54
        %104 = OpPhi %18 %19 %5 %72 %54
         %61 = OpSLessThan %60 %104 %49
               OpLoopMerge %55 %54 None
               OpBranchConditional %61 %54 %55
         %54 = OpLabel
         %64 = OpIMul %18 %62 %106
         %67 = OpISub %18 %65 %106
         %68 = OpIMul %18 %64 %67
         %69 = OpSDiv %18 %68 %65
         %72 = OpIAdd %18 %104 %71
               OpBranch %53
         %55 = OpLabel
         %98 = OpSMod %18 %106 %97
               OpStore %100 %95
        %102 = OpAccessChain %101 %100 %98
        %103 = OpLoad %10 %102
               OpStore %74 %103
               OpReturn
               OpFunctionEnd
END

# uniforms for reference

# resolution
BUFFER reference_resolution DATA_TYPE vec2<float> DATA
 256.0 256.0
END

BUFFER reference_framebuffer FORMAT B8G8R8A8_UNORM

PIPELINE graphics reference_pipeline
  ATTACH reference_vertex_shader
  ATTACH reference_fragment_shader
  FRAMEBUFFER_SIZE 256 256
  BIND BUFFER reference_framebuffer AS color LOCATION 0
  BIND BUFFER reference_resolution AS uniform DESCRIPTOR_SET 0 BINDING 0
END
CLEAR_COLOR reference_pipeline 0 0 0 255

CLEAR reference_pipeline
RUN reference_pipeline DRAW_RECT POS 0 0 SIZE 256 256


SHADER vertex variant_vertex_shader PASSTHROUGH

SHADER fragment variant_fragment_shader SPIRV-ASM TARGET_ENV spv1.0
; SPIR-V
; Version: 1.0
; Generator: Khronos Glslang Reference Front End; 7
; Bound: 395
; Schema: 0
               OpCapability Shader
          %1 = OpExtInstImport "GLSL.std.450"
               OpMemoryModel Logical GLSL450
               OpEntryPoint Fragment %4 "main" %12 %74
               OpExecutionMode %4 OriginUpperLeft
               OpSource ESSL 320
               OpName %4 "main"
               OpName %12 "gl_FragCoord"
               OpName %15 "buf0"
               OpMemberName %15 0 "resolution"
               OpName %17 ""
               OpName %74 "_GLF_color"
               OpName %100 "indexable"
               OpDecorate %12 BuiltIn FragCoord
               OpMemberDecorate %15 0 Offset 0
               OpDecorate %15 Block
               OpDecorate %17 DescriptorSet 0
               OpDecorate %17 Binding 0
               OpDecorate %74 Location 0
          %2 = OpTypeVoid
          %3 = OpTypeFunction %2
          %6 = OpTypeFloat 32
          %7 = OpTypeVector %6 2
         %10 = OpTypeVector %6 4
         %11 = OpTypePointer Input %10
         %12 = OpVariable %11 Input
         %15 = OpTypeStruct %7
         %16 = OpTypePointer Uniform %15
         %17 = OpVariable %16 Uniform
         %18 = OpTypeInt 32 1
         %19 = OpConstant %18 0
         %20 = OpTypePointer Uniform %7
         %27 = OpTypeInt 32 0
         %32 = OpConstant %6 10
         %47 = OpConstant %18 10
         %51 = OpConstant %18 100
         %60 = OpTypeBool
         %62 = OpConstant %18 4
         %65 = OpConstant %18 1000
         %71 = OpConstant %18 1
         %73 = OpTypePointer Output %10
         %74 = OpVariable %73 Output
         %75 = OpConstant %27 16
         %76 = OpTypeArray %10 %75
         %77 = OpConstant %6 0
         %78 = OpConstant %6 1
         %79 = OpConstantComposite %10 %77 %77 %77 %78
         %80 = OpConstant %6 0.5
         %81 = OpConstantComposite %10 %80 %77 %77 %78
         %82 = OpConstantComposite %10 %77 %80 %77 %78
         %83 = OpConstantComposite %10 %80 %80 %77 %78
         %84 = OpConstantComposite %10 %77 %77 %80 %78
         %85 = OpConstantComposite %10 %80 %77 %80 %78
         %86 = OpConstantComposite %10 %77 %80 %80 %78
         %87 = OpConstantComposite %10 %80 %80 %80 %78
         %88 = OpConstantComposite %10 %78 %77 %77 %78
         %89 = OpConstantComposite %10 %77 %78 %77 %78
         %90 = OpConstantComposite %10 %78 %78 %77 %78
         %91 = OpConstantComposite %10 %77 %77 %78 %78
         %92 = OpConstantComposite %10 %78 %77 %78 %78
         %93 = OpConstantComposite %10 %77 %78 %78 %78
         %94 = OpConstantComposite %10 %78 %78 %78 %78
         %95 = OpConstantComposite %76 %79 %81 %82 %83 %84 %85 %86 %87 %79 %88 %89 %90 %91 %92 %93 %94
         %97 = OpConstant %18 16
         %99 = OpTypePointer Function %76
        %101 = OpTypePointer Function %10
        %213 = OpConstantComposite %7 %77 %77
        %246 = OpConstant %6 0.5
          %4 = OpFunction %2 None %3
          %5 = OpLabel
        %100 = OpVariable %99 Function
         %13 = OpLoad %10 %12
         %14 = OpVectorShuffle %7 %13 %13 0 1
         %21 = OpAccessChain %20 %17 %19
        %341 = OpCompositeConstruct %10 %77 %14 %246
         %22 = OpLoad %7 %21
         %23 = OpFDiv %7 %14 %22
         %31 = OpCompositeExtract %6 %23 0
        %388 = OpCompositeExtract %6 %341 3
        %343 = OpCompositeConstruct %10 %388 %32 %213
        %394 = OpCompositeExtract %6 %343 1
         %33 = OpFMul %6 %31 %394
         %34 = OpConvertFToS %18 %33
         %37 = OpCompositeExtract %6 %23 1
         %38 = OpFMul %6 %37 %32
         %39 = OpConvertFToS %18 %38
         %48 = OpIMul %18 %39 %47
         %49 = OpIAdd %18 %34 %48
               OpBranch %53
         %53 = OpLabel
        %106 = OpPhi %18 %51 %5 %69 %54
        %104 = OpPhi %18 %19 %5 %72 %54
         %61 = OpSLessThan %60 %104 %49
               OpLoopMerge %55 %54 None
               OpBranchConditional %61 %54 %55
         %54 = OpLabel
         %64 = OpIMul %18 %62 %106
         %67 = OpISub %18 %65 %106
         %68 = OpIMul %18 %64 %67
         %69 = OpSDiv %18 %68 %65
         %72 = OpIAdd %18 %104 %71
               OpBranch %53
         %55 = OpLabel
         %98 = OpSMod %18 %106 %97
               OpStore %100 %95
        %102 = OpAccessChain %101 %100 %98
        %103 = OpLoad %10 %102
               OpStore %74 %103
               OpReturn
               OpFunctionEnd
END

# uniforms for variant

# resolution
BUFFER variant_resolution DATA_TYPE vec2<float> DATA
 256.0 256.0
END

BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM

PIPELINE graphics variant_pipeline
  ATTACH variant_vertex_shader
  ATTACH variant_fragment_shader
  FRAMEBUFFER_SIZE 256 256
  BIND BUFFER variant_framebuffer AS color LOCATION 0
  BIND BUFFER variant_resolution AS uniform DESCRIPTOR_SET 0 BINDING 0
END
CLEAR_COLOR variant_pipeline 0 0 0 255

CLEAR variant_pipeline
RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256

EXPECT reference_framebuffer EQ_HISTOGRAM_EMD_BUFFER variant_framebuffer TOLERANCE 0.005
