New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 609673 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Apr 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Task



Sign in to add a comment

Use UNLIKELY() around GL error message generation.

Project Member Reported by jbau...@chromium.org, May 6 2016

Issue description

This might help performance by ensuring that code to generate GL errors is out-of-line and not loaded into the cache in the common case. Unfortunately I don't think UNLIKELY works on MSVC, though PGO (which we're looking into using) might offer some of the same benefits.

There might still be some code bloat caused by error message generation forcing variables to remain alive and in registers later than otherwise.
 
Cc: zmo@chromium.org geoffl...@chromium.org
Status: Available (was: Untriaged)
geofflang: Possible feature for MANGLE?
Cc: cwallez@chromium.org jmad...@chromium.org
Components: Internals>GPU>ANGLE
Don't think it needs to fall under the MANGLE project but this is certainly an optimization we could attempt.
It might be possible to bake it in the ANGLE_TRY macros, although we need to be careful that it can regress performance of unpredictable branches. I also thought clang had a function attribute to say that calling the function was unlikely, which we could have used on one of Error's constructors. I didn't find it though.
Project Member

Comment 4 by sheriffbot@chromium.org, Apr 13 2018

Labels: Hotlist-Recharge-Cold
Status: Untriaged (was: Available)
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue.

Sorry for the inconvenience if the bug really should have been left as Available.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Cc: piman@chromium.org vmi...@chromium.org
Labels: -Type-Feature Type-Task
Status: Available (was: Untriaged)
Now that we're on clang everywhere, maybe we should reprioritize this?
Labels: -Pri-3 Pri-2
Owner: geoffl...@chromium.org
Status: Assigned (was: Available)
Yes, this is much more doable now that we're on clang everywhere. ANGLE's error generation is wrapped in a macro so adding it should be easy.
Project Member

Comment 8 by bugdroid1@chromium.org, Apr 20 2018

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

commit 90e886d1638437a1346367e36bbff675a826fe66
Author: angle-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com <angle-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Date: Fri Apr 20 23:32:04 2018

Roll src/third_party/angle/ 3ec304dba..5f21df831 (8 commits)

https://chromium.googlesource.com/angle/angle.git/+log/3ec304dba28d..5f21df8318e9

$ git log 3ec304dba..5f21df831 --date=short --no-merges --format='%ad %ae %s'
2018-04-18 tobine Roll (1/2) LVL version forward and disable VANGLE
2018-04-19 ynovikov Use EGL_KHR_no_config_context in Android GLES backend, when available
2018-04-20 ynovikov Print more logs
2018-04-10 geofflang Refactor packed enum generation to support EGL enums.
2018-04-20 geofflang Use LIKELY and UNLIKELY macros to wrap error generation.
2018-04-20 jmadill Fix WebGL compat feedback loop null deref.
2018-04-19 tobine Make Mock ICD json file a data_dep of Mock ICD
2018-04-19 lucferron Refactor Texture::syncState to pass down the Context

Created with:
  roll-dep src/third_party/angle
BUG= chromium:609673 , chromium:834943 


The AutoRoll server is located here: https://angle-chromium-roll.skia.org

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.


CQ_INCLUDE_TRYBOTS=luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
TBR=jmadill@chromium.org

Change-Id: Ifbfe7a6eec5c1771a9ecf20a9cd31f5070758588
Reviewed-on: https://chromium-review.googlesource.com/1022720
Reviewed-by: angle-chromium-autoroll <angle-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Commit-Queue: angle-chromium-autoroll <angle-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#552520}
[modify] https://crrev.com/90e886d1638437a1346367e36bbff675a826fe66/DEPS

Status: Fixed (was: Assigned)
Implemented but didn't see any perf change so I'm not going to peruse using it in any more parts of ANGLE's code for now.

Sign in to add a comment