Memory improvements to render_pdfs; better DM pool size defaults
Make SK_DEFAULT_GLOBAL_DISCARDABLE_MEMORY_POOL_SIZE equal to skia_resource_cache_mb_limit, if that value is >0 (true for some low-memory Android devices). render_pdfs test program uses lazy decoding (and the discardable memory pool). BUG=skia:2743 R=djsollen@google.com, mtklein@google.com Author: halcanary@google.com Review URL: https://codereview.chromium.org/433063002
This commit is contained in:
parent
6e33e232df
commit
66058b614d
@ -6,6 +6,7 @@
|
|||||||
'SK_SUPPORT_GPU=<(skia_gpu)',
|
'SK_SUPPORT_GPU=<(skia_gpu)',
|
||||||
'SK_SUPPORT_OPENCL=<(skia_opencl)',
|
'SK_SUPPORT_OPENCL=<(skia_opencl)',
|
||||||
'SK_FORCE_DISTANCEFIELD_FONTS=<(skia_force_distancefield_fonts)',
|
'SK_FORCE_DISTANCEFIELD_FONTS=<(skia_force_distancefield_fonts)',
|
||||||
|
'SK_DEFAULT_RESOURCE_CACHE_MB_LIMIT=<(skia_resource_cache_mb_limit)',
|
||||||
],
|
],
|
||||||
'conditions' : [
|
'conditions' : [
|
||||||
['skia_pic', {
|
['skia_pic', {
|
||||||
|
@ -517,12 +517,17 @@
|
|||||||
'type': 'executable',
|
'type': 'executable',
|
||||||
'sources': [
|
'sources': [
|
||||||
'../tools/render_pdfs_main.cpp',
|
'../tools/render_pdfs_main.cpp',
|
||||||
|
'../tools/flags/SkCommandLineFlags.cpp',
|
||||||
|
'../tools/LazyDecodeBitmap.cpp',
|
||||||
'../tools/PdfRenderer.cpp',
|
'../tools/PdfRenderer.cpp',
|
||||||
'../tools/PdfRenderer.h',
|
'../tools/PdfRenderer.h',
|
||||||
],
|
],
|
||||||
'include_dirs': [
|
'include_dirs': [
|
||||||
|
'../src/core',
|
||||||
|
'../src/lazy',
|
||||||
'../src/pipe/utils/',
|
'../src/pipe/utils/',
|
||||||
'../src/utils/',
|
'../src/utils/',
|
||||||
|
'../tools/flags',
|
||||||
],
|
],
|
||||||
'dependencies': [
|
'dependencies': [
|
||||||
'pdf.gyp:pdf',
|
'pdf.gyp:pdf',
|
||||||
|
@ -62,7 +62,14 @@ public:
|
|||||||
SkDiscardableMemoryPool* SkGetGlobalDiscardableMemoryPool();
|
SkDiscardableMemoryPool* SkGetGlobalDiscardableMemoryPool();
|
||||||
|
|
||||||
#if !defined(SK_DEFAULT_GLOBAL_DISCARDABLE_MEMORY_POOL_SIZE)
|
#if !defined(SK_DEFAULT_GLOBAL_DISCARDABLE_MEMORY_POOL_SIZE)
|
||||||
#define SK_DEFAULT_GLOBAL_DISCARDABLE_MEMORY_POOL_SIZE (128 * 1024 * 1024)
|
#if defined(SK_DEFAULT_RESOURCE_CACHE_MB_LIMIT) && \
|
||||||
|
SK_DEFAULT_RESOURCE_CACHE_MB_LIMIT > 0
|
||||||
|
#define SK_DEFAULT_GLOBAL_DISCARDABLE_MEMORY_POOL_SIZE \
|
||||||
|
(SK_DEFAULT_RESOURCE_CACHE_MB_LIMIT * 1024 * 1024)
|
||||||
|
#else
|
||||||
|
#define SK_DEFAULT_GLOBAL_DISCARDABLE_MEMORY_POOL_SIZE \
|
||||||
|
(128 * 1024 * 1024)
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif // SkDiscardableMemoryPool_DEFINED
|
#endif // SkDiscardableMemoryPool_DEFINED
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
#include "SkTArray.h"
|
#include "SkTArray.h"
|
||||||
#include "PdfRenderer.h"
|
#include "PdfRenderer.h"
|
||||||
#include "picture_utils.h"
|
#include "picture_utils.h"
|
||||||
|
#include "LazyDecodeBitmap.h"
|
||||||
|
|
||||||
__SK_FORCE_IMAGE_DECODER_LINKING;
|
__SK_FORCE_IMAGE_DECODER_LINKING;
|
||||||
|
|
||||||
@ -158,7 +159,9 @@ static bool render_pdf(const SkString& inputPath, const SkString& outputDir,
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
SkAutoTUnref<SkPicture> picture(SkPicture::CreateFromStream(&inputStream));
|
SkAutoTUnref<SkPicture> picture(
|
||||||
|
SkPicture::CreateFromStream(
|
||||||
|
&inputStream, &sk_tools::LazyDecodeBitmap));
|
||||||
|
|
||||||
if (NULL == picture.get()) {
|
if (NULL == picture.get()) {
|
||||||
SkDebugf("Could not read an SkPicture from %s\n", inputPath.c_str());
|
SkDebugf("Could not read an SkPicture from %s\n", inputPath.c_str());
|
||||||
|
Loading…
Reference in New Issue
Block a user