diff options
author | boliu@chromium.org <boliu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-04 21:37:12 +0000 |
---|---|---|
committer | boliu@chromium.org <boliu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-04 21:37:12 +0000 |
commit | 6d66889e60c2ed2f6da8affb7399bba857c6dc30 (patch) | |
tree | c83f6c8166446d1307c49d8e4811d5063e313839 /cc | |
parent | f32c2fdc3019a766f9fa8a79ba11528e036cef97 (diff) | |
download | chromium_src-6d66889e60c2ed2f6da8affb7399bba857c6dc30.zip chromium_src-6d66889e60c2ed2f6da8affb7399bba857c6dc30.tar.gz chromium_src-6d66889e60c2ed2f6da8affb7399bba857c6dc30.tar.bz2 |
Introduce gpu::Capabilities
gpu::Capabilities is a subset of FeatureInfo that is exposed
to the command buffer client.
It is populated in GlES2Implementation::Initialize,
piggy-backing on the synchronous init ipc.
Make ContextProviderInProcess use gpu::Capabilities as well
instead of hardcoding them.
Merged GpuControl::SupportsGpuMemoryBuffer into capabilities.
BUG=285390
Review URL: https://codereview.chromium.org/73263003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@238779 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc')
-rw-r--r-- | cc/DEPS | 1 | ||||
-rw-r--r-- | cc/output/context_provider.cc | 20 | ||||
-rw-r--r-- | cc/output/context_provider.h | 5 |
3 files changed, 26 insertions, 0 deletions
@@ -2,6 +2,7 @@ include_rules = [ "+gpu/GLES2", "+gpu/command_buffer/client/context_support.h", "+gpu/command_buffer/common/gpu_memory_allocation.h", + "+gpu/command_buffer/common/capabilities.h", "+gpu/command_buffer/common/mailbox.h", "+media", "+skia/ext", diff --git a/cc/output/context_provider.cc b/cc/output/context_provider.cc index 853a519..e8e5c9d 100644 --- a/cc/output/context_provider.cc +++ b/cc/output/context_provider.cc @@ -27,4 +27,24 @@ ContextProvider::Capabilities::Capabilities() discard_framebuffer(false), max_transfer_buffer_usage_bytes(std::numeric_limits<size_t>::max()) {} +ContextProvider::Capabilities::Capabilities( + const gpu::Capabilities& gpu_capabilities) + : discard_backbuffer(false), + egl_image_external(gpu_capabilities.egl_image_external), + fast_npot_mo8_textures(gpu_capabilities.fast_npot_mo8_textures), + iosurface(gpu_capabilities.iosurface), + map_image(gpu_capabilities.map_image), + map_sub(false), + post_sub_buffer(gpu_capabilities.post_sub_buffer), + set_visibility(false), + shallow_flush(false), + swapbuffers_complete_callback(false), + texture_format_bgra8888(gpu_capabilities.texture_format_bgra8888), + texture_format_etc1(gpu_capabilities.texture_format_etc1), + texture_rectangle(gpu_capabilities.texture_rectangle), + texture_storage(gpu_capabilities.texture_storage), + texture_usage(gpu_capabilities.texture_usage), + discard_framebuffer(gpu_capabilities.discard_framebuffer), + max_transfer_buffer_usage_bytes(std::numeric_limits<size_t>::max()) {} + } // namespace cc diff --git a/cc/output/context_provider.h b/cc/output/context_provider.h index a79fbfc..72a627cb 100644 --- a/cc/output/context_provider.h +++ b/cc/output/context_provider.h @@ -8,6 +8,7 @@ #include "base/callback.h" #include "base/memory/ref_counted.h" #include "cc/base/cc_export.h" +#include "gpu/command_buffer/common/capabilities.h" class GrContext; namespace blink { class WebGraphicsContext3D; } @@ -48,6 +49,10 @@ class ContextProvider : public base::RefCountedThreadSafe<ContextProvider> { size_t max_transfer_buffer_usage_bytes; CC_EXPORT Capabilities(); + + // TODO(boliu): Compose a gpu::Capabilities instead and remove this + // constructor. + explicit CC_EXPORT Capabilities(const gpu::Capabilities& gpu_capabilities); }; // Returns the capabilities of the currently bound 3d context. virtual Capabilities ContextCapabilities() = 0; |