OLD | NEW |
---|---|
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // A valid gpu control list json file is in the format of | 5 // A valid gpu control list json file is in the format of |
6 // { | 6 // { |
7 // "version": "x.y", | 7 // "version": "x.y", |
8 // "entries": [ | 8 // "entries": [ |
9 // { // entry 1 | 9 // { // entry 1 |
10 // }, | 10 // }, |
(...skipping 14 matching lines...) Expand all Loading... | |
25 // 4. "device_id" is an array of strings. 0 is reserved. | 25 // 4. "device_id" is an array of strings. 0 is reserved. |
26 // 5. "multi_gpu_style" is a string, valid values include: | 26 // 5. "multi_gpu_style" is a string, valid values include: |
27 // a) "optimus": NVIDIA dual GPU | 27 // a) "optimus": NVIDIA dual GPU |
28 // b) "amd_switchable": AMD dual GPU | 28 // b) "amd_switchable": AMD dual GPU |
29 // c) "amd_switchable_integrated": AMD dual GPU, integrated GPU is active | 29 // c) "amd_switchable_integrated": AMD dual GPU, integrated GPU is active |
30 // d) "amd_switchable_discrete": AMD dual GPU, discrete GPU is active | 30 // d) "amd_switchable_discrete": AMD dual GPU, discrete GPU is active |
31 // c) and d) are only valid on Win, as on Mac we can switch GPU on the fly. | 31 // c) and d) are only valid on Win, as on Mac we can switch GPU on the fly. |
32 // 6. "multi_gpu_category" is a string, valid values include "any", "primary", | 32 // 6. "multi_gpu_category" is a string, valid values include "any", "primary", |
33 // "secondary", and "active". If unspecified, the default value is "primary". | 33 // "secondary", and "active". If unspecified, the default value is "primary". |
34 // See gpu_control_list.h for more details on the meanings of the strings. | 34 // See gpu_control_list.h for more details on the meanings of the strings. |
35 // 7. "driver_vendor" is a STRING structure (defined below). | 35 // 7. "driver_vendor" is a string pattern. |
36 // 8. "driver_version" is a VERSION structure (defined below). | 36 // 8. "driver_version" is a VERSION structure (defined below). |
37 // 9. "driver_date" is a VERSION structure (defined below). | 37 // 9. "driver_date" is a VERSION structure (defined below). |
38 // The version is interpreted as "year.month.day". | 38 // The version is interpreted as "year.month.day". |
39 // 10. "gl_type" is a string, valid values include "gl", "gles", and "angle". | 39 // 10. "gl_type" is a string, valid values include "gl", "gles", and "angle". |
40 // If "gl_version" is specified and "gl_type" is not, use the default value. | 40 // If "gl_version" is specified and "gl_type" is not, use the default value. |
41 // The default value on Android is "gles", on Windows is "angle", on other | 41 // The default value on Android is "gles", on Windows is "angle", on other |
42 // platforms is "gl". | 42 // platforms is "gl". |
43 // 11. "gl_version" is a VERSION structure (defined below). | 43 // 11. "gl_version" is a VERSION structure (defined below). |
44 // 12. "gl_vendor" is a STRING structure (defined below). | 44 // 12. "gl_vendor" is a string pattern. |
45 // 13. "gl_renderer" is a STRING structure (defined below). | 45 // 13. "gl_renderer" is a string pattern. |
46 // 14. "gl_extensions" is a STRING structure (defined below). | 46 // 14. "gl_extensions" is a string pattern. |
47 // 15. "perf_graphics" is a FLOAT structure (defined below). | 47 // 15. "perf_graphics" is a FLOAT structure (defined below). |
48 // 16. "perf_gaming" is a FLOAT structure (defined below). | 48 // 16. "perf_gaming" is a FLOAT structure (defined below). |
49 // 17. "perf_overall" is a FLOAT structure (defined below). | 49 // 17. "perf_overall" is a FLOAT structure (defined below). |
50 // 18. "machine_model_name" is an array of strings. The strings can contain | 50 // 18. "machine_model_name" is an array of string patterns. |
51 // any characters. | |
52 // 19. "machine_model_version" is a VERSION structure (defined below). | 51 // 19. "machine_model_version" is a VERSION structure (defined below). |
53 // 20. "gpu_count" is a INT structure (defined below). | 52 // 20. "gpu_count" is a INT structure (defined below). |
54 // 21 "cpu_info" is a STRING structure (defined below). | 53 // 21 "cpu_info" is a string pattern. |
55 // 22. "exceptions" is a list of entries. | 54 // 22. "exceptions" is a list of entries. |
56 // 23. "features" is a list of gpu control list options, which can be | 55 // 23. "features" is a list of gpu control list options, which can be |
57 // configured by a specific list. See its *_json.cc file for a list of | 56 // configured by a specific list. See its *_json.cc file for a list of |
58 // supported features. This field is mandatory. | 57 // supported features. This field is mandatory. |
59 // 24. "description" has the description of the entry. | 58 // 24. "description" has the description of the entry. |
60 // 25. "webkit_bugs" is an array of associated webkit bug numbers. | 59 // 25. "webkit_bugs" is an array of associated webkit bug numbers. |
61 // 26. "cr_bugs" is an array of associated webkit bug numbers. | 60 // 26. "cr_bugs" is an array of associated webkit bug numbers. |
62 // 27. "disabled" is a boolean. If it is present, the entry will be skipped. | 61 // 27. "disabled" is a boolean. If it is present, the entry will be skipped. |
63 // This can not be used in exceptions. | 62 // This can not be used in exceptions. |
64 // 28. "direct_rendering" is a boolean. If present, this will filter on whether | 63 // 28. "direct_rendering" is a boolean. If present, this will filter on whether |
65 // the GL contexts are direct or indirect based on the value. | 64 // the GL contexts are direct or indirect based on the value. |
66 // | 65 // |
67 // VERSION includes "op", "style", "value", and "value2". "op" can be any of | 66 // VERSION includes "op", "style", "value", and "value2". "op" can be any of |
68 // the following values: "=", "<", "<=", ">", ">=", "any", "between". "style" | 67 // the following values: "=", "<", "<=", ">", ">=", "any", "between". "style" |
69 // is optional and can be "lexical" or "numerical"; if it's not specified, it | 68 // is optional and can be "lexical" or "numerical"; if it's not specified, it |
70 // defaults to "numerical". "value2" is only used if "op" is "between". | 69 // defaults to "numerical". "value2" is only used if "op" is "between". |
71 // "between" is "value <= * <= value2". | 70 // "between" is "value <= * <= value2". |
72 // "value" is used for all "op" values except "any". "value" and "value2" | 71 // "value" is used for all "op" values except "any". "value" and "value2" |
73 // are in the format of x, x.x, x.x.x, etc. | 72 // are in the format of x, x.x, x.x.x, etc. |
74 // Only "driver_version" supports lexical style if the format is major.minor; | 73 // Only "driver_version" supports lexical style if the format is major.minor; |
75 // in that case, major is still numerical, but minor is lexical. | 74 // in that case, major is still numerical, but minor is lexical. |
76 // | 75 // |
77 // STRING includes "op" and "value". "op" can be any of the following values: | |
78 // "contains", "beginwith", "endwith", "=". "value" is a string. | |
79 // | |
80 // FLOAT includes "op" "value", and "value2". "op" can be any of the | 76 // FLOAT includes "op" "value", and "value2". "op" can be any of the |
81 // following values: "=", "<", "<=", ">", ">=", "any", "between". "value2" is | 77 // following values: "=", "<", "<=", ">", ">=", "any", "between". "value2" is |
82 // only used if "op" is "between". "value" is used for all "op" values except | 78 // only used if "op" is "between". "value" is used for all "op" values except |
83 // "any". "value" and "value2" are valid float numbers. | 79 // "any". "value" and "value2" are valid float numbers. |
84 // INT is very much like FLOAT, except that the values need to be integers. | 80 // INT is very much like FLOAT, except that the values need to be integers. |
85 | 81 // |
82 // String pattern syntax can be found at | |
83 // https://code.google.com/p/re2/wiki/Syntax. | |
Ken Russell (switch to Gerrit)
2014/08/09 00:57:02
As mentioned above, a tighter definition of how th
Zhenyao Mo
2014/08/09 01:23:59
I think allow the full power of RE is a better opt
| |
OLD | NEW |