try not zeroing registers in start_pipeline

Generally stages take care of state setup themselves, either with
seed_shader, constant_color, a load, etc.  I think these zeros may
be unnecessarily cautious.

This can't make anything draw more correctly, but it could make things
   - draw wrong
   - draw more slowly
   - draw more quickly
so it's an interesting thing to try and keep an eye on.

Change-Id: I7e5ea3cd79e55a65e1dbd214601e147ba3815b87
Reviewed-on: https://skia-review.googlesource.com/20976
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
This commit is contained in:
Mike Klein 2017-06-27 15:18:26 -04:00 committed by Skia Commit-Bot
parent 51329c944c
commit d08109f344
4 changed files with 5625 additions and 5851 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -53,7 +53,11 @@ using Stage = void(K* k, void** program, size_t x, size_t y, size_t tail, F,F,F,
#endif #endif
MAYBE_MSABI MAYBE_MSABI
extern "C" void WRAP(start_pipeline)(size_t x, size_t y, size_t limit, void** program, K* k) { extern "C" void WRAP(start_pipeline)(size_t x, size_t y, size_t limit, void** program, K* k) {
#if defined(JUMPER)
F v;
#else
F v{}; F v{};
#endif
auto start = (Stage*)load_and_inc(program); auto start = (Stage*)load_and_inc(program);
while (x + kStride <= limit) { while (x + kStride <= limit) {
start(k,program,x,y,0, v,v,v,v, v,v,v,v); start(k,program,x,y,0, v,v,v,v, v,v,v,v);

View File

@ -71,7 +71,11 @@ using Stage = void(K* k, void** program, size_t x, size_t y, size_t tail, F,F,F,
#endif #endif
MAYBE_MSABI MAYBE_MSABI
extern "C" size_t WRAP(start_pipeline)(size_t x, size_t y, size_t limit, void** program, K* k) { extern "C" size_t WRAP(start_pipeline)(size_t x, size_t y, size_t limit, void** program, K* k) {
#if defined(JUMPER)
F v;
#else
F v{}; F v{};
#endif
auto start = (Stage*)load_and_inc(program); auto start = (Stage*)load_and_inc(program);
while (x + kStride <= limit) { while (x + kStride <= limit) {
start(k,program,x,y,0, v,v,v,v, v,v,v,v); start(k,program,x,y,0, v,v,v,v, v,v,v,v);