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/string_util.h" | 10 #include "base/string_util.h" |
(...skipping 572 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
583 } | 583 } |
584 | 584 |
585 if (extensions.Contains("GL_ANGLE_instanced_arrays") || | 585 if (extensions.Contains("GL_ANGLE_instanced_arrays") || |
586 (extensions.Contains("GL_ARB_instanced_arrays") && | 586 (extensions.Contains("GL_ARB_instanced_arrays") && |
587 extensions.Contains("GL_ARB_draw_instanced"))) { | 587 extensions.Contains("GL_ARB_draw_instanced"))) { |
588 AddExtensionString("GL_ANGLE_instanced_arrays"); | 588 AddExtensionString("GL_ANGLE_instanced_arrays"); |
589 feature_flags_.angle_instanced_arrays = true; | 589 feature_flags_.angle_instanced_arrays = true; |
590 validators_.vertex_attribute.AddValue(GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE); | 590 validators_.vertex_attribute.AddValue(GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE); |
591 } | 591 } |
592 | 592 |
593 if (extensions.Contains("GL_ARB_draw_buffers")) { | 593 if (!workarounds_.disable_ext_draw_buffers && |
| 594 (extensions.Contains("GL_ARB_draw_buffers") || |
| 595 extensions.Contains("GL_EXT_draw_buffers"))) { |
594 AddExtensionString("GL_EXT_draw_buffers"); | 596 AddExtensionString("GL_EXT_draw_buffers"); |
595 feature_flags_.ext_draw_buffers = true; | 597 feature_flags_.ext_draw_buffers = true; |
596 | 598 |
597 GLint max_color_attachments = 0; | 599 GLint max_color_attachments = 0; |
598 glGetIntegerv(GL_MAX_COLOR_ATTACHMENTS_EXT, &max_color_attachments); | 600 glGetIntegerv(GL_MAX_COLOR_ATTACHMENTS_EXT, &max_color_attachments); |
599 for (GLenum i = GL_COLOR_ATTACHMENT1_EXT; | 601 for (GLenum i = GL_COLOR_ATTACHMENT1_EXT; |
600 i < static_cast<GLenum>(GL_COLOR_ATTACHMENT0 + max_color_attachments); | 602 i < static_cast<GLenum>(GL_COLOR_ATTACHMENT0 + max_color_attachments); |
601 ++i) { | 603 ++i) { |
602 validators_.attachment.AddValue(i); | 604 validators_.attachment.AddValue(i); |
603 } | 605 } |
(...skipping 30 matching lines...) Expand all Loading... |
634 if (extensions_.find(str) == std::string::npos) { | 636 if (extensions_.find(str) == std::string::npos) { |
635 extensions_ += (extensions_.empty() ? "" : " ") + str; | 637 extensions_ += (extensions_.empty() ? "" : " ") + str; |
636 } | 638 } |
637 } | 639 } |
638 | 640 |
639 FeatureInfo::~FeatureInfo() { | 641 FeatureInfo::~FeatureInfo() { |
640 } | 642 } |
641 | 643 |
642 } // namespace gles2 | 644 } // namespace gles2 |
643 } // namespace gpu | 645 } // namespace gpu |
OLD | NEW |