From: brianjjones Date: Fri, 5 Apr 2013 20:46:28 +0000 (-0700) Subject: Added patches from Sudarsana Nagineni and Kalyan Kondapally to disable calls to unsup... X-Git-Tag: accepted/2.0/20130405.204936^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5c4414a4fee0af561e876a1f7d27b325b60136f1;p=profile%2Fivi%2Fwebkit-efl.git Added patches from Sudarsana Nagineni and Kalyan Kondapally to disable calls to unsupported EGL_KHR_lock_surface and make alternative calls. Webkit now renders pages and webapps as it should. --- diff --git a/Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp b/Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp index 5ca77b2..e555e61 100755 --- a/Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp +++ b/Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp @@ -63,6 +63,18 @@ #define GL_BGRA 0x80E1 #endif +#if !defined(GL_UNPACK_ROW_LENGTH) +#define GL_UNPACK_ROW_LENGTH 0x0CF2 +#endif + +#if !defined(GL_UNPACK_SKIP_PIXELS) +#define GL_UNPACK_SKIP_PIXELS 0x0CF4 +#endif + +#if !defined(GL_UNPACK_SKIP_ROWS) +#define GL_UNPACK_SKIP_ROWS 0x0CF3 +#endif + namespace WebCore { #if ENABLE(TIZEN_WEBKIT2_DIRECT_RENDERING) static int gAngle = 0; @@ -822,24 +834,46 @@ static void swizzleBGRAToRGBA(uint32_t* data, const IntRect& rect, int stride = } } -static bool driverSupportsBGRASwizzling() +static HashSet parseExtensions(const String& extensionsString) { -#if defined(TEXMAP_OPENGL_ES_2) - // FIXME: Implement reliable detection. See also https://bugs.webkit.org/show_bug.cgi?id=81103. - return false; -#else + Vector extNames; + extensionsString.split(" ", extNames); + HashSet splitExtNames; + unsigned size = extNames.size(); + for (unsigned i = 0; i < size; ++i) + splitExtNames.add(extNames[i]); + extNames.clear(); + + return splitExtNames; +} + +static bool supportsGLExtension(const String& name) +{ + static HashSet supportedExtensions; + + if (!supportedExtensions.size()) { + String rawExtensions = reinterpret_cast(::glGetString(GL_EXTENSIONS)); + supportedExtensions = parseExtensions(rawExtensions); + } + + if (supportedExtensions.contains(name)) return true; -#endif + + return false; +} + +// If GL_EXT_texture_format_BGRA8888 is supported in the OpenGLES +// internal and external formats need to be BGRA +static bool driverSupportsBGRASwizzling() +{ + static bool supportsBGRASwizzling = supportsGLExtension("GL_EXT_texture_format_BGRA8888"); + return supportsBGRASwizzling; } static bool driverSupportsSubImage() { -#if defined(TEXMAP_OPENGL_ES_2) - // FIXME: Implement reliable detection. - return false; -#else - return true; -#endif + static bool supportsSubImage = supportsGLExtension("GL_EXT_unpack_subimage"); + return supportsSubImage; } void BitmapTextureGL::didReset() @@ -859,7 +893,7 @@ void BitmapTextureGL::didReset() GL_CMD(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR)); GL_CMD(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE)); GL_CMD(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE)); - GL_CMD(glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, m_textureSize.width(), m_textureSize.height(), 0, format, DEFAULT_TEXTURE_PIXEL_TRANSFER_TYPE, 0)); + GL_CMD(glTexImage2D(GL_TEXTURE_2D, 0, format, m_textureSize.width(), m_textureSize.height(), 0, format, DEFAULT_TEXTURE_PIXEL_TRANSFER_TYPE, 0)); #if !ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE) // some graphics driver did not support odd texture size. if (m_textureSize.width() % 2) @@ -909,18 +943,16 @@ void BitmapTextureGL::updateContents(const void* data, const IntRect& targetRect GL_CMD(glTexSubImage2D(GL_TEXTURE_2D, 0, targetRect.x(), targetRect.y(), targetRect.width(), targetRect.height(), glFormat, DEFAULT_TEXTURE_PIXEL_TRANSFER_TYPE, temporaryData.data())); #endif return; + } else { + // Use the OpenGL sub-image extension, now that we know it's available. + GL_CMD(glPixelStorei(GL_UNPACK_ROW_LENGTH, bytesPerLine / bytesPerPixel)); + GL_CMD(glPixelStorei(GL_UNPACK_SKIP_ROWS, sourceOffset.y())); + GL_CMD(glPixelStorei(GL_UNPACK_SKIP_PIXELS, sourceOffset.x())); + GL_CMD(glTexSubImage2D(GL_TEXTURE_2D, 0, targetRect.x(), targetRect.y(), targetRect.width(), targetRect.height(), glFormat, DEFAULT_TEXTURE_PIXEL_TRANSFER_TYPE, (const char*)data)); + GL_CMD(glPixelStorei(GL_UNPACK_ROW_LENGTH, 0)); + GL_CMD(glPixelStorei(GL_UNPACK_SKIP_ROWS, 0)); + GL_CMD(glPixelStorei(GL_UNPACK_SKIP_PIXELS, 0)); } - -#if !defined(TEXMAP_OPENGL_ES_2) - // Use the OpenGL sub-image extension, now that we know it's available. - GL_CMD(glPixelStorei(GL_UNPACK_ROW_LENGTH, bytesPerLine / bytesPerPixel)); - GL_CMD(glPixelStorei(GL_UNPACK_SKIP_ROWS, sourceOffset.y())); - GL_CMD(glPixelStorei(GL_UNPACK_SKIP_PIXELS, sourceOffset.x())); - GL_CMD(glTexSubImage2D(GL_TEXTURE_2D, 0, targetRect.x(), targetRect.y(), targetRect.width(), targetRect.height(), glFormat, DEFAULT_TEXTURE_PIXEL_TRANSFER_TYPE, (const char*)data)); - GL_CMD(glPixelStorei(GL_UNPACK_ROW_LENGTH, 0)); - GL_CMD(glPixelStorei(GL_UNPACK_SKIP_ROWS, 0)); - GL_CMD(glPixelStorei(GL_UNPACK_SKIP_PIXELS, 0)); -#endif } void BitmapTextureGL::updateContents(Image* image, const IntRect& targetRect, const IntPoint& offset) diff --git a/Source/cmake/OptionsTizen.cmake b/Source/cmake/OptionsTizen.cmake index ced1d8f..32b70b5 100644 --- a/Source/cmake/OptionsTizen.cmake +++ b/Source/cmake/OptionsTizen.cmake @@ -262,11 +262,11 @@ IF ("${EFL_TARGET}" STREQUAL "i386") SET(WTF_USE_ACCELERATED_COMPOSITING 1) SET(WTF_USE_TEXTURE_MAPPER 1) SET(ENABLE_WEBGL 1) - ADD_DEFINITIONS(-DENABLE_TIZEN_WEBKIT2_DIRECT_RENDERING=1) - SET(ENABLE_TIZEN_WEBKIT2_DIRECT_RENDERING 1) - ADD_DEFINITIONS(-DENABLE_TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE=1) - ADD_DEFINITIONS(-DWTF_USE_ACCELERATED_VIDEO_VAAPI=1) - SET(ENABLE_TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE 1) + ADD_DEFINITIONS(-DENABLE_TIZEN_WEBKIT2_DIRECT_RENDERING=0) + SET(ENABLE_TIZEN_WEBKIT2_DIRECT_RENDERING 0) + ADD_DEFINITIONS(-DENABLE_TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE=0) + ADD_DEFINITIONS(-DWTF_USE_ACCELERATED_VIDEO_VAAPI=0) + SET(ENABLE_TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE 0) ELSEIF ("${EFL_TARGET}" STREQUAL "emulator") MESSAGE("i386 emulator Build Mode <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<") SET(WTF_USE_ACCELERATED_COMPOSITING 1)