skia2/gn
Stephen White f3d5d44ec9 Dawn: staging manager rewrite.
Using many small staging buffers is quite costly for performance, for
example when there are many small texture uploads (such as MotionMark's
"canvas bouncing clipped rects" test).

Instead, the new manager uses buffers of 32K minimum, and returns
suballocations of those.

For now, allocation is simply iterates through the list of staging
buffers and returns the first one with enough remaining space.
This is O(N) in the number of staging buffers, which should be
ok since there are fewer of them. (If it becomes a hot path, we
can optimize it later.)

This also subsumes the UBO-specific staging buffer, since that one
did much the same thing but did not reuse staging buffers.

Change-Id: I4fddee8bb0fc602c49fe552acc327a640bf6917b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/279921
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>
2020-04-08 16:11:48 +00:00
..
toolchain Wrap copy-tool path in quotes. 2020-04-01 23:45:56 +00:00
__init__.py Make gn directory importable in python 2017-03-20 17:40:30 +00:00
bench.gni harmonize rewrite-includes and gn-format checks 2020-04-03 17:00:54 +00:00
BUILD.gn reformat GN files 2020-04-01 23:23:03 +00:00
BUILDCONFIG.gn reformat GN files 2020-04-01 23:23:03 +00:00
call.py [minor] mark scripts as executable 2019-11-21 17:06:27 +00:00
checkdir.py fix print functions for python3 gn scripts 2020-03-06 17:42:39 +00:00
checkpath.py Python3 tweaks 2019-12-17 17:12:03 +00:00
codesign_ios.py [minor] mark scripts as executable 2019-11-21 17:06:27 +00:00
compile_ib_files.py Reland "Add launch screen to iOS apps" 2019-09-05 14:05:08 +00:00
compile_processors.py moved files generated from .fp files into generated/ directories 2019-04-10 18:02:02 +00:00
copy_git_directory.py GN tools: copy_git_directory.py better error message. 2019-11-19 17:04:18 +00:00
core.gni harmonize rewrite-includes and gn-format checks 2020-04-03 17:00:54 +00:00
cp.py [minor] mark scripts as executable 2019-11-21 17:06:27 +00:00
create_sksl_enums.py [minor] mark scripts as executable 2019-11-21 17:06:27 +00:00
effects_imagefilters.gni Add new SkImageFilters factory API 2019-08-02 13:33:35 +00:00
effects.gni harmonize rewrite-includes and gn-format checks 2020-04-03 17:00:54 +00:00
find_headers.py Python3 tweaks 2019-12-17 17:12:03 +00:00
find_msvc.py fall back to vswhere.exe to find msvc 2020-03-08 23:57:16 +00:00
find_xcode_sysroot.py fix print functions for python3 gn scripts 2020-03-06 17:42:39 +00:00
flutter_defines.gni stage changing didCocnat44 virtual 2020-04-07 15:50:57 +00:00
fuchsia_defines.gni remove legacy hinting-enum guards 2018-11-28 20:15:03 +00:00
gen_plist_ios.py [minor] mark scripts as executable 2019-11-21 17:06:27 +00:00
gm.gni Remove gamma GM 2020-04-07 19:43:47 +00:00
gn_meta_sln.py fix print functions for python3 gn scripts 2020-03-06 17:42:39 +00:00
gn_to_bp_utils.py fix print functions for python3 gn scripts 2020-03-06 17:42:39 +00:00
gn_to_bp.py Remove mips workarounds for Android. 2020-03-13 18:46:26 +00:00
gn_to_cmake.py [infra] Change CMake build to use a temporary directory 2020-01-14 11:41:55 +00:00
gpu.gni Dawn: staging manager rewrite. 2020-04-08 16:11:48 +00:00
highest_version_dir.py fix print functions for python3 gn scripts 2020-03-06 17:42:39 +00:00
ios.gni harmonize rewrite-includes and gn-format checks 2020-04-03 17:00:54 +00:00
is_clang.py fix print functions for python3 gn scripts 2020-03-06 17:42:39 +00:00
make_gm_gni.py GMs: re-sort gni, script to regenerate gni, file name convention 2019-05-02 20:08:37 +00:00
opts.gni clean up SkBitmapProcState::platformProcs() 2018-12-03 21:24:31 +00:00
pdf.gni Make skia_use_xps option work on Windows 2020-03-24 17:09:33 +00:00
push_to_android.py skia_android_serial = "auto" 2017-01-12 16:30:17 +00:00
run_sksllex.py Revert "Revert "SkSL now supports null child processors"" 2019-02-22 17:50:30 +00:00
samples.gni harmonize rewrite-includes and gn-format checks 2020-04-03 17:00:54 +00:00
shared_sources.gni remove empty skia_for_chromium_defines 2019-01-17 17:37:01 +00:00
skia.gni harmonize rewrite-includes and gn-format checks 2020-04-03 17:00:54 +00:00
sksl.gni Switch back to stack-based SkSL interpreter 2020-04-03 17:20:04 +00:00
tests.gni harmonize rewrite-includes and gn-format checks 2020-04-03 17:00:54 +00:00
utils.gni harmonize rewrite-includes and gn-format checks 2020-04-03 17:00:54 +00:00
xps.gni harmonize rewrite-includes and gn-format checks 2020-04-03 17:00:54 +00:00