| Index: gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc
|
| diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc b/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc
|
| index 61683bd4a7b47303f92a62ab7daaf7601dfe3654..f3a19dc7527d93446ccadc38cbbb9e8ac4fbca2c 100644
|
| --- a/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc
|
| +++ b/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc
|
| @@ -4,6 +4,10 @@
|
|
|
| #include "gpu/command_buffer/service/gles2_cmd_decoder_passthrough.h"
|
|
|
| +#include "gpu/command_buffer/service/feature_info.h"
|
| +#include "gpu/command_buffer/service/gl_utils.h"
|
| +#include "ui/gl/gl_version_info.h"
|
| +
|
| namespace gpu {
|
| namespace gles2 {
|
|
|
| @@ -181,6 +185,63 @@ const FeatureInfo* GLES2DecoderPassthroughImpl::GetFeatureInfo() const {
|
| gpu::Capabilities GLES2DecoderPassthroughImpl::GetCapabilities() {
|
| DCHECK(initialized());
|
| Capabilities caps;
|
| +
|
| + PopulateNumericCapabilities(&caps, feature_info_.get());
|
| +
|
| + caps.bind_generates_resource_chromium = group_->bind_generates_resource();
|
| + caps.egl_image_external =
|
| + feature_info_->feature_flags().oes_egl_image_external;
|
| + caps.texture_format_astc =
|
| + feature_info_->feature_flags().ext_texture_format_astc;
|
| + caps.texture_format_atc =
|
| + feature_info_->feature_flags().ext_texture_format_atc;
|
| + caps.texture_format_bgra8888 =
|
| + feature_info_->feature_flags().ext_texture_format_bgra8888;
|
| + caps.texture_format_dxt1 =
|
| + feature_info_->feature_flags().ext_texture_format_dxt1;
|
| + caps.texture_format_dxt5 =
|
| + feature_info_->feature_flags().ext_texture_format_dxt5;
|
| + caps.texture_format_etc1 =
|
| + feature_info_->feature_flags().oes_compressed_etc1_rgb8_texture;
|
| + caps.texture_format_etc1_npot = caps.texture_format_etc1;
|
| + caps.texture_rectangle = feature_info_->feature_flags().arb_texture_rectangle;
|
| + caps.texture_usage = feature_info_->feature_flags().angle_texture_usage;
|
| + caps.texture_storage = feature_info_->feature_flags().ext_texture_storage;
|
| + caps.discard_framebuffer =
|
| + feature_info_->feature_flags().ext_discard_framebuffer;
|
| + caps.sync_query = feature_info_->feature_flags().chromium_sync_query;
|
| +#if defined(OS_MACOSX)
|
| + // This is unconditionally true on mac, no need to test for it at runtime.
|
| + caps.iosurface = true;
|
| +#endif
|
| + caps.image = true;
|
| + caps.flips_vertically = surface_->FlipsVertically();
|
| + caps.blend_equation_advanced =
|
| + feature_info_->feature_flags().blend_equation_advanced;
|
| + caps.blend_equation_advanced_coherent =
|
| + feature_info_->feature_flags().blend_equation_advanced_coherent;
|
| + caps.texture_rg = feature_info_->feature_flags().ext_texture_rg;
|
| + caps.texture_half_float_linear =
|
| + feature_info_->feature_flags().enable_texture_half_float_linear;
|
| + caps.image_ycbcr_422 =
|
| + feature_info_->feature_flags().chromium_image_ycbcr_422;
|
| + caps.image_ycbcr_420v =
|
| + feature_info_->feature_flags().chromium_image_ycbcr_420v;
|
| + caps.max_copy_texture_chromium_size =
|
| + feature_info_->workarounds().max_copy_texture_chromium_size;
|
| + caps.render_buffer_format_bgra8888 =
|
| + feature_info_->feature_flags().ext_render_buffer_format_bgra8888;
|
| + caps.occlusion_query_boolean =
|
| + feature_info_->feature_flags().occlusion_query_boolean;
|
| +
|
| + // TODO:
|
| + // caps.timer_queries
|
| + // caps.post_sub_buffer
|
| + // caps.commit_overlay_planes
|
| + // caps.surfaceless
|
| + // caps.is_offscreen
|
| + // caps.flips_vertically
|
| +
|
| return caps;
|
| }
|
|
|
|
|