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 |