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