Chromium Code Reviews| 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 377 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 388 | 388 |
| 389 if (extensions.Contains("GL_OES_element_index_uint") || | 389 if (extensions.Contains("GL_OES_element_index_uint") || |
| 390 gfx::HasDesktopGLFeatures()) { | 390 gfx::HasDesktopGLFeatures()) { |
| 391 AddExtensionString("GL_OES_element_index_uint"); | 391 AddExtensionString("GL_OES_element_index_uint"); |
| 392 validators_.index_type.AddValue(GL_UNSIGNED_INT); | 392 validators_.index_type.AddValue(GL_UNSIGNED_INT); |
| 393 } | 393 } |
| 394 | 394 |
| 395 bool enable_texture_format_bgra8888 = false; | 395 bool enable_texture_format_bgra8888 = false; |
| 396 bool enable_read_format_bgra = false; | 396 bool enable_read_format_bgra = false; |
| 397 bool enable_render_buffer_bgra = false; | 397 bool enable_render_buffer_bgra = false; |
| 398 bool enable_immutable_texture_format_bgra = | |
| 399 extensions.Contains("GL_APPLE_texture_format_BGRA8888"); | |
| 398 | 400 |
| 399 // Check if we should allow GL_EXT_texture_format_BGRA8888 | 401 // Check if we should allow GL_EXT_texture_format_BGRA8888 |
| 400 if (extensions.Contains("GL_EXT_texture_format_BGRA8888") || | 402 if (extensions.Contains("GL_EXT_texture_format_BGRA8888") || |
| 401 extensions.Contains("GL_APPLE_texture_format_BGRA8888") || | 403 enable_immutable_texture_format_bgra || |
| 402 extensions.Contains("GL_EXT_bgra")) { | 404 extensions.Contains("GL_EXT_bgra")) { |
| 403 enable_texture_format_bgra8888 = true; | 405 enable_texture_format_bgra8888 = true; |
| 404 } | 406 } |
| 405 | 407 |
| 406 if (extensions.Contains("GL_EXT_bgra")) { | 408 if (extensions.Contains("GL_EXT_bgra")) { |
| 407 enable_render_buffer_bgra = true; | 409 enable_render_buffer_bgra = true; |
| 408 } | 410 } |
| 409 | 411 |
| 410 if (extensions.Contains("GL_EXT_read_format_bgra") || | 412 if (extensions.Contains("GL_EXT_read_format_bgra") || |
| 411 extensions.Contains("GL_EXT_bgra")) { | 413 extensions.Contains("GL_EXT_bgra")) { |
| (...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 684 validators_.pixel_store.AddValue(GL_PACK_REVERSE_ROW_ORDER_ANGLE); | 686 validators_.pixel_store.AddValue(GL_PACK_REVERSE_ROW_ORDER_ANGLE); |
| 685 validators_.g_l_state.AddValue(GL_PACK_REVERSE_ROW_ORDER_ANGLE); | 687 validators_.g_l_state.AddValue(GL_PACK_REVERSE_ROW_ORDER_ANGLE); |
| 686 } | 688 } |
| 687 | 689 |
| 688 if (extensions.Contains("GL_ANGLE_texture_usage")) { | 690 if (extensions.Contains("GL_ANGLE_texture_usage")) { |
| 689 feature_flags_.angle_texture_usage = true; | 691 feature_flags_.angle_texture_usage = true; |
| 690 AddExtensionString("GL_ANGLE_texture_usage"); | 692 AddExtensionString("GL_ANGLE_texture_usage"); |
| 691 validators_.texture_parameter.AddValue(GL_TEXTURE_USAGE_ANGLE); | 693 validators_.texture_parameter.AddValue(GL_TEXTURE_USAGE_ANGLE); |
| 692 } | 694 } |
| 693 | 695 |
| 694 if (extensions.Contains("GL_EXT_texture_storage")) { | 696 // Only APPLE_texture_format_BGRA8888 extension allows BGRA8_EXT in ES3's |
| 697 // glTexStorage2D. | |
| 698 enable_immutable_texture_format_bgra &= is_es3; | |
|
piman
2014/08/26 19:06:29
nit: modifying this variable is hard to follow. Ho
| |
| 699 if (extensions.Contains("GL_EXT_texture_storage") || | |
| 700 extensions.Contains("GL_ARB_texture_storage") || | |
|
piman
2014/08/26 19:06:29
So, GL_ARB_texture_storage doesn't by itself allow
dshwang
2014/08/26 19:24:04
Linux mesa GL driver on both desktop and chromeboo
| |
| 701 enable_immutable_texture_format_bgra) { | |
| 695 feature_flags_.ext_texture_storage = true; | 702 feature_flags_.ext_texture_storage = true; |
| 696 AddExtensionString("GL_EXT_texture_storage"); | 703 AddExtensionString("GL_EXT_texture_storage"); |
| 697 validators_.texture_parameter.AddValue(GL_TEXTURE_IMMUTABLE_FORMAT_EXT); | 704 validators_.texture_parameter.AddValue(GL_TEXTURE_IMMUTABLE_FORMAT_EXT); |
| 698 if (enable_texture_format_bgra8888) | 705 if (enable_texture_format_bgra8888) |
| 699 validators_.texture_internal_format_storage.AddValue(GL_BGRA8_EXT); | 706 validators_.texture_internal_format_storage.AddValue(GL_BGRA8_EXT); |
| 700 if (enable_texture_float) { | 707 if (enable_texture_float) { |
| 701 validators_.texture_internal_format_storage.AddValue(GL_RGBA32F_EXT); | 708 validators_.texture_internal_format_storage.AddValue(GL_RGBA32F_EXT); |
| 702 validators_.texture_internal_format_storage.AddValue(GL_RGB32F_EXT); | 709 validators_.texture_internal_format_storage.AddValue(GL_RGB32F_EXT); |
| 703 validators_.texture_internal_format_storage.AddValue(GL_ALPHA32F_EXT); | 710 validators_.texture_internal_format_storage.AddValue(GL_ALPHA32F_EXT); |
| 704 validators_.texture_internal_format_storage.AddValue( | 711 validators_.texture_internal_format_storage.AddValue( |
| (...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 844 if (pos == std::string::npos) { | 851 if (pos == std::string::npos) { |
| 845 extensions_ += (extensions_.empty() ? "" : " ") + str; | 852 extensions_ += (extensions_.empty() ? "" : " ") + str; |
| 846 } | 853 } |
| 847 } | 854 } |
| 848 | 855 |
| 849 FeatureInfo::~FeatureInfo() { | 856 FeatureInfo::~FeatureInfo() { |
| 850 } | 857 } |
| 851 | 858 |
| 852 } // namespace gles2 | 859 } // namespace gles2 |
| 853 } // namespace gpu | 860 } // namespace gpu |
| OLD | NEW |