|
0d203aef
|
2022-10-16T10:08:01
|
|
EGL: Add ID types for egl::Surface and egl::Image.
This is in preparation for using resource maps for Context, Surface
and EGLImage. The map change will make it much easier to work with
the trace fixture. It will also have a small benefit in safety as
we will longer be casting raw pointers for these types.
As these objects are used in a lot of places, and simplified C
can't handle unordered_map, it's necessary to index the maps by
simple packed IDs in capture/replay code.
Bug: angleproject:7758
Change-Id: Ib1d19622a4f2a6f0458cc28f5bbe30bb9f349b98
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3957163
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e4aa679c
|
2020-04-01T17:46:31
|
|
Texture: Pass explicit unpack buffer to setImage.
This will allow us to call setImage internally even if there's an
unpack buffer bound. Useful when implementing robust resource init with
copyTexImage in some edge cases.
Bug: angleproject:4517
Change-Id: I7e8e9536ab9222c620e572f7b6c20b08fa29d646
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2133088
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
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>
|
|
2ab08edc
|
2019-08-12T16:20:21
|
|
Use TextureID in place of GLuint handles.
Bug: angleproject:3611
Change-Id: Ie6156e8732b3ca4dc6c4439c059a5481a4dfd250
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1738753
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
7c7dec01
|
2019-08-06T17:44:11
|
|
Use RenderbufferID in place of GLuint handles.
This will allow frame capture/replay to more easily emulate object
handle manipulation. It also provides a bit of type safety. Also
generalizes ResourceMap to handle non-GLuint IDs.
Bug: angleproject:3611
Change-Id: I174fd260f326e0dbe2aca3f818215c91d82cf48c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1706559
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
7c985f5c
|
2018-11-29T18:16:17
|
|
Make angle::Result an enum.
This moves away from a class type to a value type. This should improve
performance when using angle::Result as a return value. Previously the
generated code would return a pointer instead of a value.
Improves performance in the most targeted microbenchmark by 10%. In
more realistic scanarios it will have a smaller improvement. Also
simplifies the class implementation and usage.
Includes some unrelated code generation changes.
Bug: angleproject:2491
Change-Id: Ifcf86870bf1c00a2f73c39ea6e4f05ca705050aa
Reviewed-on: https://chromium-review.googlesource.com/c/1356139
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
b980c563
|
2018-11-27T11:34:27
|
|
Reformat all cpp and h files.
This applies git cl format --full to all ANGLE sources.
Bug: angleproject:2986
Change-Id: Ib504e618c1589332a37e97696cdc3515d739308f
Reviewed-on: https://chromium-review.googlesource.com/c/1351367
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c2328a15
|
2018-10-18T15:00:29
|
|
Use angle::Result in front-end (Part 4)
Handles the gl::Renderbuffer class and its implementation.
Bug: angleproject:2491
Change-Id: I3ef718b492dc39ba640c8f68ed80b536f89ff378
Reviewed-on: https://chromium-review.googlesource.com/c/1283309
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
9d05b930
|
2018-07-27T15:47:18
|
|
Don't store a ref from an EGL image to its source.
ImageSiblings no longer inherit from RefCountObeject because they may be EGL
or GL objects and should handle their own deletion.
This can cause GL resources to outlive their contexts. When the GL resource
is deleted, simply orphan the image.
BUG=angleproject:2668
Change-Id: I4a5c12bbe6e725f946209f9b48345a4097c9c91c
Reviewed-on: https://chromium-review.googlesource.com/1153601
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
cd7cd2a8
|
2018-07-19T11:25:54
|
|
Pass Context to EGLImage creation and Display to EGLImage initialization.
BUG=angleproject:2507
Change-Id: I6c195434131709203f892be6037e974002c174c2
Reviewed-on: https://chromium-review.googlesource.com/1143453
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
c4f27e4b
|
2018-03-31T14:19:18
|
|
Texture: Pass ImageIndex to relevant methods.
The Vulkan back-end will be using this helper struct, so make it
available everywhere. This cleans up a lot of the code for D3D.
Potentially in the future we could generate these in the entry
points if we supported packing multiple arguments into one.
Also changes a few parameter types to GLint for compatibility.
Also updates the Vulkan Texture implementation check the stored
vk::Format on setImage changes.
Bug: angleproject:2318
Change-Id: I57cea4a42483ab51859229517d783b58f206b8e7
Reviewed-on: https://chromium-review.googlesource.com/985203
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
|
|
99d492c2
|
2018-02-27T15:17:10
|
|
Use packed enums for the texture types and targets, part 2
This completes the refactor by using the packed enums in the gl:: layer
and in the backends.
The packed enum code generation is modified to support explicitly
assigning values to the packed enums so that the TextureTarget cube map
faces are in the correct order and easy to iterate over.
BUG=angleproject:2169
Change-Id: I5903235e684ccf382e92a8a1e10c5c85b4b16a04
Reviewed-on: https://chromium-review.googlesource.com/939994
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
e703c606
|
2018-02-20T10:21:48
|
|
Add gl::RenderbufferState shared state helper.
This shared state will be read-only visible in the RenderbufferImpl
class. It mirrors existing structs for Textures, Buffers, and other
classes. It allows the implementation class to have a read-only view
as to the current GL state of an object.
This will be useful to the Vulkan back-end, which would like to know
the current Renderbuffer state before having to redefine the storage.
If the current parameters match, it might not have to redefine the
storage at all.
The solution involves passing around the gl::RenderbufferState
through various factory methods.
Also name the Renderbuffer implementation pointer consistently and
make it use std::unique_ptr.
Bug: angleproject:2347
Change-Id: Ied6e0358e24e74a7fedbe4aea692edee909b5838
Reviewed-on: https://chromium-review.googlesource.com/922457
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
ea84f6ff
|
2017-09-20T13:20:30
|
|
Pass Context to Framebuffer11 dirty callback.
This allows us to call StateManager11::invalidateRenderTarget from the
Framebuffer11::signal function, which will then trigger state refresh
on the next draw call.
This requires passing Context through a few more Renderbuffer methods,
and reorganizing the RenderTarget signalling so that it doesn't signal
dirty in the destructor. Instead they are signaled as they are
destroyed in the containing classes.
BUG=angleproject:2151
Change-Id: I4cf575e4a01b48275ff78d75bc55b2d1fced591d
Reviewed-on: https://chromium-review.googlesource.com/673139
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|
|
71c88b31
|
2017-09-14T22:20:29
|
|
Enable [[nodiscard]] for gl::Error.
This forces all return values to be checked for gl::Error.
Requires quite a bit of minor refactoring. I also added a macro to
swallow an error without returning from a function.
We could look at storing the errors in the Context at some point,
since almost always when we're generating errors that we need to
discard we have access to the Context as a parameter.
BUG=angleproject:2150
Change-Id: I457e48a30c002eda0993acbcd3180ba87bf169fb
Reviewed-on: https://chromium-review.googlesource.com/665173
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
4928b7ca
|
2017-06-20T12:57:39
|
|
Proliferate gl::Context everywhere.
This gives the D3D back-end access to the GL state almost anywhere.
This uses the onDestroy hook for Textures to push errors up from
destructors, although they still don't quite make it to the Context.
There are places, such as in EGL object (Context/Surface) destruction,
where we end up calling through to GL implementation internals without
having access to a gl::Context. We handle this via a proxy Context
to a Display, basically a null context, that has access to impl-side
state like the Renderer pointer if necessary. It does not have access
to the normal GL state.
Also Pass gl::Context to RefCountObject::release(). Since we're using
destroy() methods now, we should not ever call the destructor directly.
BUG=angleproject:1156
Change-Id: Ie4c32ad6bf6caaff0289901f30b5c6bafa2ce259
Reviewed-on: https://chromium-review.googlesource.com/529707
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
76b8f469
|
2017-04-21T12:23:40
|
|
Use a shared state for egl::Image.
This allows us to stop duplicating some information in the impl.
BUG=angleproject:1635
Change-Id: If8f7d2418571c3254729f48c463814ec18ed2644
Reviewed-on: https://chromium-review.googlesource.com/469153
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
8897afa1
|
2017-02-06T17:17:23
|
|
Pass Context around to Texture::copyImage.
Passing this through the chain will allow us to have access to the
platform methods, as well as be useful in the future for Vulkan.
BUG=angleproject:1660
Change-Id: I819984fceeb5a2a299aa54e59ef3b428f5f9c91f
Reviewed-on: https://chromium-review.googlesource.com/438684
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
acd1898e
|
2017-01-04T10:46:42
|
|
Replace Error(GL_NO_ERROR) with NoError().
In order to make the errors be consistent throughout ANGLE.
BUG=angleproject:1686
Change-Id: I0a2d86091d640aedeac94beae345c1fb6971b00d
Reviewed-on: https://chromium-review.googlesource.com/424835
Commit-Queue: Yunchao He <yunchao.he@intel.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
7aea7e05
|
2016-05-10T10:39:45
|
|
Add EGLImplFactory.
Also rename ImplFactory to GLImplFactory.
This will allow us to use the same factory design pattern for EGL
objects, and to use State helper classes to share data with Impls.
BUG=angleproject:1363
BUG=angleproject:1369
Change-Id: I07a8fe40838d5d4ca32b04910c306edeab4d25a7
Reviewed-on: https://chromium-review.googlesource.com/342051
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
82c47ad0
|
2016-04-20T18:28:47
|
|
Pass ImplFactory to Texture constructor
This improves encapsulation inside the Texture class, and removes
duplication of createTexture calls. This is a necessary step towards
adding a shared "Data" structure to the Texture classes, following a
similar pattern as for example the Framebuffer class.
This patch also shares the same MockFactory class among different
unit tests.
BUG=angleproject:596
TEST=angle_unittests
Change-Id: Ie8d3a9aa4ec35565d7ecbabb8c40e7b1ba068721
Reviewed-on: https://chromium-review.googlesource.com/340200
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
73a84969
|
2016-02-12T09:27:23
|
|
Refactor more Texture entry points to a consistent style.
TexImage, SubImage and the Compressed variants were all taking a GL
Context as the first parameter, which is a layering violation and
also caused problems with reworking how the sync works. Fix this
by refactoring them in the same style as the CopyTex* entry points.
BUG=angleproject:1260
BUG=angleproject:747
Change-Id: Ibe5e87d0ebc790e2dcadb8ba153cf40fec73d1f6
Reviewed-on: https://chromium-review.googlesource.com/327258
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
1b94d432
|
2015-08-07T13:23:23
|
|
Implement dirty bits for RendererGL's basic state.
BUG=angleproject:1040
TEST=angle_end2end_tests,angle_perftests,WebGL
Change-Id: I72beaf7e178e042440337fbb8b9669638c5ad016
Reviewed-on: https://chromium-review.googlesource.com/289558
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
a840617a
|
2015-07-21T16:53:39
|
|
Implement the egl and gl layers of EGL Image.
Add end2end tests and unittests.
BUG=angleproject:970
Change-Id: Ie8306971730a793f08dfd09ead1bfd6ff3e4623d
Reviewed-on: https://chromium-review.googlesource.com/291260
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
4274f7d2
|
2015-08-05T23:07:38
|
|
Revert "Implement the egl and gl layers of EGL Image."
This reverts commit 22a4f38c2ca9ca430b5f976fc7fc816d88918eba.
Change-Id: I07acbfe28d11675236de2ea7f6b050c25f80579a
Reviewed-on: https://chromium-review.googlesource.com/290960
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
22a4f38c
|
2015-07-21T16:53:39
|
|
Implement the egl and gl layers of EGL Image.
Add end2end tests and unittests.
BUG=angleproject:970
Change-Id: I13fc501b24c3f11bfedc810c1ff80fcf1318877c
Reviewed-on: https://chromium-review.googlesource.com/287343
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|