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 // Determines whether a certain driver bug exists in the current system. | 5 // Determines whether a certain driver bug exists in the current system. |
6 // The format of a valid gpu_driver_bug_list.json file is defined in | 6 // The format of a valid gpu_driver_bug_list.json file is defined in |
7 // <gpu/config/gpu_control_list_format.txt>. | 7 // <gpu/config/gpu_control_list_format.txt>. |
8 // The supported "features" can be found in | 8 // The supported "features" can be found in |
9 // <gpu/config/gpu_driver_bug_workaround_type.h>. | 9 // <gpu/config/gpu_driver_bug_workaround_type.h>. |
10 | 10 |
11 #include "gpu/config/gpu_control_list_jsons.h" | 11 #include "gpu/config/gpu_control_list_jsons.h" |
12 | 12 |
13 #define LONG_STRING_CONST(...) #__VA_ARGS__ | 13 #define LONG_STRING_CONST(...) #__VA_ARGS__ |
14 | 14 |
15 namespace gpu { | 15 namespace gpu { |
16 | 16 |
17 const char kGpuDriverBugListJson[] = LONG_STRING_CONST( | 17 const char kGpuDriverBugListJson[] = LONG_STRING_CONST( |
18 | 18 |
19 { | 19 { |
20 "name": "gpu driver bug list", | 20 "name": "gpu driver bug list", |
21 // Please update the version number whenever you change this file. | 21 // Please update the version number whenever you change this file. |
22 "version": "4.4", | 22 "version": "4.5", |
23 "entries": [ | 23 "entries": [ |
24 { | 24 { |
25 "id": 1, | 25 "id": 1, |
26 "description": "Imagination driver doesn't like uploading lots of buffer d
ata constantly", | 26 "description": "Imagination driver doesn't like uploading lots of buffer d
ata constantly", |
27 "os": { | 27 "os": { |
28 "type": "android" | 28 "type": "android" |
29 }, | 29 }, |
30 "gl_vendor": { | 30 "gl_vendor": { |
31 "op": "beginwith", | 31 "op": "beginwith", |
32 "value": "Imagination" | 32 "value": "Imagination" |
(...skipping 11 matching lines...) Expand all Loading... |
44 "gl_vendor": { | 44 "gl_vendor": { |
45 "op": "beginwith", | 45 "op": "beginwith", |
46 "value": "ARM" | 46 "value": "ARM" |
47 }, | 47 }, |
48 "features": [ | 48 "features": [ |
49 "use_client_side_arrays_for_stream_buffers" | 49 "use_client_side_arrays_for_stream_buffers" |
50 ] | 50 ] |
51 }, | 51 }, |
52 { | 52 { |
53 "id": 3, | 53 "id": 3, |
54 "description": "glGenerateMipmap leaks vram without setting texture filter
s on some drivers", | 54 "description": "glGenerateMipmap leaks vram without setting texture filter
s on some Mac drivers", |
| 55 "webkit_bugs": [48489], |
| 56 "cr_bugs": [349137], |
| 57 "os": { |
| 58 "type": "macosx", |
| 59 "version": { |
| 60 "op": "<", |
| 61 "value": "10.9" |
| 62 } |
| 63 }, |
55 "features": [ | 64 "features": [ |
56 "set_texture_filter_before_generating_mipmap" | 65 "set_texture_filter_before_generating_mipmap" |
57 ] | 66 ] |
58 }, | 67 }, |
59 { | 68 { |
60 "id": 4, | 69 "id": 4, |
61 "description": "glReadPixels incorrectly sets alpha to 0 on some drivers f
rom a drawing buffer without alpha channel", | 70 "description": "glReadPixels incorrectly sets alpha to 0 on some drivers f
rom a drawing buffer without alpha channel", |
| 71 "webkit_bugs": [33416], |
| 72 "cr_bugs": [349137], |
| 73 "os": { |
| 74 "type": "macosx", |
| 75 "version": { |
| 76 "op": "<", |
| 77 "value": "10.9" |
| 78 } |
| 79 }, |
62 "features": [ | 80 "features": [ |
63 "clear_alpha_in_readpixels" | 81 "clear_alpha_in_readpixels" |
64 ] | 82 ] |
65 }, | 83 }, |
66 { | 84 { |
67 "id": 5, | 85 "id": 5, |
68 "description": "Always call glUseProgram after a successful link to avoid
a driver bug", | 86 "description": "Always call glUseProgram after a successful link to avoid
a driver bug", |
| 87 "cr_bugs": [349137], |
69 "vendor_id": "0x10de", | 88 "vendor_id": "0x10de", |
| 89 "exceptions": [ |
| 90 { |
| 91 "os": { |
| 92 "type": "macosx", |
| 93 "version": { |
| 94 "op": ">=", |
| 95 "value": "10.9" |
| 96 } |
| 97 } |
| 98 } |
| 99 ], |
70 "features": [ | 100 "features": [ |
71 "use_current_program_after_successful_link" | 101 "use_current_program_after_successful_link" |
72 ] | 102 ] |
73 }, | 103 }, |
74 { | 104 { |
75 "id": 6, | 105 "id": 6, |
76 "description": "Restore scissor on FBO change with Qualcomm GPUs on older
versions of Android", | 106 "description": "Restore scissor on FBO change with Qualcomm GPUs on older
versions of Android", |
77 "cr_bugs": [165493, 222018], | 107 "cr_bugs": [165493, 222018], |
78 "os": { | 108 "os": { |
79 "type": "android", | 109 "type": "android", |
(...skipping 18 matching lines...) Expand all Loading... |
98 "type": "macosx" | 128 "type": "macosx" |
99 }, | 129 }, |
100 "vendor_id": "0x10de", | 130 "vendor_id": "0x10de", |
101 "features": [ | 131 "features": [ |
102 "needs_offscreen_buffer_workaround" | 132 "needs_offscreen_buffer_workaround" |
103 ] | 133 ] |
104 }, | 134 }, |
105 { | 135 { |
106 "id": 8, | 136 "id": 8, |
107 "description": "A few built-in glsl functions on Mac behave incorrectly", | 137 "description": "A few built-in glsl functions on Mac behave incorrectly", |
| 138 "cr_bugs": [349137], |
108 "os": { | 139 "os": { |
109 "type": "macosx" | 140 "type": "macosx", |
| 141 "version": { |
| 142 "op": "<", |
| 143 "value": "10.9" |
| 144 } |
110 }, | 145 }, |
111 "vendor_id": "0x1002", | 146 "vendor_id": "0x1002", |
112 "features": [ | 147 "features": [ |
113 "needs_glsl_built_in_function_emulation" | 148 "needs_glsl_built_in_function_emulation" |
114 ] | 149 ] |
115 }, | 150 }, |
116 { | 151 { |
117 "id": 9, | 152 "id": 9, |
118 "description": "AMD drivers get gl_PointCoord backward on OS X 10.8 or ear
lier", | 153 "description": "AMD drivers get gl_PointCoord backward on OS X 10.8 or ear
lier", |
119 "cr_bugs": [256349], | 154 "cr_bugs": [256349], |
(...skipping 572 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
692 "gl_vendor": { | 727 "gl_vendor": { |
693 "op": "beginwith", | 728 "op": "beginwith", |
694 "value": "Qualcomm" | 729 "value": "Qualcomm" |
695 }, | 730 }, |
696 "features": [ | 731 "features": [ |
697 "disable_multisampling" | 732 "disable_multisampling" |
698 ] | 733 ] |
699 }, | 734 }, |
700 { | 735 { |
701 "id": 54, | 736 "id": 54, |
702 "cr_bugs": [124764], | 737 "cr_bugs": [124764, 349137], |
703 "description": "Clear uniforms before first program use on all platforms", | 738 "description": "Clear uniforms before first program use on all platforms", |
| 739 "exceptions": [ |
| 740 { |
| 741 "os": { |
| 742 "type": "macosx", |
| 743 "version": { |
| 744 "op": ">=", |
| 745 "value": "10.9" |
| 746 } |
| 747 } |
| 748 } |
| 749 ], |
704 "features": [ | 750 "features": [ |
705 "clear_uniforms_before_first_program_use" | 751 "clear_uniforms_before_first_program_use" |
706 ] | 752 ] |
707 }, | 753 }, |
708 { | 754 { |
709 "id": 55, | 755 "id": 55, |
710 "cr_bugs": [333885], | 756 "cr_bugs": [333885], |
711 "description": "Mesa drivers in Linux handle varyings without static use i
ncorrectly", | 757 "description": "Mesa drivers in Linux handle varyings without static use i
ncorrectly", |
712 "os": { | 758 "os": { |
713 "type": "linux" | 759 "type": "linux" |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
770 "type": "linux" | 816 "type": "linux" |
771 }, | 817 }, |
772 "vendor_id": "0x8086", | 818 "vendor_id": "0x8086", |
773 "device_id": ["0x0152", "0x0156", "0x015a", "0x0162", "0x0166"], | 819 "device_id": ["0x0152", "0x0156", "0x015a", "0x0162", "0x0166"], |
774 "features": [ | 820 "features": [ |
775 "disable_multisampling" | 821 "disable_multisampling" |
776 ] | 822 ] |
777 }, | 823 }, |
778 { | 824 { |
779 "id": 60, | 825 "id": 60, |
780 "description": "Multisampling is buggy on Mac with NVIDIA gpu prior to 10.
8.3", | 826 "description": "Multisampling is buggy on Mac OS X prior to 10.8.3", |
781 "cr_bugs": [137303], | 827 "cr_bugs": [137303, 162466], |
782 "os": { | 828 "os": { |
783 "type": "macosx", | 829 "type": "macosx", |
784 "version": { | 830 "version": { |
785 "op": "<", | 831 "op": "<", |
786 "value": "10.8.3" | 832 "value": "10.8.3" |
787 } | 833 } |
788 }, | 834 }, |
789 "vendor_id": "0x10de", | |
790 "features": [ | |
791 "disable_multisampling" | |
792 ] | |
793 }, | |
794 { | |
795 "id": 61, | |
796 "description": "Multisampling is buggy on Mac with Intel gpu prior to 10.8
.3", | |
797 "cr_bugs": [137303], | |
798 "os": { | |
799 "type": "macosx", | |
800 "version": { | |
801 "op": "<", | |
802 "value": "10.8.3" | |
803 } | |
804 }, | |
805 "vendor_id": "0x8086", | |
806 "features": [ | |
807 "disable_multisampling" | |
808 ] | |
809 }, | |
810 { | |
811 "id": 62, | |
812 "description": "Multisampling is buggy on Mac with AMD gpu prior to 10.8.3
", | |
813 "cr_bugs": [162466], | |
814 "os": { | |
815 "type": "macosx", | |
816 "version": { | |
817 "op": "<", | |
818 "value": "10.8.3" | |
819 } | |
820 }, | |
821 "vendor_id": "0x1002", | |
822 "features": [ | 835 "features": [ |
823 "disable_multisampling" | 836 "disable_multisampling" |
824 ] | 837 ] |
825 }, | 838 }, |
826 { | 839 { |
827 "id": 63, | 840 "id": 63, |
828 "description": "Shaders with sampler arrays indexing for-loop indices caus
e the GLSL compiler to crash on OS X", | 841 "description": "Shaders with sampler arrays indexing for-loop indices caus
e the GLSL compiler to crash on OS X", |
829 "cr_bugs": [348198], | 842 "cr_bugs": [348198, 349137], |
830 "os": { | 843 "os": { |
831 "type": "macosx" | 844 "type": "macosx", |
| 845 "version": { |
| 846 "op": "<", |
| 847 "value": "10.9" |
| 848 } |
832 }, | 849 }, |
833 "features": [ | 850 "features": [ |
834 "unroll_for_loop_with_sampler_array_index" | 851 "unroll_for_loop_with_sampler_array_index" |
835 ] | 852 ] |
836 }, | 853 }, |
837 { | 854 { |
838 "id": 64, | 855 "id": 64, |
839 "description": "Linux AMD drivers incorrectly return initial value of 1 fo
r TEXTURE_MAX_ANISOTROPY", | 856 "description": "Linux AMD drivers incorrectly return initial value of 1 fo
r TEXTURE_MAX_ANISOTROPY", |
840 "cr_bugs": [348237], | 857 "cr_bugs": [348237], |
841 "os": { | 858 "os": { |
842 "type": "linux" | 859 "type": "linux" |
843 }, | 860 }, |
844 "vendor_id": "0x1002", | 861 "vendor_id": "0x1002", |
845 "features": [ | 862 "features": [ |
846 "init_texture_max_anisotropy" | 863 "init_texture_max_anisotropy" |
847 ] | 864 ] |
848 } | 865 } |
849 ] | 866 ] |
850 } | 867 } |
851 | 868 |
852 ); // LONG_STRING_CONST macro | 869 ); // LONG_STRING_CONST macro |
853 | 870 |
854 } // namespace gpu | 871 } // namespace gpu |
OLD | NEW |