Re-land fixes the crash when drawing with no bound Program executable.
Currently we track feedback loops by counting the times a Texture is
bound as a sampler or image in a particular context. This is a bit
tricky because Texture bindings change frequently. Relative to the
number of times we need to check for a feedback loop this causes excess
overhead.
Usually Framebuffers have a low number of Textures bound (in many cases
just 1). And Textures aren't usually bound to many different FBOs. So
instead of counting the number of times a Texture is bound as a sampler
or image we will track the Framebuffers that the Texture is bound to.
This CL adds a small vector class to gl::Texture which tracks all the
Framebufer Serials of its bound Framebuffers. We can use this set to
quickly check if there's any potential feedback loop between the a FBO
and this Texture.
We also update the feedback loop check to use this new method. We will
be able to remove the old counting method when we switch the Vulkan
feedback loop handling to use the new tracking in this CL.
Bug: angleproject:4500
Bug: angleproject:4959
Change-Id: If2bd25b08298a99f5e64b4055137f9154b0f0860
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2365595
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Instead of just splitting commit messages at Change-Id line, now commit
messages will be split at the first blank line after a Change-Id line.
Bug: angleproject:4715
Change-Id: I39d69662560fd67d1361f13e81362c9a1a7af3bd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2279570
Commit-Queue: Manh Nguyen <nguyenmh@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Multiple commits are separated and format-checked separately.
Commit message is now taken solely from input_api.
Tags paragraph now covers the very last paragraph until the
first line that doesn't have a ":"
Bug: angleproject:4662
Change-Id: I84fe3fd1ffc30f6892a5c9dbe545acf24b0fc595
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2241617
Commit-Queue: Manh Nguyen <nguyenmh@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit message format check is currently unstable and
needs to be taken out until further improvement.
Bug: angleproject:4715
Change-Id: Ia4837c0cd800963f7cc8a0cf9d77f49fab1627fd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2239081
Commit-Queue: Manh Nguyen <nguyenmh@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
1. Lines starting with 4 spaces will not be checked for line length
2. Lines with no space in it will not be checked for line length
Bug: angleproject:4683
Change-Id: Ic648b8b1084762da208d89ee5fbff2b02b69cf12
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2230899
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Manh Nguyen <nguyenmh@google.com>
1. The first sentence description should be one line <= 64 characters
2. The description body should be wrapped to <= 71 characters
3. Blank lines between the description and the body,
and the body and the meta-tags like Bugs
Bug: angleproject:4662
Change-Id: I966c79d96175da9eee92ef6da20db50d488137b2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2218696
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Manh Nguyen <nguyenmh@google.com>
- run the same checks on 'git cl upload' as 'git cl pre'
- show the problematic line on non-ascii presubmit check
Bug: angleproject:4601
Change-Id: I321e22fd49f7a83aa062ebae01d13476e57044e3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2174075
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Clang format and non-ascii characters don't get along well, which are
typically introduced when copy/pasting spec language. This CL will
detect non-ascii characters during presubmit.
Bug: angleproject:4601
Test: git cl presubmit --upload
Change-Id: I80080fc04590ad47c9756f8f969d5c7f44d41793
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2173684
Reviewed-by: Shrek Shao <shrekshao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
Specifying the project name is now mandatory. This helps avoid
accidentally referring to chromium bugs by forgetting the project name.
At the same time, it ensures the project name is not misspelled.
Bug: angleproject:4184
Change-Id: I6bbfe1751e2fd0baf424be38018374cce360df5d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1969067
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Clarifies that gclient sync should happen before codegen to avoid using
stale hashes on upload.
Bug: angleproject:3227
Change-Id: I7777458b6fa659a07307ad1d845ac7d332afa8f2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1934313
Reviewed-by: Ethan Lee <flibitijibibo@gmail.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Having a Bug ID is not enough to silence this error,
the Bug ID must be on the line directly above the
Change ID line to prevent getting this error.
Bug: angleproject:3992
Change-Id: I90ec1169efb77c1be6a1004e579f16e89115be50
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1853604
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Alexis Hétu <sugoi@chromium.org>
This is a reland of c40a21f353
Changes: Fixed presubmit failing on Windows due to being unable
to find gn, fixed export_targets.py failing on Windows for
Googlers due to being unable to find Visual Studio files.
Original change's description:
> Add export_targets.py to presubmit
>
> Adds export_targets.py to run as part of presubmit in order to help
> prevent breaking Firefox with BUILD.gn changes.
>
> Bug: chromium:1003151
> Change-Id: I5a7ab00891cd7c094c797e6150f642f803a726b6
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1802038
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Bug: chromium:1003151
Change-Id: I321ade86f2d969601afb8e1ed61c36bf166887b5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1842127
Commit-Queue: Brian Sheedy <bsheedy@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
This reverts commit c40a21f353.
Reason for revert: Seems to be failing locally on Windows.
See bug for more info.
Original change's description:
> Add export_targets.py to presubmit
>
> Adds export_targets.py to run as part of presubmit in order to help
> prevent breaking Firefox with BUILD.gn changes.
>
> Bug: chromium:1003151
> Change-Id: I5a7ab00891cd7c094c797e6150f642f803a726b6
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1802038
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
TBR=ynovikov@chromium.org,bsheedy@chromium.org,jgilbert@mozilla.com,jmadill@chromium.org
Change-Id: Ic9a2eb58d847a40349e64b931c369f07c24b799c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:1003151
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1841877
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Adds export_targets.py to run as part of presubmit in order to help
prevent breaking Firefox with BUILD.gn changes.
Bug: chromium:1003151
Change-Id: I5a7ab00891cd7c094c797e6150f642f803a726b6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1802038
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
- clarifies error for run_code_generation hashes.
- makes missing format or bug tag an error.
- check for spaces in bug tags.
Bug: angleproject:3659
Change-Id: I069e60d8acdf070961bdf342acf976ddd1138b1b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1689019
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
This file changes a lot less than git HEAD. And it should guard against
the same changes. Should reduce the instances of developer confusion
regarding run_code_generation being out of data.
Also update the presubmit check to print a more helpful message in the
case where the code does need to be regenerated.
Bug: angleproject:3333
Change-Id: I190dab5be50fc42512bdfc11c2d200f34f3b2092
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1545123
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
These two checks are lifted directly from the Chromium code base. Also
adds a presubmit check for a patch description. Also adds some checks
to the "on commit" function so "git cl presubmit" can work.
Also reformats the style of the presubmit script a bit to match the
patterns in the Chromium presubmit.
Bug: angleproject:2626
Bug: angleproject:3054
Change-Id: Iff29b8856cf9eb9531e893cd0b0d80c0834b7676
Reviewed-on: https://chromium-review.googlesource.com/c/1403255
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
While here, added a presubmit test for the Bug: tag too.
Bug: angleproject:3046
Change-Id: I7030685230b4ce4bfc435c14ef85324e16b76274
Reviewed-on: https://chromium-review.googlesource.com/c/1402061
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>