OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 #include "gpu/command_buffer/service/feature_info.h" | 5 #include "gpu/command_buffer/service/feature_info.h" |
6 | 6 |
7 #include <set> | 7 #include <set> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/macros.h" | 10 #include "base/macros.h" |
(...skipping 955 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
966 // DiscardFramebufferEXT is automatically bound to InvalidateFramebuffer. | 966 // DiscardFramebufferEXT is automatically bound to InvalidateFramebuffer. |
967 AddExtensionString("GL_EXT_discard_framebuffer"); | 967 AddExtensionString("GL_EXT_discard_framebuffer"); |
968 feature_flags_.ext_discard_framebuffer = true; | 968 feature_flags_.ext_discard_framebuffer = true; |
969 } | 969 } |
970 | 970 |
971 if (ui_gl_fence_works) { | 971 if (ui_gl_fence_works) { |
972 AddExtensionString("GL_CHROMIUM_sync_query"); | 972 AddExtensionString("GL_CHROMIUM_sync_query"); |
973 feature_flags_.chromium_sync_query = true; | 973 feature_flags_.chromium_sync_query = true; |
974 } | 974 } |
975 | 975 |
976 bool blend_equation_advanced_coherent = | 976 if (!workarounds_.disable_blend_equation_advanced) { |
977 extensions.Contains("GL_NV_blend_equation_advanced_coherent") || | 977 bool blend_equation_advanced_coherent = |
978 extensions.Contains("GL_KHR_blend_equation_advanced_coherent"); | 978 extensions.Contains("GL_NV_blend_equation_advanced_coherent") || |
| 979 extensions.Contains("GL_KHR_blend_equation_advanced_coherent"); |
979 | 980 |
980 if (blend_equation_advanced_coherent || | 981 if (blend_equation_advanced_coherent || |
981 extensions.Contains("GL_NV_blend_equation_advanced") || | 982 extensions.Contains("GL_NV_blend_equation_advanced") || |
982 extensions.Contains("GL_KHR_blend_equation_advanced")) { | 983 extensions.Contains("GL_KHR_blend_equation_advanced")) { |
983 const GLenum equations[] = {GL_MULTIPLY_KHR, | 984 const GLenum equations[] = {GL_MULTIPLY_KHR, |
984 GL_SCREEN_KHR, | 985 GL_SCREEN_KHR, |
985 GL_OVERLAY_KHR, | 986 GL_OVERLAY_KHR, |
986 GL_DARKEN_KHR, | 987 GL_DARKEN_KHR, |
987 GL_LIGHTEN_KHR, | 988 GL_LIGHTEN_KHR, |
988 GL_COLORDODGE_KHR, | 989 GL_COLORDODGE_KHR, |
989 GL_COLORBURN_KHR, | 990 GL_COLORBURN_KHR, |
990 GL_HARDLIGHT_KHR, | 991 GL_HARDLIGHT_KHR, |
991 GL_SOFTLIGHT_KHR, | 992 GL_SOFTLIGHT_KHR, |
992 GL_DIFFERENCE_KHR, | 993 GL_DIFFERENCE_KHR, |
993 GL_EXCLUSION_KHR, | 994 GL_EXCLUSION_KHR, |
994 GL_HSL_HUE_KHR, | 995 GL_HSL_HUE_KHR, |
995 GL_HSL_SATURATION_KHR, | 996 GL_HSL_SATURATION_KHR, |
996 GL_HSL_COLOR_KHR, | 997 GL_HSL_COLOR_KHR, |
997 GL_HSL_LUMINOSITY_KHR}; | 998 GL_HSL_LUMINOSITY_KHR}; |
998 | 999 |
999 for (GLenum equation : equations) | 1000 for (GLenum equation : equations) |
1000 validators_.equation.AddValue(equation); | 1001 validators_.equation.AddValue(equation); |
1001 if (blend_equation_advanced_coherent) | 1002 if (blend_equation_advanced_coherent) |
1002 AddExtensionString("GL_KHR_blend_equation_advanced_coherent"); | 1003 AddExtensionString("GL_KHR_blend_equation_advanced_coherent"); |
1003 | 1004 |
1004 AddExtensionString("GL_KHR_blend_equation_advanced"); | 1005 AddExtensionString("GL_KHR_blend_equation_advanced"); |
1005 feature_flags_.blend_equation_advanced = true; | 1006 feature_flags_.blend_equation_advanced = true; |
1006 feature_flags_.blend_equation_advanced_coherent = | 1007 feature_flags_.blend_equation_advanced_coherent = |
1007 blend_equation_advanced_coherent; | 1008 blend_equation_advanced_coherent; |
| 1009 } |
1008 } | 1010 } |
1009 | 1011 |
1010 if (extensions.Contains("GL_NV_path_rendering")) { | 1012 if (extensions.Contains("GL_NV_path_rendering")) { |
1011 if (extensions.Contains("GL_EXT_direct_state_access") || | 1013 if (extensions.Contains("GL_EXT_direct_state_access") || |
1012 gl_version_info_->is_es3) { | 1014 gl_version_info_->is_es3) { |
1013 AddExtensionString("GL_CHROMIUM_path_rendering"); | 1015 AddExtensionString("GL_CHROMIUM_path_rendering"); |
1014 feature_flags_.chromium_path_rendering = true; | 1016 feature_flags_.chromium_path_rendering = true; |
1015 validators_.g_l_state.AddValue(GL_PATH_MODELVIEW_MATRIX_CHROMIUM); | 1017 validators_.g_l_state.AddValue(GL_PATH_MODELVIEW_MATRIX_CHROMIUM); |
1016 validators_.g_l_state.AddValue(GL_PATH_PROJECTION_MATRIX_CHROMIUM); | 1018 validators_.g_l_state.AddValue(GL_PATH_PROJECTION_MATRIX_CHROMIUM); |
1017 } | 1019 } |
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1136 if (pos == std::string::npos) { | 1138 if (pos == std::string::npos) { |
1137 extensions_ += (extensions_.empty() ? "" : " ") + str; | 1139 extensions_ += (extensions_.empty() ? "" : " ") + str; |
1138 } | 1140 } |
1139 } | 1141 } |
1140 | 1142 |
1141 FeatureInfo::~FeatureInfo() { | 1143 FeatureInfo::~FeatureInfo() { |
1142 } | 1144 } |
1143 | 1145 |
1144 } // namespace gles2 | 1146 } // namespace gles2 |
1145 } // namespace gpu | 1147 } // namespace gpu |
OLD | NEW |