summaryrefslogtreecommitdiffstats
path: root/gpu
diff options
context:
space:
mode:
authorkaanb@chromium.org <kaanb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-09-18 09:34:21 +0000
committerkaanb@chromium.org <kaanb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-09-18 09:34:21 +0000
commit8e6d15826280b9f11a28060b5b2d2bbef17d15bc (patch)
tree4e9d72e8a47235583089c67bfdc16da572370812 /gpu
parent2ec5b56e62d38f6a1947868f90f63633c3579b54 (diff)
downloadchromium_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.cc6
-rw-r--r--gpu/command_buffer/service/async_pixel_transfer_manager_egl.cc11
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);