1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
gpu / command_buffer / service / disk_cache_proto.proto [blame]
syntax = "proto2";
option optimize_for = LITE_RUNTIME;
message ShaderVariableProto {
optional uint32 type = 1;
optional uint32 precision = 2;
optional string name = 3;
optional string mapped_name = 4;
optional uint32 array_size = 5;
optional bool static_use = 6;
repeated ShaderVariableProto fields = 7;
optional string struct_name = 8;
}
message ShaderAttributeProto {
optional ShaderVariableProto basic = 1;
optional int32 location = 2;
}
message ShaderUniformProto {
optional ShaderVariableProto basic = 1;
}
message ShaderVaryingProto {
optional ShaderVariableProto basic = 1;
optional int32 interpolation = 2;
optional bool is_invariant = 3;
}
message ShaderOutputVariableProto {
optional ShaderVariableProto basic = 1;
optional int32 location = 2;
}
message ShaderInterfaceBlockFieldProto {
optional ShaderVariableProto basic = 1;
optional bool is_row_major_layout = 2;
}
message ShaderInterfaceBlockProto {
optional string name = 1;
optional string mapped_name = 2;
optional string instance_name = 3;
optional uint32 array_size = 4;
optional int32 layout = 5;
optional bool is_row_major_layout = 6;
optional bool static_use = 7;
repeated ShaderInterfaceBlockFieldProto fields = 8;
}
message ShaderProto {
optional bytes sha = 1;
repeated ShaderAttributeProto attribs = 2;
repeated ShaderUniformProto uniforms = 3;
repeated ShaderVaryingProto varyings = 4;
repeated ShaderOutputVariableProto output_variables = 5;
repeated ShaderInterfaceBlockProto interface_blocks = 6;
}
message GpuProgramProto {
optional bytes sha = 1;
optional uint32 format = 2;
optional bytes program = 3;
optional bool program_is_compressed = 6;
optional uint32 program_decompressed_length = 7;
optional ShaderProto vertex_shader = 4;
optional ShaderProto fragment_shader = 5;
}