New issue
Advanced search Search tips

Issue 913151 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Dec 12
Cc:
Components:
EstimatedDays: ----
NextAction: 2018-12-17
OS: ----
Pri: 2
Type: Bug-Regression



Sign in to add a comment

Performance regression in validating command buffer between rev 613568 - 613785

Project Member Reported by jmad...@chromium.org, Dec 8

Issue description

I noticed this when looking at dashboards for ANGLE vs the old command buffer:

https://chromeperf.appspot.com/report?sid=3b11bf2aa2cf2281472588fed4dfc1e0a9f514ff10bd9db09cb208c5306ac3c9

There seems to be a spike that landed recently, blame list: http://crrev.com/613568..613785 

Kai can you triage this? There are a few potentially suspicious GPU changes in the list but nothing concrete. It's not an ANGLE issue as ANGLE is not used in the tests that regress.

This report is a bit easier to search:

https://chromium.googlesource.com/chromium/src/+log/232cd3cc7b245ba546b4c9ed202533238f63c434%5E..66ed852e522a88a88ec863099ecf1565bcf1ab9e?pretty=fuller&n=1000

Austin's recent work was the only thing that really jumped out.
 
I don't see any obvious issues.

I kicked off a Pinpoint bisect from the chromeperf graphs that you linked:
https://pinpoint-dot-chromeperf.appspot.com/job/116176f4140000

Hopefully that will identify the issue.
Sorry, pinpoint doesn't work on these tests because they use specific flags. You'll have to bisect manually or by deduce by inspection.
I wonder if it has to do with the transfer buffer stuff in enga's
https://chromium.googlesource.com/chromium/src/+/80f1e31950c38663e3678b9ba1fb38314e878f54
.
Oh, I didn't realize pinpoint wouldn't work. That's really unfortunate. I'll take a look.
Cc: kainino@chromium.org
Components: -Internals>GPU Internals>GPU>Internals
Owner: enga@chromium.org
Austin pointed out that
https://chromium.googlesource.com/chromium/src/+/27c146ce4c63e5ca72e6533fdf68ae4312e1c059
changes validation in DrawArrays.

decoder_basic_draw_100 only does Uniform2f and DrawArrays:
https://cs.chromium.org/chromium/src/gpu/command_buffer/tests/decoder_perftest.cc?l=568&rcl=d828088b0546192c7cb08fd8404ead6422e39cdf
and it also regressed in the same range.

So it seems likely that that is the cause.
😿 Pinpoint job stopped with an error.
https://pinpoint-dot-chromeperf.appspot.com/job/116176f4140000

All of the runs failed. The most common error (1/20 runs) was:
IOError: [Errno 2] No such file or directory: 'c:\\b\\s\\w\\it17jhfm\\tmpycssgitelemetry\\histograms.json'
Project Member

Comment 8 by bugdroid1@chromium.org, Dec 10

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a2415cc71d7214e6af04ae194e05f2650f147e51

commit a2415cc71d7214e6af04ae194e05f2650f147e51
Author: Austin Eng <enga@chromium.org>
Date: Mon Dec 10 22:38:16 2018

Add ALWAYS_INLINE to draw call validation and MultiDraw entrypoints

This fixes a performance regresion introduced by factoring validation

Bug:  chromium:913151 
Change-Id: I645f98e77fe3e5dccf6c2ab00e9ddde424dedf9c
Reviewed-on: https://chromium-review.googlesource.com/c/1370467
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
Cr-Commit-Position: refs/heads/master@{#615288}
[modify] https://crrev.com/a2415cc71d7214e6af04ae194e05f2650f147e51/gpu/command_buffer/service/gles2_cmd_decoder.cc

NextAction: 2018-12-12
Status: Started (was: Assigned)
Let's check this again in a few days (after we have a reasonable amount of data to average over) to see whether the regression is totally gone.
The NextAction date has arrived: 2018-12-12
Labels: -OS-Windows
NextAction: 2018-12-17
Status: Fixed (was: Started)
Results look great (possibly even better than before). I'd look at it again in a few more days just so we can quantify the improvement.
The NextAction date has arrived: 2018-12-17

Sign in to add a comment