diff options
author | kaanb@chromium.org <kaanb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-09-18 09:34:21 +0000 |
---|---|---|
committer | kaanb@chromium.org <kaanb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-09-18 09:34:21 +0000 |
commit | 8e6d15826280b9f11a28060b5b2d2bbef17d15bc (patch) | |
tree | 4e9d72e8a47235583089c67bfdc16da572370812 /gpu | |
parent | 2ec5b56e62d38f6a1947868f90f63633c3579b54 (diff) | |
download | chromium_src-8e6d15826280b9f11a28060b5b2d2bbef17d15bc.zip chromium_src-8e6d15826280b9f11a28060b5b2d2bbef17d15bc.tar.gz chromium_src-8e6d15826280b9f11a28060b5b2d2bbef17d15bc.tar.bz2 |
Adding support for RGBA_4444 tile textures
BUG=245774,272539
Review URL: https://chromiumcodereview.appspot.com/21159007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@223830 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'gpu')
-rw-r--r-- | gpu/command_buffer/service/async_pixel_transfer_manager_android.cc | 6 | ||||
-rw-r--r-- | gpu/command_buffer/service/async_pixel_transfer_manager_egl.cc | 11 |
2 files changed, 13 insertions, 4 deletions
diff --git a/gpu/command_buffer/service/async_pixel_transfer_manager_android.cc b/gpu/command_buffer/service/async_pixel_transfer_manager_android.cc index 8de7d58a..5aaabf4 100644 --- a/gpu/command_buffer/service/async_pixel_transfer_manager_android.cc +++ b/gpu/command_buffer/service/async_pixel_transfer_manager_android.cc @@ -4,6 +4,7 @@ #include "gpu/command_buffer/service/async_pixel_transfer_manager.h" +#include "base/android/sys_utils.h" #include "base/debug/trace_event.h" #include "gpu/command_buffer/service/async_pixel_transfer_manager_egl.h" #include "gpu/command_buffer/service/async_pixel_transfer_manager_idle.h" @@ -38,6 +39,8 @@ bool IsImagination() { // - The heap size is large enough. // TODO(kaanb|epenner): Remove the IsImagination() check pending the // resolution of crbug.com/249147 +// TODO(kaanb|epenner): Remove the IsLowEndDevice() check pending the +// resolution of crbug.com/271929 AsyncPixelTransferManager* AsyncPixelTransferManager::Create( gfx::GLContext* context) { TRACE_EVENT0("gpu", "AsyncPixelTransferManager::Create"); @@ -50,7 +53,8 @@ AsyncPixelTransferManager* AsyncPixelTransferManager::Create( context->HasExtension("EGL_KHR_gl_texture_2D_image") && context->HasExtension("GL_OES_EGL_image") && !IsBroadcom() && - !IsImagination()) { + !IsImagination() && + !base::android::SysUtils::IsLowEndDevice()) { return new AsyncPixelTransferManagerEGL; } LOG(INFO) << "Async pixel transfers not supported"; diff --git a/gpu/command_buffer/service/async_pixel_transfer_manager_egl.cc b/gpu/command_buffer/service/async_pixel_transfer_manager_egl.cc index 64e1f32..dc57f5e 100644 --- a/gpu/command_buffer/service/async_pixel_transfer_manager_egl.cc +++ b/gpu/command_buffer/service/async_pixel_transfer_manager_egl.cc @@ -170,7 +170,8 @@ class TransferStateInternal "width", define_params_.width, "height", define_params_.height); DCHECK(texture_id_); - DCHECK_NE(EGL_NO_IMAGE_KHR, egl_image_); + if (EGL_NO_IMAGE_KHR == egl_image_) + return; glBindTexture(GL_TEXTURE_2D, texture_id_); glEGLImageTargetTexture2DOES(GL_TEXTURE_2D, egl_image_); @@ -203,7 +204,8 @@ class TransferStateInternal egl_buffer, egl_attrib_list); - DCHECK_NE(EGL_NO_IMAGE_KHR, egl_image_); + DLOG_IF(ERROR, EGL_NO_IMAGE_KHR == egl_image_) + << "eglCreateImageKHR failed"; } void CreateEglImageOnUploadThread() { @@ -259,7 +261,10 @@ class TransferStateInternal tex_params.height); DCHECK(!thread_texture_id_); DCHECK_EQ(0, tex_params.level); - DCHECK_EQ(EGL_NO_IMAGE_KHR, egl_image_); + if (EGL_NO_IMAGE_KHR == egl_image_) { + MarkAsCompleted(); + return; + } void* data = AsyncPixelTransferDelegate::GetAddress(safe_shared_memory, mem_params); |