From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id 528191387FD for ; Thu, 3 Apr 2014 18:23:17 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id BC901E0ABC; Thu, 3 Apr 2014 18:23:16 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 45EF5E0ABC for ; Thu, 3 Apr 2014 18:23:16 +0000 (UTC) Received: from flycatcher.gentoo.org (flycatcher.gentoo.org [81.93.255.6]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 485CF33FE46 for ; Thu, 3 Apr 2014 18:23:15 +0000 (UTC) Received: by flycatcher.gentoo.org (Postfix, from userid 559) id EBD9D20061; Thu, 3 Apr 2014 18:23:13 +0000 (UTC) From: "Mike Frysinger (vapier)" To: gentoo-commits@lists.gentoo.org Reply-To: gentoo-dev@lists.gentoo.org, vapier@gentoo.org Subject: [gentoo-commits] gentoo-x86 commit in dev-util/apitrace/files: apitrace-4.0-memcpy.patch apitrace-4.0-glext-texture-storage.patch apitrace-4.0-system-libs.patch apitrace-4.0-disable-multiarch.patch apitrace-4.0-glxtrace-only.patch apitrace-4.0-glxcopysubbuffermesa.patch apitrace-4.0-multilib.patch X-VCS-Repository: gentoo-x86 X-VCS-Files: apitrace-4.0-memcpy.patch apitrace-4.0-glext-texture-storage.patch apitrace-4.0-system-libs.patch apitrace-4.0-disable-multiarch.patch apitrace-4.0-glxtrace-only.patch apitrace-4.0-glxcopysubbuffermesa.patch apitrace-4.0-multilib.patch X-VCS-Directories: dev-util/apitrace/files X-VCS-Committer: vapier X-VCS-Committer-Name: Mike Frysinger Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Message-Id: <20140403182313.EBD9D20061@flycatcher.gentoo.org> Date: Thu, 3 Apr 2014 18:23:13 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: f45f51e8-c879-4bdb-bcd5-c109b41b1967 X-Archives-Hash: 0114f82979c2562abf6ccaa1d250b8fe vapier 14/04/03 18:23:13 Added: apitrace-4.0-memcpy.patch apitrace-4.0-glext-texture-storage.patch apitrace-4.0-system-libs.patch apitrace-4.0-disable-multiarch.patch apitrace-4.0-glxtrace-only.patch apitrace-4.0-glxcopysubbuffermesa.patch apitrace-4.0-multilib.patch Log: Version bump #468254#14 by David Heidelberger. Should fix OpenGL compilation #493008 by Michał Górny. Switches to cmake-multilib #468250 by Patrick Lauer. (Portage version: 2.2.10/cvs/Linux x86_64, signed Manifest commit with key D2E96200) Revision Changes Path 1.1 dev-util/apitrace/files/apitrace-4.0-memcpy.patch file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-util/apitrace/files/apitrace-4.0-memcpy.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-util/apitrace/files/apitrace-4.0-memcpy.patch?rev=1.1&content-type=text/plain Index: apitrace-4.0-memcpy.patch =================================================================== http://bugs.gentoo.org/465504 http://github.com/apitrace/apitrace/issues/118 --- a/image/image_png.cpp +++ b/image/image_png.cpp @@ -31,6 +31,7 @@ #include #include #include +#include #include 1.1 dev-util/apitrace/files/apitrace-4.0-glext-texture-storage.patch file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-util/apitrace/files/apitrace-4.0-glext-texture-storage.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-util/apitrace/files/apitrace-4.0-glext-texture-storage.patch?rev=1.1&content-type=text/plain Index: apitrace-4.0-glext-texture-storage.patch =================================================================== Upstream commit to support GL_EXT_texture_storage. commit 0436cc01329b6be60801dd7bfe641be7d8be5bc7 Author: José Fonseca Date: Wed Nov 13 13:57:43 2013 +0000 egltrace: Add GL_EXT_texture_storage entrypoints Prototypes obtained through: specs/scripts/gltxt.py http://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_storage.txt Issue #184. commit 0bacf23eacd15c8f15413b85bdcb6ccc4d288f37 Author: José Fonseca Date: Wed Nov 13 13:59:51 2013 +0000 glxtrace: Add GLES prototypes too. Some applications seem to fail to distinguish GLES and GL entrypoints apart. To have complete traces in that situation, generate wrappers for both GLES and GL prototypes. Issue #184. --- apitrace/specs/glesapi.py +++ apitrace/specs/glesapi.py @@ -255,4 +255,16 @@ glesapi.addFunctions([ #GlFunction(Void, "glProgramUniformMatrix4fvEXT", [(GLprogram, "program"), (GLlocation, "location"), (GLsizei, "count"), (GLboolean, "transpose"), (Array(Const(GLfloat), "count*4*4"), "value")]), GlFunction(Void, "glValidateProgramPipelineEXT", [(GLpipeline, "pipeline")]), GlFunction(Void, "glGetProgramPipelineInfoLogEXT", [(GLpipeline, "pipeline"), (GLsizei, "bufSize"), Out(Pointer(GLsizei), "length"), Out(GLstring, "infoLog")], sideeffects=False), + + # GL_EXT_multisampled_render_to_texture + #GlFunction(Void, "glRenderbufferStorageMultisampleEXT", [(GLenum, "target"), (GLsizei, "samples"), (GLenum, "internalformat"), (GLsizei, "width"), (GLsizei, "height")]), + GlFunction(Void, "glFramebufferTexture2DMultisampleEXT", [(GLenum, "target"), (GLenum, "attachment"), (GLenum, "textarget"), (GLtexture, "texture"), (GLint, "level"), (GLsizei, "samples")]), + + # GL_EXT_texture_storage + GlFunction(Void, "glTexStorage1DEXT", [(GLenum, "target"), (GLsizei, "levels"), (GLenum, "internalformat"), (GLsizei, "width")]), + GlFunction(Void, "glTexStorage2DEXT", [(GLenum, "target"), (GLsizei, "levels"), (GLenum, "internalformat"), (GLsizei, "width"), (GLsizei, "height")]), + GlFunction(Void, "glTexStorage3DEXT", [(GLenum, "target"), (GLsizei, "levels"), (GLenum, "internalformat"), (GLsizei, "width"), (GLsizei, "height"), (GLsizei, "depth")]), + #GlFunction(Void, "glTextureStorage1DEXT", [(GLtexture, "texture"), (GLenum, "target"), (GLsizei, "levels"), (GLenum, "internalformat"), (GLsizei, "width")]), + #GlFunction(Void, "glTextureStorage2DEXT", [(GLtexture, "texture"), (GLenum, "target"), (GLsizei, "levels"), (GLenum, "internalformat"), (GLsizei, "width"), (GLsizei, "height")]), + #GlFunction(Void, "glTextureStorage3DEXT", [(GLtexture, "texture"), (GLenum, "target"), (GLsizei, "levels"), (GLenum, "internalformat"), (GLsizei, "width"), (GLsizei, "height"), (GLsizei, "depth")]), ]) --- apitrace/wrappers/CMakeLists.txt +++ apitrace/wrappers/CMakeLists.txt @@ -393,6 +393,7 @@ elseif (X11_FOUND) gltrace.py trace.py ${CMAKE_SOURCE_DIR}/specs/glxapi.py + ${CMAKE_SOURCE_DIR}/specs/glesapi.py ${CMAKE_SOURCE_DIR}/specs/glapi.py ${CMAKE_SOURCE_DIR}/specs/glparams.py ${CMAKE_SOURCE_DIR}/specs/gltypes.py --- apitrace/wrappers/glxtrace.py +++ apitrace/wrappers/glxtrace.py @@ -32,6 +32,7 @@ from gltrace import GlTracer from specs.stdapi import Module, API from specs.glapi import glapi from specs.glxapi import glxapi +from specs.glesapi import glesapi class GlxTracer(GlTracer): @@ -104,6 +105,7 @@ if __name__ == '__main__': module = Module() module.mergeModule(glxapi) module.mergeModule(glapi) + module.mergeModule(glesapi) api = API() api.addModule(module) tracer = GlxTracer() 1.1 dev-util/apitrace/files/apitrace-4.0-system-libs.patch file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-util/apitrace/files/apitrace-4.0-system-libs.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-util/apitrace/files/apitrace-4.0-system-libs.patch?rev=1.1&content-type=text/plain Index: apitrace-4.0-system-libs.patch =================================================================== Find external system libraries for ebuild. Updated from 3.0 version of patch to apply against 4.0. --- apitrace/CMakeLists.txt +++ apitrace/CMakeLists.txt @@ -224,23 +224,14 @@ set (WRAPPER_INSTALL_DIR ${LIB_ARCH_INSTALL_DIR}/wrappers) # - on unices to prevent symbol collisions when tracing applications that link # against other versions of these libraries -set (ZLIB_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/zlib) -set (ZLIB_LIBRARIES z_bundled) -add_subdirectory (thirdparty/zlib) - -include_directories (${ZLIB_INCLUDE_DIRS}) - -set (SNAPPY_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/snappy) -set (SNAPPY_LIBRARIES snappy_bundled) -add_subdirectory (thirdparty/snappy) +find_package (ZLIB REQUIRED) +include_directories (${ZLIB_INCLUDE_DIRS}) +find_package (SNAPPY REQUIRED) include_directories (${SNAPPY_INCLUDE_DIRS}) -set (PNG_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/libpng) -set (PNG_DEFINITIONS "") -set (PNG_LIBRARIES png_bundled) - -add_subdirectory (thirdparty/libpng) +find_package (PNG REQUIRED) +include_directories (${PNG_INCLUDE_DIRS}) if (MSVC) add_subdirectory (thirdparty/getopt) diff --git a/cmake/FindSNAPPY.cmake b/cmake/FindSNAPPY.cmake new file mode 100644 index 0000000..5cd64c3 --- /dev/null +++ apitrace/cmake/FindSNAPPY.cmake @@ -0,0 +1,31 @@ +# Find SNAPPY - A fast compressor/decompressor +# +# This module defines +# SNAPPY_FOUND - whether the qsjon library was found +# SNAPPY_LIBRARIES - the snappy library +# SNAPPY_INCLUDE_DIR - the include path of the snappy library +# + +if (SNAPPY_INCLUDE_DIR AND SNAPPY_LIBRARIES) + + # Already in cache + set (SNAPPY_FOUND TRUE) + +else (SNAPPY_INCLUDE_DIR AND SNAPPY_LIBRARIES) + + find_library (SNAPPY_LIBRARIES + NAMES + snappy + PATHS + ) + + find_path (SNAPPY_INCLUDE_DIR + NAMES + snappy.h + PATHS + ) + + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(SNAPPY DEFAULT_MSG SNAPPY_LIBRARIES SNAPPY_INCLUDE_DIR) + +endif (SNAPPY_INCLUDE_DIR AND SNAPPY_LIBRARIES) 1.1 dev-util/apitrace/files/apitrace-4.0-disable-multiarch.patch file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-util/apitrace/files/apitrace-4.0-disable-multiarch.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-util/apitrace/files/apitrace-4.0-disable-multiarch.patch?rev=1.1&content-type=text/plain Index: apitrace-4.0-disable-multiarch.patch =================================================================== respect the libdir cmake already set up for us instead of using the multiarch crap --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -184,12 +184,6 @@ set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) # Installation directories if (${CMAKE_SYSTEM_NAME} MATCHES "Linux") - # Debian multiarch support - execute_process(COMMAND dpkg-architecture -qDEB_HOST_MULTIARCH - OUTPUT_VARIABLE ARCH_SUBDIR - ERROR_QUIET - OUTPUT_STRIP_TRAILING_WHITESPACE - ) CHECK_INCLUDE_FILES(proc/readproc.h READPROC_H_FOUND) if (READPROC_H_FOUND) add_definitions (-DHAVE_READPROC_H) @@ -205,11 +205,11 @@ if (WIN32 OR APPLE) set (LIB_ARCH_INSTALL_DIR lib) else () set (DOC_INSTALL_DIR share/doc/${CMAKE_PROJECT_NAME}) - set (LIB_INSTALL_DIR lib/${CMAKE_PROJECT_NAME}) + set (LIB_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR}/${CMAKE_PROJECT_NAME}) if (ARCH_SUBDIR) - set (LIB_ARCH_INSTALL_DIR lib/${ARCH_SUBDIR}/${CMAKE_PROJECT_NAME}) + set (LIB_ARCH_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR}/${ARCH_SUBDIR}/${CMAKE_PROJECT_NAME}) else () - set (LIB_ARCH_INSTALL_DIR lib/${CMAKE_PROJECT_NAME}) + set (LIB_ARCH_INSTALL_DIR ${LIB_INSTALL_DIR}) endif () endif () 1.1 dev-util/apitrace/files/apitrace-4.0-glxtrace-only.patch file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-util/apitrace/files/apitrace-4.0-glxtrace-only.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-util/apitrace/files/apitrace-4.0-glxtrace-only.patch?rev=1.1&content-type=text/plain Index: apitrace-4.0-glxtrace-only.patch =================================================================== Allow building of just glxtrace library for ebuilds without GUI tools. Updated from 3.0 version of patch to apply against 4.0. --- apitrace/CMakeLists.txt +++ apitrace/CMakeLists.txt @@ -30,6 +30,7 @@ set (ENABLE_CLI true CACHE BOOL "Enable command Line interface.") set (ENABLE_EGL true CACHE BOOL "Enable EGL support.") +option (BUILD_LIB_ONLY "Build the glxtrace library only" OFF) ############################################################################## # Find dependencies @@ -227,7 +228,13 @@ set (WRAPPER_INSTALL_DIR ${LIB_ARCH_INSTALL_DIR}/wrappers) find_package (ZLIB REQUIRED) include_directories (${ZLIB_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/zlib) -find_package (SNAPPY REQUIRED) +if (BUILD_LIB_ONLY) + set (SNAPPY_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/snappy) + set (SNAPPY_LIBRARIES snappy_bundled) + add_subdirectory (thirdparty/snappy EXCLUDE_FROM_ALL) +else (BUILD_LIB_ONLY) + find_package (SNAPPY REQUIRED) +endif (BUILD_LIB_ONLY) include_directories (${SNAPPY_INCLUDE_DIRS}) find_package (PNG REQUIRED) @@ -248,6 +255,8 @@ endif () # - The packaged versions QJson are very old, and do not support NaN/Infinity. # - To make it easier to build the GUI on Windows and MacOSX, as there are no # binaries at all. +if (NOT BUILD_LIB_ONLY) + if (QT4_FOUND) add_definitions (-DQJSON_EXPORT=) add_subdirectory (thirdparty/qjson) @@ -257,6 +266,8 @@ if (QT4_FOUND) set (QJSON_FOUND TRUE) endif () +endif (NOT BUILD_LIB_ONLY) + # We use bundled headers for all Khronos APIs, to guarantee support for both # OpenGL and OpenGL ES at build time, because the OpenGL and OpenGL ES 1 APIs # are so intertwined that conditional compilation extremely difficult. This diff --git a/retrace/CMakeLists.txt b/retrace/CMakeLists.txt index 913c23e..08b2905 100644 --- apitrace/retrace/CMakeLists.txt +++ apitrace/retrace/CMakeLists.txt @@ -11,6 +11,8 @@ include_directories ( add_definitions (-DRETRACE) +if (NOT BUILD_LIB_ONLY) + add_custom_command ( OUTPUT glretrace_gl.cpp COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/glretrace.py > ${CMAKE_CURRENT_BINARY_DIR}/glretrace_gl.cpp @@ -259,3 +261,6 @@ if (WIN32) install (TARGETS d3dretrace RUNTIME DESTINATION bin) endif () + +endif (NOT BUILD_LIB_ONLY) + 1.1 dev-util/apitrace/files/apitrace-4.0-glxcopysubbuffermesa.patch file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-util/apitrace/files/apitrace-4.0-glxcopysubbuffermesa.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-util/apitrace/files/apitrace-4.0-glxcopysubbuffermesa.patch?rev=1.1&content-type=text/plain Index: apitrace-4.0-glxcopysubbuffermesa.patch =================================================================== Upstream commit to support glxCopySubBufferMESA. Modified to fix compile error with egl. commit 4dc3f3bdc3611ca1b3dec402f9242a036db8c8e4 Author: Carl Worth Date: Thu Oct 17 14:52:21 2013 -0700 retrace: Implement glxCopySubBufferMESA This enables replay of a trace captured on ChromeOS. Note: Replaying on EGL is not supported, (will trigger a warning), since, as far as I know, EGL does not provide an equivalent function. --- apitrace/retrace/glretrace_glx.cpp +++ apitrace/retrace/glretrace_glx.cpp @@ -111,6 +111,16 @@ static void retrace_glXDestroyContext(trace::Call &call) { delete context; } +static void retrace_glXCopySubBufferMESA(trace::Call &call) { + glws::Drawable *drawable = getDrawable(call.arg(1).toUInt()); + int x = call.arg(2).toSInt(); + int y = call.arg(3).toSInt(); + int width = call.arg(4).toSInt(); + int height = call.arg(5).toSInt(); + + drawable->copySubBuffer(x, y, width, height); +} + static void retrace_glXSwapBuffers(trace::Call &call) { glws::Drawable *drawable = getDrawable(call.arg(1).toUInt()); @@ -173,7 +183,7 @@ const retrace::Entry glretrace::glx_callbacks[] = { {"glXChooseVisual", &retrace::ignore}, //{"glXCopyContext", &retrace_glXCopyContext}, //{"glXCopyImageSubDataNV", &retrace_glXCopyImageSubDataNV}, - //{"glXCopySubBufferMESA", &retrace_glXCopySubBufferMESA}, + {"glXCopySubBufferMESA", &retrace_glXCopySubBufferMESA}, {"glXCreateContextAttribsARB", &retrace_glXCreateContextAttribsARB}, {"glXCreateContext", &retrace_glXCreateContext}, //{"glXCreateContextWithConfigSGIX", &retrace_glXCreateContextWithConfigSGIX}, --- apitrace/retrace/glws.hpp +++ apitrace/retrace/glws.hpp @@ -127,6 +127,8 @@ public: visible = true; } + virtual void copySubBuffer(int x, int y, int width, int height) = 0; + virtual void swapBuffers(void) = 0; }; --- apitrace/retrace/glws_egl_xlib.cpp +++ apitrace/retrace/glws_egl_xlib.cpp @@ -244,6 +244,10 @@ public: Drawable::show(); } + void copySubBuffer(int x, int y, int width, int height) { + std::cerr << "glws_egl_xlib: Warning: copySubBuffer Not yet implemented\n"; + } + void swapBuffers(void) { eglBindAPI(api); eglSwapBuffers(eglDisplay, surface); --- apitrace/retrace/glws_glx.cpp +++ apitrace/retrace/glws_glx.cpp @@ -213,6 +213,12 @@ public: Drawable::show(); } + void copySubBuffer(int x, int y, int width, int height) { + glXCopySubBufferMESA(display, window, x, y, width, height); + + processKeys(); + } + void swapBuffers(void) { glXSwapBuffers(display, window); 1.1 dev-util/apitrace/files/apitrace-4.0-multilib.patch file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-util/apitrace/files/apitrace-4.0-multilib.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-util/apitrace/files/apitrace-4.0-multilib.patch?rev=1.1&content-type=text/plain Index: apitrace-4.0-multilib.patch =================================================================== Upstream commit to find wrappers in lib64 directory. commit 3f9c2ecf18d8fa37fad5a7062f80952692eaa8e7 Author: Alexander Monakov Date: Wed Oct 16 20:51:47 2013 +0400 cli: use $LIB to handle multilib automagically on glibc --- apitrace/cli/CMakeLists.txt +++ apitrace/cli/CMakeLists.txt @@ -31,6 +31,7 @@ target_link_libraries (apitrace ${ZLIB_LIBRARIES} ${SNAPPY_LIBRARIES} ${GETOPT_LIBRARIES} + dl ) if (NOT CMAKE_CROSSCOMPILING) --- apitrace/cli/cli_resources.cpp +++ apitrace/cli/cli_resources.cpp @@ -32,6 +32,20 @@ #include "cli_resources.hpp" +#ifdef __GLIBC__ + +#include + +static bool +tryLib(const os::String &path) +{ + void *handle = dlopen(path.str(), RTLD_LAZY); + bool exists = (handle != NULL); + if (exists) + dlclose(handle); + return exists; +} +#endif os::String findProgram(const char*programFilename) @@ -76,6 +90,17 @@ findWrapper(const char *wrapperFilename) return wrapperPath; } +#ifdef __GLIBC__ + // We want to take advantage of $LIB dynamic string token expansion in + // glibc dynamic linker to handle multilib layout for us + wrapperPath = processDir; + wrapperPath.join("../$LIB/apitrace/wrappers"); + wrapperPath.join(wrapperFilename); + if (tryLib(wrapperPath)) { + return wrapperPath; + } +#endif + // Try relative install directory wrapperPath = processDir; #if defined(_WIN32)