|
400d9fe4
|
2022-04-23T01:08:19
|
|
Rename feature files to *_autogen.h
To clarify further that they are not to be edited by hand.
Bug: angleproject:6435
Change-Id: Iaf79706d2b688a43b3ebb65700cfbdd71a49a742
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3603842
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3bdbfbf8
|
2022-03-25T16:34:51
|
|
Vulkan: Adjust border color
Some border color tests used to fail due to either unclamped color
values or not accounting for depth, stencil or luma formats. We now
adjust the border color value according to the sampler's format.
Test: dEQP-GLES31.functional.texture.border_clamp.*
Bug: angleproject:3577
Bug: angleproject:6213
Change-Id: Ib38ce2374622bfafde69fe3fa2d7227d60043954
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3551895
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
42bd4fc2
|
2021-12-10T14:58:17
|
|
Metal: add ANGLE_metal_create_context_ownership_identity.
This Metal-specific EGL extension allows a given context
and the GPU resources it allocates to be associated with
a particular task ID on the system, for system-level
bookkeeping purposes.
Bug: angleproject:6795
Change-Id: I19ee0993564169b01c4a450e63dcfacd339b98b5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3335172
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
e00ad443
|
2021-11-15T20:16:16
|
|
Add EGL_ANGLE_vulkan_image extension
This extension is for exporting VkImage from EGLImage.
The VkImage must be used with the same VkDevice used by ANGLE
Vulkan backend.
Bug: chromium:1264439
Change-Id: I222d900465cf2716d94fc64f06e240390ec518ac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3285025
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
|
|
ce6f9c8f
|
2021-11-19T14:52:48
|
|
Update checked numerics library.
This library hadn't been updated in quite some time and had bugs
which affected UBSAN in some operators.
Bug: angleproject:5795
Change-Id: I40f658655034ce03df29cf4c71acb3f6fe96bef0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3289941
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
d8c18ac6
|
2021-10-08T13:00:19
|
|
Re-land: "Isolate commit_id.h from other code."
Re-land limits the angle_version deps to Windows to fix an iOS
visibility rule violation in GN.
Instead of recompiling multiple source files, we can seal off the
files that include commit_id to prevent recompilations when the
commit changes and source files don't change.
Bug: angleproject:2551
Change-Id: I033f00ec7afe4bfd01e29e0eea8848eea27747a0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3233899
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
9a7b62ad
|
2021-10-19T15:21:31
|
|
Remove glext_angle.h, merge contents into gl2ext_angle.h
Currently glext_angle.h file, which is for GLES 1.x, has enums for
GL_ANGLE_yuv_internal_format which is an ES 3.0+ extension.
Merge contents of glext_angle.h into gl2ext_angle.h and remove
glext_angle.h
Bug: angleproject:6579
Change-Id: Iec5427af131888a2d9c473f4f497afb71dcafdac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3232822
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
7defdb60
|
2021-10-19T14:07:07
|
|
Revert "Isolate commit_id.h from other code."
This reverts commit 6d7ebf656d06f1152967aa5f4457d3787a24732c.
Reason for revert: Suspected reason for failing ANGLE roll into Chromium
Original change's description:
> Isolate commit_id.h from other code.
>
> Instead of recompiling multiple source files, we can seal off the
> files that include commit_id to prevent recompilations when the
> commit changes and source files don't change.
>
> Bug: angleproject:2551
> Change-Id: I98800c5a8e04ec7d4c3e57ea0eb3b636d3b224bb
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212895
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Bug: angleproject:2551
Bug: angleproject:6588
Change-Id: I19f41141f57d0683efb9a4ec043e078a9f7dc925
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3226056
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
6d7ebf65
|
2021-10-08T13:00:19
|
|
Isolate commit_id.h from other code.
Instead of recompiling multiple source files, we can seal off the
files that include commit_id to prevent recompilations when the
commit changes and source files don't change.
Bug: angleproject:2551
Change-Id: I98800c5a8e04ec7d4c3e57ea0eb3b636d3b224bb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212895
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
7aba3bc5
|
2021-10-14T23:14:37
|
|
Vulkan: Use a CircularBuffer helper class in SurfaceVk
There are two instances of circular buffer in SurfaceVk. A common
helper class is introduced by this change to consolidate the
implementation.
This is in preparation for a follow up change that introduces yet
another circular buffer in this class.
Bug: angleproject:6401
Change-Id: Id01b585567310a2528888114239a5c80ff93f1ee
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3225084
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
b918b1c6
|
2021-09-10T16:44:59
|
|
Auto-generate GLES extensions.
Uses the data from registry.xml combined with gl.xml to produce the
necessary header and source file with the strings map. Also updates
the list of supported extensions. Several extensions were missing
from the supported extensions map.
ARB_sync and NV_robustness_video_memory_purge require some specific
tweaks to get the generator to accept them as gles extensions.
Also includes a generate markdown file that lists supported exts.
Bug: angleproject:6379
Change-Id: I95bd589aa31a62b4a008de24408c7823a49023ed
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3157418
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
c5a38976
|
2021-09-01T07:35:40
|
|
Capture/Replay: Add expression trigger validation calls.
Setting the environment variable "ANGLE_CAPTURE_VALIDATION_EXPR"
will make ANGLE's capture logic evaluate this expression every
captured call to see if it should insert a validation checkpoint.
The retracing script also accepts --validation-expr as an argument.
For instance, the expression:
((frame == 2) && (call < 1189) && (call > 1100) && ((call % 5) == 0))
Will insert validation checkpoints on frame 2, between calls 1100 and
1189 and will validate every 5th call. The 'call' here is the count of
captured calls, which are mostly GL calls with a few ANGLE replay
calls in the mix.
We add a small single-header library that can evaluate arthithmetic
expressions in order to parse these expressions, as well as an option
to the retracing script.
Bug: angleproject:5133
Change-Id: Ic369e85d8e905a3a7a32fa098f7d8ebe7baf4ab9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3136094
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
75c0d67c
|
2021-07-16T18:05:36
|
|
Build fixes needed by Firefox circa 2021-feb.
Bug: angleproject:6187
Change-Id: Ife2c9f08ca213358b8fb06a858664d235a860730
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3036592
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
232e5236
|
2021-07-08T15:08:35
|
|
Remove the explicit context extension.
This extension currently has no known users and doubles the
number of entry points that ANGLE exports which is a significant
binary size cost.
This saves about 130kb of binary size on Android.
Bug: chromium:1084580
Change-Id: Ib0fc4930b38a33bd61434f7d0030ba9fb9b93ba7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3015518
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
45965e72
|
2021-06-17T10:21:26
|
|
Vulkan: Translate border color's channel by image view format
ANGLE implementes some formats as other formats,such as ALPHA8 to R8,
this caused some tests failed due to missing border color's channel
translation,this change add a new textureBorderLoadFunction to
translate channels of border color by image view format.
Bug: angleproject:6046
Change-Id: I94ce719b4db3724ffd3dc862b51a412b5d9f3cce
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2972328
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
44a5c913
|
2021-06-17T09:29:29
|
|
CL: Make CL front end and back end thread-safe
Add locking to all mutable variables of the CL objects in the
front end and pass-through back end to make them thread-safe.
This fixes a crash in a multi-threaded CTS test.
Bug: angleproject:6015
Change-Id: I1d6471c851217639411c434c82acd32d14035291
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2967468
Commit-Queue: John Plate <jplate@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
69562546
|
2021-06-11T19:12:11
|
|
CL: Refactor info structs and fix conformance bug
- Remove variable name prefix from Info structs to be more consistent
with other ANGLE structs.
- Fix CL object validation check with magics, since the Mesa solution
doesn't work without RTTI.
- Add support for some extensions required by OpenCL 1.1 and for some
optional extensions.
- Fix more conformance bugs.
Bug: angleproject:6015
Change-Id: I41b1c45d95059a9994f5dc78bf9b74476cc6f2d4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2956349
Commit-Queue: John Plate <jplate@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
076974a9
|
2021-05-28T11:44:54
|
|
CL: event creation for front end & passthrough
Add event object to back end and implement creation and info query.
Bug: angleproject:6001
Change-Id: Id4951b726b66afa289fafe1a716a7cfdb6f5826d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2925477
Commit-Queue: John Plate <jplate@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
9459456b
|
2021-05-27T13:43:41
|
|
CL: kernel creation for front end & passthrough
Add kernel object to back end and implement creation and info query.
Bug: angleproject:6001
Change-Id: I6e3fdd2b35d7e73ed56144dc938bf21436d3559f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2922150
Commit-Queue: John Plate <jplate@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
51ab3dc3
|
2021-05-25T16:54:11
|
|
CL: Improve validation readablity
Improve validation readablity by introducing a bit field class
and by changing how the CL error code is returned.
Bug: angleproject:6001
Change-Id: I51deb745454e5281de725481edef85eb30be28c7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2919690
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: John Plate <jplate@google.com>
|
|
1aa88398
|
2021-05-24T14:19:05
|
|
CL: program object creation for front end and pass-through
Add program object to back end and implement creation and info query.
Bug: angleproject:6001
Change-Id: If94db8ab8b491e1ac21c767347cabb6f4f3b3cba
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2912465
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: John Plate <jplate@google.com>
|
|
e3dd7161
|
2021-05-24T12:47:38
|
|
CL: sampler object creation for front end and pass-through
Add sampler object to back end and implement creation and info query.
Bug: angleproject:6001
Change-Id: If5b7d09564d773d6aeda7612728e19bfec7f6155
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2912806
Commit-Queue: John Plate <jplate@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
a6210a8f
|
2021-05-23T19:02:46
|
|
CL: image object creation for front end and pass-through
Add image object to front end and implement creation and info query.
Cache more Device info for Image validation.
Bug: angleproject:5956
Change-Id: I38374f4c2c85287109c464ac90eb1bf49b07fa0a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2912805
Commit-Queue: John Plate <jplate@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
efd8da4d
|
2021-05-21T15:39:11
|
|
CL: buffer object creation for front end and pass-through
Add Buffer object to front end and Memory object to back end.
Implement creation of buffer and sub-buffer objects.
Make cl::Object destructor virtual to support destruction of Buffer.
Cache more Device info for Buffer validation. Add missing and move
existing version checks into validation.
Bug: angleproject:5956
Change-Id: Iea7665be5f6bdd8469e81f5fe4935a9fb0e03436
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2912677
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: John Plate <jplate@google.com>
|
|
6622d2b4
|
2021-05-18T21:26:39
|
|
CL: command queues for front end and pass-through
Bug: angleproject:5956
Change-Id: I6d9d4e4e7dfc5402408e3b002e66e4eae752967d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2903091
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: John Plate <jplate@google.com>
|
|
a7ae63e4
|
2021-05-14T21:55:52
|
|
CL: Move object cast from entry points to stubs and front end
Move the OpenCl object cast from the generated entry points to the
stubs and front end, to make it possible to properly use static_cast.
This removes the limitation that the front end objects have to be
standard layout (and makes it possible to use virtual functions),
which is consistent with other front end objects.
Move the back end initialization from the stubs to the entry point
functions, which fixes a bug where the back ends were not initialized
during validation.
Move more code from the stubs to the front end, to keep the stubs
light.
Remove unused function `default_return_value` from
`generate_entry_points.py`.
Bug: angleproject:5904
Change-Id: Id999ad6c537888017bf3252c6f6e088b7d4c7984
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2897245
Commit-Queue: John Plate <jplate@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
48b835cf
|
2021-05-09T22:47:00
|
|
CL: Implement context for front end and passthrough
Bug: angleproject:5904
Change-Id: I23b764bba87be3a51a1b5b44b13968fc572efde9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2883773
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: John Plate <jplate@google.com>
|
|
e369a282
|
2021-05-08T14:08:28
|
|
Implement CL device object for front end and passthrough
Bug: angleproject:5904
Change-Id: I17f6d10ed59c62fe9126d29b7de2c127c5d0039a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2880662
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: John Plate <jplate@google.com>
|
|
dfe208f1
|
2021-04-28T18:26:00
|
|
Add loader for CL pass-through back end
Bug: angleproject:5904
Change-Id: If4960f3150f6bbc85a30f0f6ac5c9e668e6ff756
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2864022
Commit-Queue: John Plate <jplate@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
05fb2272
|
2021-04-27T19:31:31
|
|
Add support for OpenCL ICD Loader
Bug: angleproject:5908
Change-Id: Idafc0d15b69f9a21f2ab5e48c4c34f0dc0e0ee96
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2854598
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: John Plate <jplate@google.com>
|
|
16a919b1
|
2021-04-27T11:36:11
|
|
Add stubs for CL platform layer back ends
Bug: angleproject:5904
Change-Id: If23c7f76013a17c3c67c13194566438035beb3d1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2853582
Commit-Queue: John Plate <jplate@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
cddb2003
|
2021-04-23T18:26:51
|
|
Stubs for CL validation entry points
Bug: angleproject:5775
Change-Id: Ic3b15efdf602bad8f5f170f03ba24b421a398ca8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2848504
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: John Plate <jplate@google.com>
|
|
e25f3b10
|
2021-04-21T21:43:46
|
|
Generate empty CL object classes
Bug: angleproject:5886
Change-Id: I01566f40e85bd7f5531536fdc1df42965622a939
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2844969
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: John Plate <jplate@google.com>
|
|
8226dc23
|
2021-04-15T19:25:31
|
|
Generate CL enums in libGLESv2
Bug: angleproject:5869
Change-Id: Ie547d415bed37accef6cb62d28bc6b088a1eb810
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2829370
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: John Plate <jplate@google.com>
|
|
8994fc7b
|
2021-04-12T19:46:11
|
|
Migrate CL entry points to libGLESv2
Bug: angleproject:5759
Change-Id: I79644e7bda3ad0a15eb041b2805b8765c0d22029
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2822258
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: John Plate <jplate@google.com>
|
|
1d7046ca
|
2021-04-12T16:17:22
|
|
Generate CL stubs in libGLESv2
Bug: angleproject:5758
Change-Id: I6440dacf0db57a56923d2cab5a7c791981ba3b9d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2822248
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
67e4aff5
|
2021-04-02T13:17:00
|
|
Fix rapidjson build error in Skia.
Instead of using defines in the header, use the same approach as we do
with frame capture by defining a stub "mock" cpp file.
Bug: angleproject:5805
Change-Id: Ief1cb6497ddafc9656bb0e7d6a921eff3610a7fb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2801695
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
06d194e2
|
2021-01-10T14:29:44
|
|
Reland "Add support for building in Flutter Windows UWP configuration"
This is a reland of 68ac4e43aa67c4bac9df639d80079648ea86dbe9
Original change's description:
> Add support for building in Flutter Windows UWP configuration
>
> Bug: angleproject:5527
> Change-Id: Idf5a4cbb6f84b24fa2448157cab1b6a3bce4d8be
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2620580
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Bug: angleproject:5527
Change-Id: I3d5c3a35d73e3946ae40c779e76e0343039bf660
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2693639
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
|
|
6fc10389
|
2021-02-10T11:20:16
|
|
Move Frame Capture to capture/ folder.
This will make it easier to trigger the trace tests when these files
are modified.
Bug: angleproject:5530
Change-Id: I5f0c450595b380cd91b20c1477dc1845bee35dd9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2686120
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
0739f07a
|
2021-01-19T23:54:20
|
|
Revert "Add support for building in Flutter Windows UWP configuration"
This reverts commit 68ac4e43aa67c4bac9df639d80079648ea86dbe9.
Reason for revert: Crashes Chrome GPU process startup on Windows x86
See crbug.com/1168272
Original change's description:
> Add support for building in Flutter Windows UWP configuration
>
> Bug: angleproject:5527
> Change-Id: Idf5a4cbb6f84b24fa2448157cab1b6a3bce4d8be
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2620580
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
TBR=geofflang@chromium.org,stuart.morgan@gmail.com,jmadill@chromium.org,james@clarkezone.io
# Not skipping CQ checks because original CL landed > 1 day ago.
Tbr: jmadill@chromium.org
Bug: angleproject:5527, chromium:1168272
Change-Id: Ifb37c8026253c6a7c334d5b6c83018c888a9f51c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2638572
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
|
|
68ac4e43
|
2021-01-10T14:29:44
|
|
Add support for building in Flutter Windows UWP configuration
Bug: angleproject:5527
Change-Id: Idf5a4cbb6f84b24fa2448157cab1b6a3bce4d8be
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2620580
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
5b8dec52
|
2021-01-12T04:11:56
|
|
Reland "Use is_apple instead of is_mac and is_ios everywhere"
This reverts commit 51603c63d1cb9e36afaf2069fc069e542ac2f3fb.
Reason for revert: Fixed issue that broke Skia build
Original change's description:
> Revert "Use is_apple instead of is_mac and is_ios everywhere"
>
> This reverts commit 2762641a3a1edf9665a61f40da6c160338056cb0.
>
> Reason for revert: is_apple is not universally defined. Breaks ANGLE roll into Skia.
>
> Original change's description:
> > Use is_apple instead of is_mac and is_ios everywhere
> >
> > Bug: chromium:1161513
> > Change-Id: Id7d582f127f4b79ea6fc5b8ad39fff768c45f477
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2611312
> > Reviewed-by: James Darpinian <jdarpinian@chromium.org>
> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
>
> TBR=jdarpinian@chromium.org,syoussefi@chromium.org
>
> Bug: chromium:1161513
> Change-Id: I831e60149f410044a79d9f66aa9ddd9902410fd7
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2618039
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
TBR=jdarpinian@chromium.org,syoussefi@chromium.org
Bug: chromium:1161513
Change-Id: I3cf30aa047a1f208fa7d1acda1d6d4e5da7b6ad5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2622244
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
51603c63
|
2021-01-08T17:49:52
|
|
Revert "Use is_apple instead of is_mac and is_ios everywhere"
This reverts commit 2762641a3a1edf9665a61f40da6c160338056cb0.
Reason for revert: is_apple is not universally defined. Breaks ANGLE roll into Skia.
Original change's description:
> Use is_apple instead of is_mac and is_ios everywhere
>
> Bug: chromium:1161513
> Change-Id: Id7d582f127f4b79ea6fc5b8ad39fff768c45f477
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2611312
> Reviewed-by: James Darpinian <jdarpinian@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
TBR=jdarpinian@chromium.org,syoussefi@chromium.org
Bug: chromium:1161513
Change-Id: I831e60149f410044a79d9f66aa9ddd9902410fd7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2618039
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2762641a
|
2021-01-05T23:00:14
|
|
Use is_apple instead of is_mac and is_ios everywhere
Bug: chromium:1161513
Change-Id: Id7d582f127f4b79ea6fc5b8ad39fff768c45f477
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2611312
Reviewed-by: James Darpinian <jdarpinian@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
0dbe7cdd
|
2020-12-08T12:24:35
|
|
iOS testing support
angle_white_box_tests build and runs and passes on the iOS
simulator with this change. angle_end2end_tests builds and runs but
crashes.
Bug: angleproject:4256
Bug: angleproject:5417
Change-Id: I8817e46415c4598cbfae49804727a2e9b21baff1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2600361
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
dea86294
|
2020-12-02T16:26:03
|
|
iOS build support
libGLESv2 builds with these changes on iOS, iOS Simulator, and
Mac Catalyst, using CGL or EAGL as appropriate. Tests will
require more work. Fixed several errors in the EAGL code which
hadn't been detected because the code wasn't built.
Bug: angleproject:4256
Bug: angleproject:5417
Change-Id: I29072d82607ef2500732c5cc00318fdab4a46b31
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2570211
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
|
|
0be3f296
|
2020-11-30T17:27:39
|
|
Entry Points: Combine desktop GL minor versions.
This reduces the proliferation of small entry point files.
Bug: angleproject:2621
Change-Id: Ib882fd9e32e165279439d5d6cab7205eae0732ac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2566592
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
3f564fc7
|
2020-11-23T13:59:17
|
|
EGL: Generate entry points.
This adds two final auto-generated files for the EGL and EXT extension
entry points. It adds a new data file that stores a mapping between
object types and entry points for associating labeled objects with
certain methods. When we generate errors we record the associated
object in the debug message output.
This places the remainder of the hand-written code in "stub" files.
Going forward the work for implementing new extension entry points
for EGL will be to update the registry XML files and then implement
the corresponding stub methods. Event logging, parameter packing,
and validation are all handled by the auto-generated code.
Bug: angleproject:2621
Change-Id: I28153432802c37b929ff2ea1e1a3e3ce9de91605
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2562680
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
9528641b
|
2020-11-23T15:47:09
|
|
EGL: Generalize the entry point enum.
This both generalizes the GL entry point enum to include other APIs
like EGL and inserts the EGL and WGL entry points into the enum.
This will faciliate EGL entry point auto-generation and also frame
capture for EGL entry points.
Bug: angleproject:2621
Change-Id: Iaf4310e03b3d55839dd1328362fb29dcef918fab
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2555861
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
0a5bc0ce
|
2020-11-22T12:31:45
|
|
EGL: Auto-generate "libEGL" export cpp file.
This steps towards full auto-generation of EGL entry point files.
Bug: angleproject:2621
Change-Id: I629447bb6754ee1e87bef020de21b28e37e20eaf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2552774
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
11c81534
|
2020-11-22T09:39:51
|
|
EGL: Auto-generate entry point headers.
This steps towards the goal of auto-generating EGL entry points.
Also cleans up some EP definition inconsistencies.
Bug: angleproject:2621
Change-Id: I94dcf3d080b6864bca3f9db6c4c01429f4f8b91f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2553968
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
3efa290d
|
2020-11-19T14:36:16
|
|
EGL: Auto-generate validation header.
This is a first step towards auto-generating more EGL code. It
includes format handling for all the EGL parameter types, type
reinterpretation for EGL types using the "packed enum" handling,
and code refactoring to support the new consistent validation
entry point pattern.
Bug: angleproject:2621
Change-Id: I2740e82928db311aa934825cbe74bd75bf49c33c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2552976
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
e53efb18
|
2020-11-03T16:22:19
|
|
Allow choosing EAGL or CGL at runtime
Dean Jackson made this change downstream in WebKit:
https://bugs.webkit.org/show_bug.cgi?id=216722
Change ANGLE to dynamically load either EAGL (OpenGLES) or CGL (OpenGL)
depending on both compile and runtime configurations.
Intel Mac -> CGL
Intel Mac Catalyst -> CGL
Intel iOS Simulator -> EAGL
iOS Device -> EAGL
Apple Silicon Mac -> CGL
Apple Silicon Mac Catalyst (with Mac app) -> CGL
Apple Silicon Mac Catalyst (with iOS app) -> EAGL
The trickiest bit is Apple Silicon Mac Catalyst, which depends on the
type of the application it is attempting to run. In that case ANGLE must
compile both the CGL and EAGL interfaces and then pick one to use after
launch.
Bug: angleproject:5253
Change-Id: Iba167b3cc3105e457dcfc9bc14147d0fc3e70bac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2500185
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
00a49766
|
2020-10-14T10:27:56
|
|
EGL: Implement EGL_KHR_reusable_sync
Add extension string and flags
Add EGLReusableSync files to libANGLE and gni
Test: angle_deqp_egl_tests
--deqp-case=dEQP-EGL.functional.reusable_sync.*
--deqp-case=dEQP-EGL.functional.fence_sync.*
Bug: angleproject:5168
Change-Id: I967a10cf387047c9ee1963acfc854a8288325a8e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2477293
Commit-Queue: Jeff Vigil <j.vigil@samsung.com>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
98117b9d
|
2020-10-07T12:44:10
|
|
Move entry point enum utils to common.
These are now used in debug.cpp.
Bug: angleproject:5131
Change-Id: Ibe1f0e3e2919a9e2f2b85c3ed80a77617266913e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2451973
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
|
|
f024f54b
|
2020-09-24T12:05:38
|
|
Explicitly filter assignments to sources variable
set_sources_assignment_filter() is considered as a mis-feature
of gn (as it makes it difficult to reason about the BUILD.gn
files individually).
Change libGLESv2.gni in angle to check the platform before
adding plaform-specific source files to "sources" variable.
This will allow removing the global sources assignment filter
from Chromium codebase.
Bug: chromium:1018739
Change-Id: I5db637a583d9cf547f6f175baa445d47751e6a3c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2428763
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e78d9a61
|
2020-07-24T11:58:45
|
|
Convert unordered_map to absl::flat_hash_map for select files
This is the initial CL to start migrating to abseil in various places:
- formatutils.h
- FramebufferVk.h
- Program.h
- ProgramExecutableVk.h
- RewriteRowMajorMatrices.cpp
This intentionally hits a couple different places in the code to make
sure the abseil dependencies are added to the required targets.
Bug: angleproject:4873
Change-Id: Idd6084dff2ebce47833f304c605bbf3151b97414
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2402382
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
bb96aefa
|
2020-09-11T13:50:09
|
|
GN: Componentize D3D back-ends.
This also isolates headers for D3D9 / D3D11 from each other.
Bug: angleproject:3943
Change-Id: I04edbe7db68461ae4fc78ac7f9c22451debcb768
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2405807
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
2d74170f
|
2020-09-11T12:30:04
|
|
GN: Componentize GL back-end.
Bug: angleproject:3943
Change-Id: I88c2ec8a9f49746f6ce9838b0d1c8e8ea0a8ae9d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2405806
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
4d3a0f60
|
2020-09-11T12:36:05
|
|
GN: Componentize D3D format tables.
These tables are used by both the GL and D3D11 back-ends. Also moves
them to renderer_utils to be in a shared place.
Bug: angleproject:3943
Change-Id: I1f5d79842396a87e795547fa03c6855d6f9c5e9a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2405805
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
852f61f7
|
2020-09-11T11:54:35
|
|
GN: Componentize "Null" back-end.
This moves more build configuration out of libGLESv2.gni.
Bug: angleproject:3943
Change-Id: I58293f98c917e785cdf3bb1beb706f02ee8a3801
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2405800
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
90a9cf96
|
2020-09-11T02:40:34
|
|
Expand is_linux to is_linux || is_chromeos.
Currently is_linux is set to true on Chrome OS build,
but it is planned to set to false. This CL is the preparation
to keep the current behavior.
Bug: chromium:1110266
Test: Built locally. Tryjob.
Change-Id: I4124dfb251d68a519fed3e08555d1aa5a694c77c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2404500
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
8d412db2
|
2020-08-29T22:25:18
|
|
Revert "Convert unordered_map to absl::flat_hash_map for select files"
This reverts commit 1acaf4eced42a26f09b4d9180a9e5db0f37bc9a4.
Reason for revert: Fails when is_component_build is not set:
lld-link: error: <root>: undefined symbol: public: __cdecl absl::Condition::Condition<struct std::__1::atomic<bool> const>(bool (__cdecl *)(struct std::__1::atomic<bool> const *), struct std::__1::atomic<bool> const *)
<snip>
Original change's description:
> Convert unordered_map to absl::flat_hash_map for select files
>
> This is the initial CL to start migrating to abseil in various places:
> - formatutils.h
> - FramebufferVk.h
> - Program.h
> - ProgramExecutableVk.h
> - RewriteRowMajorMatrices.cpp
>
> This intentionally hits a couple different places in the code to make
> sure the abseil dependencies are added to the required targets.
>
> Bug: angleproject:4873
> Change-Id: I68c7d067b6912b0cc0ecde231501dbed92f0b189
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2321735
> Commit-Queue: Tim Van Patten <timvp@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Charlie Lao <cclao@google.com>
TBR=timvp@google.com,jmadill@chromium.org,cclao@google.com
Change-Id: I75041532fc5126b4c7cc5e0d4529883fb357e05b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:4873
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2383870
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
1acaf4ec
|
2020-07-24T11:58:45
|
|
Convert unordered_map to absl::flat_hash_map for select files
This is the initial CL to start migrating to abseil in various places:
- formatutils.h
- FramebufferVk.h
- Program.h
- ProgramExecutableVk.h
- RewriteRowMajorMatrices.cpp
This intentionally hits a couple different places in the code to make
sure the abseil dependencies are added to the required targets.
Bug: angleproject:4873
Change-Id: I68c7d067b6912b0cc0ecde231501dbed92f0b189
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2321735
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
8970ad3f
|
2020-08-26T12:59:19
|
|
Fix Linux build with Skia.
Bug: skia:7647
Change-Id: I6bb33a98d69400c9d95fb9d028d29a3e470067e3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2377291
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
57393152
|
2020-08-16T00:08:09
|
|
Auto-gen more Overlay code.
We add a new header where we auto-generate the Widget ID. We also use
a new X macro to generate per-widget arrays and tables.
Bug: angleproject:4965
Change-Id: Ic53e5d1c47d5712a63c98c481c15f550f1f99692
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2358520
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
ee9c4fe4
|
2020-07-14T15:29:40
|
|
D3D: Make possible to build angle without D3D11
A few files inside the D3D11 tree are used by D3D9 and WGL backends. We
add these files to the build system even when D3D11 is disabled.
Also, we fix the use the of ANGLE_DEFAULT_D3D11 symbol.
Bug: angleproject:4839
Change-Id: I981f4bfc60d973c02549caa737c5aed5ccf31282
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2298143
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
dc9743fb
|
2020-07-14T11:33:29
|
|
Add buffer serialization capability
Serializes buffers' states stored on CPU.
Gets buffers contents on GPU by mapping buffers to CPU's address space,
then copy their data. Unmap buffers after finish. Since this feature is
for tests only, it is only implemented for the Vulkan backend.
Adds buffer serialization to serializeContext method so that capture
replay regresssion testing now compares the states of buffers too.
Bug: angleproject:4817
Change-Id: Ic9b529701014d5ba8420023a021cd5ea381bd9a1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2295950
Commit-Queue: Manh Nguyen <nguyenmh@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
dce37b7d
|
2020-06-21T22:27:06
|
|
Serialize framebuffers + compare contexts for CaptureReplayTests
Adds to frame capture the ability to serialize a frame's pre-swap
GL state and store it in the binary data file
Adds to CaptureReplayTests the ability to compare its serialized GL
state with the serialized state pulled from the binary data file
Adds a serialization module that serializes framebuffers' GL states
and the contents of their color attachments
Adds checks to automation script so that it would skips tests that
do not produce the expected trace files
Adds exception handling to automation script so that it will not crash
when a replay build crashes
Bug: angleproject:4779
Change-Id: I40a02e018073749e79f0ddbfd3d4065745548f46
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2258295
Commit-Queue: Manh Nguyen <nguyenmh@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
4e6f6545
|
2020-04-16T16:31:24
|
|
GLX: Support X11 pixmaps
Add support for creating EGL pixmaps from X11 pixmaps using GLX.
Pixmaps are needed for various external APIs such as VAAPI.
Add support for EGL_NOK_texture_from_pixmap to allow binding
pixmaps to textures.
BUG=angleproject:4560
Change-Id: I4a6d3ad7e87151ff5317bbdaaf093ac1b46daf5f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2153805
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
0df92012
|
2020-06-03T17:08:43
|
|
Rename Platform.h to PlatformMethods.h.
"platform.h" is too common a name and causes headers to be
included incorrectly. Disambiguate the header using a more
specific name.
Solves a problem that came up with the GLES 1 tests and the
standalone test harness.
Bug: angleproject:3162
Change-Id: I88229a2c9407e0db57f5beee44daa11a4075f700
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2229065
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
56a4cc12
|
2020-05-21T13:17:21
|
|
Rename DisplayOzone to DisplayGbm.
DisplayOzone doesn't really have anything related to Ozone.
Instead, it's the gbm platform that is used there. Thus,
rename it to DisplayGbm.
Bug: chromium:1084458
Change-Id: I4d974f6afbf0daa28fc3e83943b35814dca203fd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2211763
Reviewed-by: Michael Spang <spang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
85ae836f
|
2020-03-30T16:03:47
|
|
GL: Implement EGL_EXT_image_dma_buf_import
Add support for the EGL_EXT_image_dma_buf_import on EGL implementations
that support it natively. This extensin is used on ozone to import
native compositing buffers.
This patch also adds new tokens in EGL_EXT_image_dma_buf_import_modifiers
which are used in eglCreateImageKHR.
BUG=angleproject:4529
Change-Id: I49bff831b591fb19fcdcec1145c7a61f5d8020c4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2128190
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
405f8e7b
|
2020-02-24T17:38:10
|
|
Vulkan: Support Program Pipeline Objects
Add support for PPOs to the Vulkan back end.
Bug: angleproject:3570
Change-Id: I5403456929847c185467b008d810f31ecfcb60cc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2072652
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
7e0699a2
|
2020-02-05T17:04:06
|
|
Create the ProgramExecutable Class
The ProgramExecutable class is being created to collect data structures
that are common to both Programs and ProgramPipelines, as well as any
shared functions. This allows callers to request the current
ProgramExecutable from the State and make
Program-/ProgramPipeline-specific queries without needing to know
exactly which responded. This will also allow the necessary data
structures to only be populated and stored within the ProgramExecutable
when necessary and reused as often as necessary.
Bug: angleproject:3570
Change-Id: I101f08ab03421894667b4a426a04d2147489f0e1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2040512
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
07467b4a
|
2020-03-20T10:40:56
|
|
Remove GL_CHROMIUM_path_rendering
Bug: chromium:1063193
Bug: angleproject:4270
Change-Id: I35b24b7d8d892181955e49dd2495655bc57cb0df
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2112275
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
c4197713
|
2019-06-03T19:23:02
|
|
Implement glImportMemoryZirconHandle & glImportSemaphoreZirconHandle
Implement import of fuchsia external objects passed by zircon handle. This
works exactly the same as with file descriptors.
Bug: angleproject:3492
Change-Id: I4d46917dfc5902f00c94550158a9f8073097f0a4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1642334
Commit-Queue: Michael Spang <spang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
b630bf9e
|
2020-01-24T17:27:01
|
|
Fuchsia: Implement SystemInfo on Fuchsia
The Android vulkan code is reusable, so move that to a new file
SystemInfo_vulkan.cpp and call it in the Android & Fuchsia
implementations. This is necessary to skip tests based on GPU.
Bug: angleproject:4349, angleproject:4352
Change-Id: I8330cfcdbd41f4d51391bd5ed7f0820c55e02801
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2023909
Commit-Queue: Michael Spang <spang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
5eadaf85
|
2020-01-13T17:21:53
|
|
Fix and improve UWP build.
Reorganizes the build files to work with a more divided setup. It is
unclear if we'll ever be able to run tests in a UWP config. This at
least sets up the organization so it would at some point be possible.
Bug: angleproject:4182
Change-Id: I49dddfcdc0118b11466fe171f949c28d101ac6a2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1953484
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
12ce8f68
|
2020-01-03T16:40:06
|
|
Upstream WebKit's iOS port of ANGLE.
Added the EAGL backend authored by Dean Jackson from Apple, and the
refactoring changes needed to support it side-by-side with the macOS
backend. Ran "git cl format" against these diffs.
Defined the EGL_ANGLE_device_eagl extension and allocated an enum out
of ANGLE's reserved range.
The iOS backend is not yet included in any of the GN files.
Bug: angleproject:4263
Change-Id: I631c32930433c03bb16a242955ffedf55174bb29
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1987278
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: James Darpinian <jdarpinian@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
d50151d3
|
2019-12-17T13:57:12
|
|
Move Serial utils to their own file.
This will let the front-end access them without pulling in the rest
of renderer_utils. The Serial class in particular will be useful for
capture/replay.
Also adds a very minimal unit test.
Bug: angleproject:4223
Change-Id: I9e63b8a8227a245b20a8f024b960fcf60c7840db
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1954611
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
012d1519
|
2019-10-31T16:50:23
|
|
Stop using __has_include<Cocoa/Cocoa.h>
__has_include seems to cause problems with goma builds.
Instead, detect iOS vs MacOS using TargetConditionals.h. Also use
plain C++ instead of Objective-C++ when possible.
Bug: angleproject:3439
Bug: 1015591
Change-Id: I816624e0cdc54ad3a18d3891b4efecf6fe640574
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1894243
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
|
|
fe26bae4
|
2019-10-29T18:38:53
|
|
Metal backend implementation pt 2
This is without Metal specific shader translator implemented yet.
Bug: angleproject:2634
Change-Id: I95d589442251c9ba111bd05a2dc379a36739046c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1855069
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e9603921
|
2019-10-31T14:33:26
|
|
Capture/Replay: Correct a few GLenum replay issues.
This change refactors the GLenum utils into a non-autogenerated and an
autogenerated portion. That makes it easier to modify the non-auto-
generated bits to properly output GLenums even when the gl.xml data
isn't totally correct. For instance, the "GetPName" group was missing
a bunch of queries. Instead of trying to fix the GL we can simply fall
back to querying the "Default" group when we return invalid enum.
Also corrects a missing "0x" on hex output.
Also allows the capture/replay sample to specify the correct binary
data directory when testing a replay.
Bug: angleproject:3611
Change-Id: I8e4c690b2850bb157a8cde8b057b20603e4b177d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1891008
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
3ff097ff
|
2019-10-31T10:42:00
|
|
Win: Add ANGLE_WAIT_FOR_DEBUGGER option.
Setting this environment variable will make ANGLE pop up a dialog. The
dev can then attach a debugger to this dialog. Only implemented on
Windows currently.
This option is only available when ASSERTs are enabled in libGLESv2.
The code is based on SwiftShader's implementation of WaitForDebugger:
https://cs.chromium.org/chromium/src/third_party/swiftshader/src/Vulkan/main.cpp
Bug: angleproject:4072
Change-Id: I160cb91a423a6d4517f067f2a6f3a2d953b26505
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1892173
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
04ee27ef
|
2019-10-24T18:29:15
|
|
Capture/Replay: Add ANGLE_get_image extension.
Will be used for mid-execution capture. Only has a
stubbed-out implementation right now.
Bug: angleproject:3944
Change-Id: I6ddae07907ecbdbd3be9a5d2d3fcafeb425445e4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1878888
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
aa292a59
|
2019-10-10T08:22:04
|
|
Generate GLES 3.2 entry points
This is a combination of:
- Changing the "scripts/generate_entry_points.py" script to tell it to
also auto-generate GLES 3.2. Also changing "scripts/gen_proc_table.py".
- Generating new and modified files needed to add GLES 3.2 to the
ANGLE front-end. This is done by running the following command:
"python scripts/run_code_generation.py".
- Creating the following files:
- src/libANGLE/validationES32.h
- src/libANGLE/validationES32.cpp
- src/libANGLE/capture_gles_3_2_params.cpp
- Hand-editing the following files:
- src/libGLESv1_CM/libGLESv1_CM.cpp
- include/GLES2/gl2ext_angle.h
- src/libGLESv2.gni
- src/libANGLE/Context.h
- src/libANGLE/Context.cpp
- src/libANGLE/Context_gl.cpp
- src/libANGLE/ErrorStrings.h
- src/libANGLE/State.h
- src/libANGLE/validationES1.cpp
- src/libANGLE/validationGL3.cpp
- src/libANGLE/validationGL31.cpp
- src/libANGLE/validationGL32.cpp
- src/libANGLE/validationGL33.cpp
- src/libANGLE/validationGL4.cpp
- src/libANGLE/validationGL43.cpp
- src/libANGLE/validationGL45.cpp
Bug: angleproject:3649
Change-Id: I5b67f72e3e3b55e74039ec3e28aa8d399ec08cf2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1850231
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
8e7d9d6c
|
2019-10-04T18:19:32
|
|
Add EGL_ANGLE_device_cgl extension.
Supports querying the CGLContextObj and CGLPixelFormatObj associated
with ANGLE's underlying OpenGL context on macOS.
Minor refactorings to implementation of device attribute queries on
all platforms.
Bug: angleproject:3973
Change-Id: I24341668be4cbfed0b7f2df4c1402df1effe275e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1846733
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
1f08ab28
|
2019-10-03T16:22:52
|
|
Re-land "GN: Componentize vulkan back-end build."
Re-land fixes angle_end2end_tests disabling Vulkan.
This moves the build configuration into the Vulkan back-end dir.
This should be a little easier to maintain as all Vulkan-related
config is in one place.
Note that this should not interfere with Skia's build as they do
not import the Vulkan back-end sources.
One additional possiblity that this enables is testing other
compile-time permutations of the Vulkan back-end more easily. For
example we could make a simple change to enable compile testing
of the Vulkan back-end with custom command buffers disabled.
Also fixes a few errors affecting less tested configs.
Bug: angleproject:3943
Change-Id: I0161668abcc58fcf529dde120998d4b99445fdd5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1838454
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
2328d65a
|
2019-10-03T02:27:07
|
|
Revert "GN: Componentize vulkan back-end build."
This reverts commit d46e2fb1e341a7ba7da56072658d3b4b1a540077.
Reason for revert: Broke Vulkan angle_end2end_tests.
Bug: angleproject:3954
Original change's description:
> GN: Componentize vulkan back-end build.
>
> This moves the build configuration into the Vulkan back-end dir.
> This should be a little easier to maintain as all Vulkan-related
> config is in one place.
>
> Note that this should not interfere with Skia's build as they do
> not import the Vulkan back-end sources.
>
> One additional possiblity that this enables is testing other
> compile-time permutations of the Vulkan back-end more easily. For
> example we could make a simple change to enable compile testing
> of the Vulkan back-end with custom command buffers disabled.
>
> Also fixes a few errors affecting less tested configs.
>
> Bug: angleproject:3943
> Change-Id: Iaf819936896e4f5d3e6415ed16ab0c940e46cdb6
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1829662
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Tobin Ehlis <tobine@google.com>
TBR=tobine@google.com,jonahr@google.com,jmadill@chromium.org
Change-Id: I7cf3db4f6b7d8b779625ea2491172bb429b498a9
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:3943
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1837233
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
d46e2fb1
|
2019-09-27T16:22:35
|
|
GN: Componentize vulkan back-end build.
This moves the build configuration into the Vulkan back-end dir.
This should be a little easier to maintain as all Vulkan-related
config is in one place.
Note that this should not interfere with Skia's build as they do
not import the Vulkan back-end sources.
One additional possiblity that this enables is testing other
compile-time permutations of the Vulkan back-end more easily. For
example we could make a simple change to enable compile testing
of the Vulkan back-end with custom command buffers disabled.
Also fixes a few errors affecting less tested configs.
Bug: angleproject:3943
Change-Id: Iaf819936896e4f5d3e6415ed16ab0c940e46cdb6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1829662
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
|
|
11dc1635
|
2019-09-18T14:46:23
|
|
Add support for generating UWP (Windows Store) projects again
Until late 2017, ANGLE supported Windows Store apps on Windows 8.1,
Windows Phone 8.1, and Windows 10 (via the Universal Windows
Platform, aka UWP).
Unfortunately ANGLE deprecated support for Windows Store when it
switched from GYP to GN in 2017. Since then, users have been able
to use Microsoft\angle for their UWP apps but this isn't ideal since
it's based on a 2017 copy of Google\angle.
This PR bring back support for UWPs, so that UWP users can use
Google\angle again. Specifically it:
- Adds support for generating UWP projects via GN
- Adds helper/util functions specific to UWP (they're mostly
similar to the desktop Windows helpers)
- Fixes some existing Windows Store code that's rotted since 2017
- Disables async shader compilation for UWPs, since its
implementation calls wait on the UI thread (which is forbidden
in UWPs)
- Renames 'ANGLE_ENABLE_WINDOWS_STORE' to
'ANGLE_ENABLE_WINDOWS_UWP', since ANGLE only support UWPs now
- Fixes misc other related issues (such as dependencies on D3D9
headers in API-agnostic code)
Note that this doesn't bring back support for Windows/Phone 8.1.
BUG=angleproject:3922
Change-Id: Ia79ae05a5e0e0a0625eb633bf1928722dfd3e85f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1811871
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
050b124d
|
2019-06-30T03:26:18
|
|
Reland "Vulkan: Debug overlay"
This is a reland of e54d0f90d1a165404236fd7abd1b05ddd041a686
This was reverted due to a build failure as a result of a missing
virtual destructor in the widget base class.
Original change's description:
> Vulkan: Debug overlay
>
> A debug overlay system for the Vulkan backend designed with efficiency
> and runtime configurability in mind. Overlay widgets are of two
> fundamental types:
>
> - Text widgets: A single line of text with small, medium or large font.
> - Graph widgets: A bar graph of data.
>
> Built on these, various overlay widget types are defined that gather
> statistics. Five such types are defined with one widget per type as
> example:
>
> - Count: A widget that counts something. VulkanValidationMessageCount
> is an overlay widget of this type that shows the number of validation
> messages received from the validation layers.
> - Text: A generic text. VulkanLastValidationMessage is an overlay
> widget of this type that shows the last validation message.
> - PerSecond: A value that gets reset every second automatically. FPS is
> an overlay widget of this type that simply gets incremented on every
> swap().
> - RunningGraph: A graph of last N values. VulkanCommandGraphSize is an
> overlay of this type. On every vkQueueSubmit, the number of nodes in
> the command graph is accumulated. On every present(), the value is
> taken as the number of nodes for the whole duration of the frame.
> - RunningHistogram: A histogram of last N values. Input values are in
> the [0, 1] range and they are ranked to N buckets for histogram
> calculation. VulkanSecondaryCommandBufferPoolWaste is an overlay
> widget of this type. On vkQueueSubmit, the memory waste from command
> buffer pool allocations is recorded in the histogram.
>
> Overlay font is placed in libANGLE/overlay/ which gen_overlay_fonts.py
> processes to create an array of bits, which is processed at runtime to
> create the actual font image (an image with 3 layers).
>
> The overlay widget layout is defined in overlay_widgets.json which
> gen_overlay_widgets.py processes to generate an array of widgetss, each
> of its respective type, and sets their properties, such as color and
> bounding box. The json file allows widgets to align against other
> widgets as well as against the framebuffer edges.
>
> Two compute shaders are implemented to efficiently render the UI:
>
> - OverlayCull: This shader creates a bitset of Text and Graph widgets
> whose bounding boxes intersect a corresponding subgroup processed by
> OverlayDraw. This is done only when the enabled overlay widgets are
> changed (a feature that is not yet implemented) or the surface is
> resized.
> - OverlayDraw: Using the bitsets generated by OverlayCull, values that
> are uniform for each workgroup (set to be equal to hardware subgroup
> size), this shader loops over enabled widgets that can possibly
> intersect the pixel being processed and renders and blends in texts
> and graphs. This is done once per frame on present().
>
> Currently, to enable overlay widgets an environment variable is used.
> For example:
>
> $ export ANGLE_OVERLAY=FPS:VulkanSecondaryCommandBufferPoolWaste
> $ ./hello_triangle --use-angle=vulkan
>
> Possible future work:
>
> - On Android, add settings in developer options and enable widgets based
> on those.
> - Spawn a small server in ANGLE and write an application that sends
> enable/disable commands remotely.
> - Implement overlay for other backends.
>
> Bug: angleproject:3757
> Change-Id: If9c6974d1935c18f460ec569e79b41188bd7afcc
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1729440
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Bug: angleproject:3757
Change-Id: I47915d88b37b6f882c686c2de13fca309a10b572
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1780897
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
fc58af47
|
2019-09-02T07:46:44
|
|
Revert "Vulkan: Debug overlay"
This reverts commit e54d0f90d1a165404236fd7abd1b05ddd041a686.
Reason for revert: causes compile failure on Linux CFI bot.
Sample build: https://ci.chromium.org/p/chromium/builders/ci/Linux%20CFI/14810
Sample log: https://logs.chromium.org/logs/chromium/buildbucket/cr-buildbucket.appspot.com/8903575125463586160/+/steps/compile/0/stdout?format=raw
Original change's description:
> Vulkan: Debug overlay
>
> A debug overlay system for the Vulkan backend designed with efficiency
> and runtime configurability in mind. Overlay widgets are of two
> fundamental types:
>
> - Text widgets: A single line of text with small, medium or large font.
> - Graph widgets: A bar graph of data.
>
> Built on these, various overlay widget types are defined that gather
> statistics. Five such types are defined with one widget per type as
> example:
>
> - Count: A widget that counts something. VulkanValidationMessageCount
> is an overlay widget of this type that shows the number of validation
> messages received from the validation layers.
> - Text: A generic text. VulkanLastValidationMessage is an overlay
> widget of this type that shows the last validation message.
> - PerSecond: A value that gets reset every second automatically. FPS is
> an overlay widget of this type that simply gets incremented on every
> swap().
> - RunningGraph: A graph of last N values. VulkanCommandGraphSize is an
> overlay of this type. On every vkQueueSubmit, the number of nodes in
> the command graph is accumulated. On every present(), the value is
> taken as the number of nodes for the whole duration of the frame.
> - RunningHistogram: A histogram of last N values. Input values are in
> the [0, 1] range and they are ranked to N buckets for histogram
> calculation. VulkanSecondaryCommandBufferPoolWaste is an overlay
> widget of this type. On vkQueueSubmit, the memory waste from command
> buffer pool allocations is recorded in the histogram.
>
> Overlay font is placed in libANGLE/overlay/ which gen_overlay_fonts.py
> processes to create an array of bits, which is processed at runtime to
> create the actual font image (an image with 3 layers).
>
> The overlay widget layout is defined in overlay_widgets.json which
> gen_overlay_widgets.py processes to generate an array of widgetss, each
> of its respective type, and sets their properties, such as color and
> bounding box. The json file allows widgets to align against other
> widgets as well as against the framebuffer edges.
>
> Two compute shaders are implemented to efficiently render the UI:
>
> - OverlayCull: This shader creates a bitset of Text and Graph widgets
> whose bounding boxes intersect a corresponding subgroup processed by
> OverlayDraw. This is done only when the enabled overlay widgets are
> changed (a feature that is not yet implemented) or the surface is
> resized.
> - OverlayDraw: Using the bitsets generated by OverlayCull, values that
> are uniform for each workgroup (set to be equal to hardware subgroup
> size), this shader loops over enabled widgets that can possibly
> intersect the pixel being processed and renders and blends in texts
> and graphs. This is done once per frame on present().
>
> Currently, to enable overlay widgets an environment variable is used.
> For example:
>
> $ export ANGLE_OVERLAY=FPS:VulkanSecondaryCommandBufferPoolWaste
> $ ./hello_triangle --use-angle=vulkan
>
> Possible future work:
>
> - On Android, add settings in developer options and enable widgets based
> on those.
> - Spawn a small server in ANGLE and write an application that sends
> enable/disable commands remotely.
> - Implement overlay for other backends.
>
> Bug: angleproject:3757
> Change-Id: If9c6974d1935c18f460ec569e79b41188bd7afcc
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1729440
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
TBR=geofflang@chromium.org,syoussefi@chromium.org,jmadill@chromium.org
Bug: angleproject:3757
Change-Id: Ib08e2e7b1a9449ca097673acb11655df5d2bbf31
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1778862
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
e54d0f90
|
2019-06-30T03:26:18
|
|
Vulkan: Debug overlay
A debug overlay system for the Vulkan backend designed with efficiency
and runtime configurability in mind. Overlay widgets are of two
fundamental types:
- Text widgets: A single line of text with small, medium or large font.
- Graph widgets: A bar graph of data.
Built on these, various overlay widget types are defined that gather
statistics. Five such types are defined with one widget per type as
example:
- Count: A widget that counts something. VulkanValidationMessageCount
is an overlay widget of this type that shows the number of validation
messages received from the validation layers.
- Text: A generic text. VulkanLastValidationMessage is an overlay
widget of this type that shows the last validation message.
- PerSecond: A value that gets reset every second automatically. FPS is
an overlay widget of this type that simply gets incremented on every
swap().
- RunningGraph: A graph of last N values. VulkanCommandGraphSize is an
overlay of this type. On every vkQueueSubmit, the number of nodes in
the command graph is accumulated. On every present(), the value is
taken as the number of nodes for the whole duration of the frame.
- RunningHistogram: A histogram of last N values. Input values are in
the [0, 1] range and they are ranked to N buckets for histogram
calculation. VulkanSecondaryCommandBufferPoolWaste is an overlay
widget of this type. On vkQueueSubmit, the memory waste from command
buffer pool allocations is recorded in the histogram.
Overlay font is placed in libANGLE/overlay/ which gen_overlay_fonts.py
processes to create an array of bits, which is processed at runtime to
create the actual font image (an image with 3 layers).
The overlay widget layout is defined in overlay_widgets.json which
gen_overlay_widgets.py processes to generate an array of widgetss, each
of its respective type, and sets their properties, such as color and
bounding box. The json file allows widgets to align against other
widgets as well as against the framebuffer edges.
Two compute shaders are implemented to efficiently render the UI:
- OverlayCull: This shader creates a bitset of Text and Graph widgets
whose bounding boxes intersect a corresponding subgroup processed by
OverlayDraw. This is done only when the enabled overlay widgets are
changed (a feature that is not yet implemented) or the surface is
resized.
- OverlayDraw: Using the bitsets generated by OverlayCull, values that
are uniform for each workgroup (set to be equal to hardware subgroup
size), this shader loops over enabled widgets that can possibly
intersect the pixel being processed and renders and blends in texts
and graphs. This is done once per frame on present().
Currently, to enable overlay widgets an environment variable is used.
For example:
$ export ANGLE_OVERLAY=FPS:VulkanSecondaryCommandBufferPoolWaste
$ ./hello_triangle --use-angle=vulkan
Possible future work:
- On Android, add settings in developer options and enable widgets based
on those.
- Spawn a small server in ANGLE and write an application that sends
enable/disable commands remotely.
- Implement overlay for other backends.
Bug: angleproject:3757
Change-Id: If9c6974d1935c18f460ec569e79b41188bd7afcc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1729440
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
05114fe7
|
2019-08-09T15:45:56
|
|
Support in memory frame capture replay
Enable FrameCapture to dispatch its calls back to Context and replay
them.
Bug: angleproject:3785
Change-Id: I580eff1fca3e39414a9b45bb296e0f3866ea33bc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1747055
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
9d737966
|
2019-08-14T12:25:12
|
|
Standardize copyright notices to project style
For all "ANGLE Project" copyrights, standardize to the format specified
by the style guide. Changes:
- "Copyright (c)" and "Copyright(c)" changed to just "Copyright".
- Removed the second half of date ranges ("Y1Y1-Y2Y2"->"Y1Y1").
- Fixed a small number of files that had no copyright date using the
initial commit year from the version control history.
- Fixed one instance of copyright being "The ANGLE Project" rather than
"The ANGLE Project Authors"
These changes are applied both to the copyright of source file, and
where applicable to copyright statements that are generated by
templates.
BUG=angleproject:3811
Change-Id: I973dd65e4ef9deeba232d5be74c768256a0eb2e5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1754397
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
9e14a19b
|
2019-08-09T10:03:24
|
|
EVENT trace to print GLenum as string reland
Reland of CL https://chromium-review.googlesource.com/c/angle/angle/+/1737141
Bug: angleproject:3778
Change-Id: I2a43c618de032d6e6286d707fbc88241ad4c19ce
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1745837
Commit-Queue: Jiacheng Lu <lujc@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
08b1e660
|
2019-08-09T15:31:19
|
|
Revert "Enable EVENT trace to print GLenum as string"
This reverts commit 048547e743b655d12ad44bb3e63766b7b96cd9a0.
Reason for revert: crashes on Debug bots (at least Mac)
Original change's description:
> Enable EVENT trace to print GLenum as string
>
> Bug: angleproject:3778
> Change-Id: Ib3a4bd6ba631e0165d571789bbfab9b4b1905d8d
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1737141
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Tobin Ehlis <tobine@google.com>
TBR=tobine@google.com,jmadill@chromium.org,lujc@google.com
Change-Id: Ib72f932f9b99bf981399759b17cec456b3ffafc1
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:3778
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1745835
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
048547e7
|
2019-08-05T11:55:54
|
|
Enable EVENT trace to print GLenum as string
Bug: angleproject:3778
Change-Id: Ib3a4bd6ba631e0165d571789bbfab9b4b1905d8d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1737141
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
|