Commit Graph

119 Commits

Author SHA1 Message Date
digit@google.com
1771cbf43d posix: Avoid static initializers in static/global mutexes
This patch removes static initializers related to static and
global mutexes from the final library's machine code when
building on a pthread-capable system.

We use PTHREAD_MUTEX_INITIALIZER to perform POD-style
initialization. You need a line like the following to declare
a global mutex with it:

    SkBaseMutex gMutex = { PTHREAD_MUTEX_INITIALIZER };

We introduce the SK_DECLARE_STATIC_MUTEX and SK_DECLARE_GLOBAL_MUTEX
macros to be able to declare static/global mutexes in the source tree
uniformly.

SkMutex is now defined as a sub-class of SkBaseMutex, with standard
construction/destruction semantics. This is useful if the mutex
object is a member of another C++ class, or allocated dynamically.

We also modify a few places to refer to SkBaseMutex instead of a
SkMutex, where it makes sense. Generally speaking, client code
should hold and use pointers to SkBaseMutex whenever they can
now.

We defined a new built-time macro named SK_USE_POSIX_THREADS
to indicate that we're using a pthread-based SkThread.h
interface. The macro will also be used in future patches
to implement other helper thread synchronization classes.

Finally, we inline the acquire() and release() functions in the
case of Posix to improve performance a bit.

Running: 'bench -repeat 10 -match mutex' on an Android device or
a 2.4GHz Xeon Linux desktop shows the following improvements:

                      Before     After

        Galaxy Nexus    1.64      1.45
        Nexus S         1.47      1.16
        Xoom            1.86      1.66
        Xeon            0.36      0.31

This removes 5 static mutex initializers from the library
Review URL: https://codereview.appspot.com/5501066

git-svn-id: http://skia.googlecode.com/svn/trunk@3091 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-26 21:26:40 +00:00
senorblanco@chromium.org
7288c49cf2 Fix a warning in libtess in Release builds; define NDEBUG in Release on all
platforms.

BUG:  http://code.google.com/p/skia/issues/detail?id=456
Review URL:  http://codereview.appspot.com/5555054/



git-svn-id: http://skia.googlecode.com/svn/trunk@3076 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-19 19:59:22 +00:00
digit@google.com
70ccffe0e7 Android: disable static global initializers
Review URL: http://codereview.appspot.com/5503066

git-svn-id: http://skia.googlecode.com/svn/trunk@2992 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-10 10:28:30 +00:00
djsollen@google.com
fa394d491b Change remaining ANDROID ifdefs to SK_BUILD_FOR_ANDROID
Review URL: http://codereview.appspot.com/5528050

git-svn-id: http://skia.googlecode.com/svn/trunk@2990 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-09 20:40:25 +00:00
bsalomon@google.com
cadbcb8e53 Towards enabling -Werror in skia on Linux
Review URL: http://codereview.appspot.com/5516044/



git-svn-id: http://skia.googlecode.com/svn/trunk@2983 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-06 19:22:11 +00:00
mike@reedtribe.org
e51755fc64 add first cut at arithmetic mode
git-svn-id: http://skia.googlecode.com/svn/trunk@2849 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-10 19:36:56 +00:00
djsollen@google.com
44360bcca3 Changes to the android gyp system to build without RTTI and exceptions.
Review URL: http://codereview.appspot.com/5437089

git-svn-id: http://skia.googlecode.com/svn/trunk@2794 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-05 13:55:55 +00:00
bsalomon@google.com
31648eb1cf Fix warnings
Review URL: http://codereview.appspot.com/5433054/


git-svn-id: http://skia.googlecode.com/svn/trunk@2741 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-23 15:01:08 +00:00
reed@google.com
0069aa5708 add commented line to try to add additional warnings
git-svn-id: http://skia.googlecode.com/svn/trunk@2706 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-17 15:35:47 +00:00
djsollen@google.com
318cf92202 Cleanup for the Android build.
git-svn-id: http://skia.googlecode.com/svn/trunk@2630 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-08 19:03:43 +00:00
djsollen@google.com
3839ca146a Update the Skia gyp files to use the external android sources.
Review URL: http://codereview.appspot.com/5336048

git-svn-id: http://skia.googlecode.com/svn/trunk@2598 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-03 17:31:41 +00:00
djsollen@google.com
58629291bc Adding support to trunk for building Skia using the Android NDK.
This CL depends on a subsequent CL to add the appropriate NDK
toolchain and system sources to the skia repo.

Review URL: http://codereview.appspot.com/5306089/
Review URL: http://codereview.appspot.com/5306089

git-svn-id: http://skia.googlecode.com/svn/trunk@2592 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-03 13:08:29 +00:00
bsalomon@google.com
4d5cb45f3e Set SDK for Mac build to 10.6, ignore gyp/build, fixup gpu files to compile against 10.5 if needed
Review URL: http://codereview.appspot.com/5260041/



git-svn-id: http://skia.googlecode.com/svn/trunk@2470 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-10-12 18:12:11 +00:00
reed@google.com
e05cc8e94e explicitly set opt level for mac-release
delete obsolete FPS bench



git-svn-id: http://skia.googlecode.com/svn/trunk@2442 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-10-10 14:19:40 +00:00
bungeman@google.com
7deaa3b75c Update common_conditions to make sure there is a slash in VS2008.
http://codereview.appspot.com/5172047/


git-svn-id: http://skia.googlecode.com/svn/trunk@2398 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-10-03 20:15:13 +00:00
bungeman@google.com
983297e813 Roll gyp and add librarian settings (now supported).
http://codereview.appspot.com/5169048/


git-svn-id: http://skia.googlecode.com/svn/trunk@2397 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-10-03 19:36:51 +00:00
bsalomon@google.com
8b5abeca87 Set window build flags (warn level 4, release optimization options, pdbs in release builds)
Review URL: http://codereview.appspot.com/5142050/



git-svn-id: http://skia.googlecode.com/svn/trunk@2346 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-09-28 14:32:01 +00:00
seanpaul@google.com
8f78fec05c Change AdditionalOptions to a list from a string. This fixes compilation errors
when building bench within chrome.

BUG=363
TEST=Build bench through a chrome checkout on windows
Review URL: http://codereview.appspot.com/5045042

git-svn-id: http://skia.googlecode.com/svn/trunk@2275 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-09-16 15:47:33 +00:00
seanpaul@google.com
1134f98165 Refactor the bench and common gyp/gypi files to allow for building bench within
a chromium checkout (using chromium build configuration).

BUG=362
TEST=Build bench from within the chromium and skia source tree, ensured it built
     and ran successfully.
Review URL: http://codereview.appspot.com/5023042

git-svn-id: http://skia.googlecode.com/svn/trunk@2270 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-09-15 14:24:33 +00:00