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;
}