mirror of
https://github.com/gfx-rs/wgpu.git
synced 2024-11-27 01:03:41 +00:00
214 lines
4.8 KiB
Plaintext
214 lines
4.8 KiB
Plaintext
; SPIR-V
|
|
; Version: 1.1
|
|
; Generator: rspirv
|
|
; Bound: 94
|
|
OpCapability Shader
|
|
%1 = OpExtInstImport "GLSL.std.450"
|
|
OpMemoryModel Logical GLSL450
|
|
OpEntryPoint Vertex %21 "vs_main" %12 %15 %17 %19
|
|
OpEntryPoint Fragment %49 "fs_main" %43 %46 %48
|
|
OpExecutionMode %49 OriginUpperLeft
|
|
%3 = OpString "debug-symbol-simple.wgsl"
|
|
OpSource Unknown 0 %3 "struct VertexInput {
|
|
@location(0) position: vec3<f32>,
|
|
@location(1) color: vec3<f32>,
|
|
};
|
|
|
|
struct VertexOutput {
|
|
@builtin(position) clip_position: vec4<f32>,
|
|
@location(0) color: vec3<f32>,
|
|
};
|
|
|
|
@vertex
|
|
fn vs_main(
|
|
model: VertexInput,
|
|
) -> VertexOutput {
|
|
var out: VertexOutput;
|
|
out.color = model.color;
|
|
out.clip_position = vec4<f32>(model.position, 1.0);
|
|
return out;
|
|
}
|
|
|
|
// Fragment shader
|
|
|
|
@fragment
|
|
fn fs_main(in: VertexOutput) -> @location(0) vec4<f32> {
|
|
var color = in.color;
|
|
for (var i = 0; i < 10; i += 1) {
|
|
var ii = f32(i);
|
|
color.x += ii*0.001;
|
|
color.y += ii*0.002;
|
|
}
|
|
|
|
return vec4<f32>(color, 1.0);
|
|
}"
|
|
OpMemberName %6 0 "position"
|
|
OpMemberName %6 1 "color"
|
|
OpName %6 "VertexInput"
|
|
OpMemberName %8 0 "clip_position"
|
|
OpMemberName %8 1 "color"
|
|
OpName %8 "VertexOutput"
|
|
OpName %12 "position"
|
|
OpName %15 "color"
|
|
OpName %17 "clip_position"
|
|
OpName %19 "color"
|
|
OpName %21 "vs_main"
|
|
OpName %24 "out"
|
|
OpName %43 "clip_position"
|
|
OpName %46 "color"
|
|
OpName %49 "fs_main"
|
|
OpName %55 "color"
|
|
OpName %57 "i"
|
|
OpName %59 "ii"
|
|
OpMemberDecorate %6 0 Offset 0
|
|
OpMemberDecorate %6 1 Offset 16
|
|
OpMemberDecorate %8 0 Offset 0
|
|
OpMemberDecorate %8 1 Offset 16
|
|
OpDecorate %12 Location 0
|
|
OpDecorate %15 Location 1
|
|
OpDecorate %17 BuiltIn Position
|
|
OpDecorate %19 Location 0
|
|
OpDecorate %43 BuiltIn FragCoord
|
|
OpDecorate %46 Location 0
|
|
OpDecorate %48 Location 0
|
|
%2 = OpTypeVoid
|
|
%5 = OpTypeFloat 32
|
|
%4 = OpTypeVector %5 3
|
|
%6 = OpTypeStruct %4 %4
|
|
%7 = OpTypeVector %5 4
|
|
%8 = OpTypeStruct %7 %4
|
|
%9 = OpTypeInt 32 1
|
|
%13 = OpTypePointer Input %4
|
|
%12 = OpVariable %13 Input
|
|
%15 = OpVariable %13 Input
|
|
%18 = OpTypePointer Output %7
|
|
%17 = OpVariable %18 Output
|
|
%20 = OpTypePointer Output %4
|
|
%19 = OpVariable %20 Output
|
|
%22 = OpTypeFunction %2
|
|
%23 = OpConstant %5 1.0
|
|
%25 = OpTypePointer Function %8
|
|
%26 = OpConstantNull %8
|
|
%28 = OpTypePointer Function %4
|
|
%31 = OpTypeInt 32 0
|
|
%30 = OpConstant %31 1
|
|
%33 = OpTypePointer Function %7
|
|
%36 = OpConstant %31 0
|
|
%44 = OpTypePointer Input %7
|
|
%43 = OpVariable %44 Input
|
|
%46 = OpVariable %13 Input
|
|
%48 = OpVariable %18 Output
|
|
%50 = OpConstant %9 0
|
|
%51 = OpConstant %9 10
|
|
%52 = OpConstant %5 0.001
|
|
%53 = OpConstant %5 0.002
|
|
%54 = OpConstant %9 1
|
|
%56 = OpConstantNull %4
|
|
%58 = OpTypePointer Function %9
|
|
%60 = OpTypePointer Function %5
|
|
%61 = OpConstantNull %5
|
|
%69 = OpTypeBool
|
|
%77 = OpTypePointer Function %5
|
|
%21 = OpFunction %2 None %22
|
|
%10 = OpLabel
|
|
%24 = OpVariable %25 Function %26
|
|
%14 = OpLoad %4 %12
|
|
%16 = OpLoad %4 %15
|
|
%11 = OpCompositeConstruct %6 %14 %16
|
|
OpBranch %27
|
|
%27 = OpLabel
|
|
OpLine %3 16 5
|
|
%29 = OpCompositeExtract %4 %11 1
|
|
OpLine %3 16 5
|
|
%32 = OpAccessChain %28 %24 %30
|
|
OpStore %32 %29
|
|
OpLine %3 17 5
|
|
%34 = OpCompositeExtract %4 %11 0
|
|
OpLine %3 17 25
|
|
%35 = OpCompositeConstruct %7 %34 %23
|
|
OpLine %3 17 5
|
|
%37 = OpAccessChain %33 %24 %36
|
|
OpStore %37 %35
|
|
OpLine %3 1 1
|
|
%38 = OpLoad %8 %24
|
|
%39 = OpCompositeExtract %7 %38 0
|
|
OpStore %17 %39
|
|
%40 = OpCompositeExtract %4 %38 1
|
|
OpStore %19 %40
|
|
OpReturn
|
|
OpFunctionEnd
|
|
%49 = OpFunction %2 None %22
|
|
%41 = OpLabel
|
|
%55 = OpVariable %28 Function %56
|
|
%57 = OpVariable %58 Function %50
|
|
%59 = OpVariable %60 Function %61
|
|
%45 = OpLoad %7 %43
|
|
%47 = OpLoad %4 %46
|
|
%42 = OpCompositeConstruct %8 %45 %47
|
|
OpBranch %62
|
|
%62 = OpLabel
|
|
OpLine %3 25 17
|
|
%63 = OpCompositeExtract %4 %42 1
|
|
OpLine %3 25 5
|
|
OpStore %55 %63
|
|
OpBranch %64
|
|
%64 = OpLabel
|
|
OpLine %3 26 5
|
|
OpLoopMerge %65 %67 None
|
|
OpBranch %66
|
|
%66 = OpLabel
|
|
OpLine %3 1 1
|
|
%68 = OpLoad %9 %57
|
|
OpLine %3 26 21
|
|
%70 = OpSLessThan %69 %68 %51
|
|
OpLine %3 26 20
|
|
OpSelectionMerge %71 None
|
|
OpBranchConditional %70 %71 %72
|
|
%72 = OpLabel
|
|
OpBranch %65
|
|
%71 = OpLabel
|
|
OpBranch %73
|
|
%73 = OpLabel
|
|
OpLine %3 27 18
|
|
%75 = OpLoad %9 %57
|
|
%76 = OpConvertSToF %5 %75
|
|
OpLine %3 27 9
|
|
OpStore %59 %76
|
|
OpLine %3 28 9
|
|
%78 = OpLoad %5 %59
|
|
OpLine %3 28 9
|
|
%79 = OpFMul %5 %78 %52
|
|
%80 = OpAccessChain %77 %55 %36
|
|
%81 = OpLoad %5 %80
|
|
%82 = OpFAdd %5 %81 %79
|
|
OpLine %3 28 9
|
|
%83 = OpAccessChain %77 %55 %36
|
|
OpStore %83 %82
|
|
OpLine %3 29 9
|
|
%84 = OpLoad %5 %59
|
|
OpLine %3 29 9
|
|
%85 = OpFMul %5 %84 %53
|
|
%86 = OpAccessChain %77 %55 %30
|
|
%87 = OpLoad %5 %86
|
|
%88 = OpFAdd %5 %87 %85
|
|
OpLine %3 29 9
|
|
%89 = OpAccessChain %77 %55 %30
|
|
OpStore %89 %88
|
|
OpBranch %74
|
|
%74 = OpLabel
|
|
OpBranch %67
|
|
%67 = OpLabel
|
|
OpLine %3 26 29
|
|
%90 = OpLoad %9 %57
|
|
%91 = OpIAdd %9 %90 %54
|
|
OpLine %3 26 29
|
|
OpStore %57 %91
|
|
OpBranch %64
|
|
%65 = OpLabel
|
|
OpLine %3 1 1
|
|
%92 = OpLoad %4 %55
|
|
OpLine %3 32 12
|
|
%93 = OpCompositeConstruct %7 %92 %23
|
|
OpStore %48 %93
|
|
OpReturn
|
|
OpFunctionEnd |