|
d3a5b185
|
2016-05-19T13:13:35
|
|
Make inheritance heirarchy for egl::Surface.
This will allow us to select the Impl constructor more easily
createWindowSurface
createPbufferSurface
createPbufferSurfaceFromClientBuffer
createPixmapSurface
This in turn lets us pass an EGLImplFactory to the constructor and
will allow us to pass in the local SurfaceState to the constructor.
BUG=angleproject:1369
Change-Id: I6b13c1548c54bd5c493d59b68bfdaf55226b6bb5
Reviewed-on: https://chromium-review.googlesource.com/342060
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
53ea9cc6
|
2016-05-17T10:12:52
|
|
Replace rx::Renderer with rx::ContextImpl.
Previously Context had no Impl class, but had a special relationship
with the instanced Renderer class. Having a ContextImpl backing every
Context will allow new designs to enable things like multithreading
(where each ContextImpl stores a Context-specific device) or non-
virtual Contexts on Android or other platforms where it is more
efficient.
A large refactoring patch that touches every back-end.
BUG=angleproject:1363
Change-Id: Icb73a7d37447f08a664eeb499a310ba05d71a57e
Reviewed-on: https://chromium-review.googlesource.com/342052
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
48ef11b2
|
2016-04-27T15:21:52
|
|
Rename gl::Framebuffer::Data to gl::FramebufferState.
Moving this out of the Framebuffer class allows us to forward-
declare it.
BUG=angleproject:1363
Change-Id: I91971c37a92151df508cdf7f0eb8c3e93506d112
Reviewed-on: https://chromium-review.googlesource.com/340741
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b0a53105
|
2016-04-01T11:43:54
|
|
Add a NativeWindowD3D abstract class to handle native window interactions.
The previous NativeWindow class included D3D11 headers while being included in
all D3D backds and had platform-dependent includes and members. This
turns it into an abstract class that only implements the minimal
functionality for each renderer.
BUG=angleproject:1345
Change-Id: I8f20339dd6bba719e574a1dcb3ec859897c9228f
Reviewed-on: https://chromium-review.googlesource.com/336780
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
9b6b351e
|
2016-01-05T14:16:22
|
|
Fix build issue in direct composition patch
MSVS2013 was warning about implicit conversion from EGLint to bool.
Fix this by making the conversion explicit like another similar
conversions.
The issue got introduced by the recent patch "Implement
EGL_ANGLE_direct_composition extension". Since the issue only affects
some particular build varieties, it's simpler to fix it rather than
revert the patch.
Change-Id: I120d34fddb48278856cbb0339ce25c49e57eb781
Reviewed-on: https://chromium-review.googlesource.com/320530
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Tested-by: Olli Etuaho <oetuaho@nvidia.com>
|
|
49ae88ba
|
2015-12-09T16:44:29
|
|
Implement EGL_ANGLE_direct_composition extension
On D3D11, if dcomp.dll can be loaded then EGL_ANGLE_direct_composition
is exposed. Setting EGL_DIRECT_COMPOSITION_ANGLE as an attrib on a
surface will force it to use DirectComposition to draw to the screen,
possibly saving power.
BUG=524838
Change-Id: I3ea175a97bbca1a3388ffe52fdd1587a2f0c2ce7
Reviewed-on: https://chromium-review.googlesource.com/319214
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: John Bauman <jbauman@chromium.org>
|
|
7f448b58
|
2015-12-16T13:31:57
|
|
Add an EGL_ANGLE_surface_orientation extension.
BUG=angleproject:1262
Change-Id: Ifbb0f5302311a68a0c6f02baaea706cbb7055a52
Reviewed-on: https://chromium-review.googlesource.com/320011
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
666cb828
|
2016-01-04T17:44:09
|
|
Revert "Add an EGL_ANGLE_surface_orientation extension."
Compilation warnings on clang.
This reverts commit 18cc14b5951842ede85c06dcbc0bba230bcedc45.
Change-Id: If58047486116e34ef30c4b317d3fb47cd2349d15
Reviewed-on: https://chromium-review.googlesource.com/319822
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
18cc14b5
|
2015-12-16T13:31:57
|
|
Add an EGL_ANGLE_surface_orientation extension.
BUG=angleproject:1262
Change-Id: I863c46c8557604da045447550f7d69831c9f06b5
Reviewed-on: https://chromium-review.googlesource.com/318780
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
1b3979b9
|
2015-12-08T11:39:24
|
|
Pass the gl::Texture object into Surface::bindTexImage.
BUG=540829
Change-Id: Iee602165e69bfe574821c6f628a745c32932a938
Reviewed-on: https://chromium-review.googlesource.com/316800
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
d756145d
|
2015-09-10T10:23:29
|
|
Re-land "Added support for premultiplied alpha mode for composition swapchains"
Change-Id: Ic0c863c3d4936947fc520a5394e38e458659df46
Reviewed-on: https://chromium-review.googlesource.com/298880
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
2aa3b436
|
2015-09-10T16:39:13
|
|
Revert "Added support for premultiplied alpha mode for composition swapchains"
Unused member warning:
..\..\third_party\angle\src\libANGLE/renderer/d3d/d3d11/NativeWindow.h(68,24) : error: private field 'mConfig' is not used [-Werror,-Wunused-private-field]
const egl::Config *mConfig;
^
BUG=None
This reverts commit 9823337204555935804985c5b93a38adc69cb681.
Change-Id: I8ed41770eb3fe70ab7e32ba9a0860e2c397e22c5
Reviewed-on: https://chromium-review.googlesource.com/298830
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
98233372
|
2015-08-28T15:53:44
|
|
Added support for premultiplied alpha mode for composition swapchains
Change-Id: Iee1d327a03469d7daf6cc412709c0a36e1c83e32
Reviewed-on: https://chromium-review.googlesource.com/296721
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Cooper Partin <coopp@microsoft.com>
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
|
|
37c3979e
|
2015-08-20T14:19:46
|
|
Revert "Revert "Make the default framebuffer owned by Surface""
Reland the commit after fixing a bug in FramebufferAttachment.
This reverts commit 18fdcbcf1d02d3b3b4b5c712f05058f2e8d629c6.
BUG=angleproject:891
Change-Id: I07e08de52bfce8d84d070fc7bc15883009298a4d
Reviewed-on: https://chromium-review.googlesource.com/294831
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
18fdcbcf
|
2015-08-19T18:12:44
|
|
Revert "Make the default framebuffer owned by Surface"
Seems to be causing failures on the Mac GPU FYI bots.
SurfaceTest.DestructionDeletesImpl seems to crash.
BUG=angleproject:891
BUG=522557
This reverts commit 264ab56f2e70431e8310f9353952acd3b22b466f.
Change-Id: I80aeecb8e191de011d9afe6534d0285dcffa82a3
Reviewed-on: https://chromium-review.googlesource.com/294540
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
264ab56f
|
2015-08-12T12:39:52
|
|
Make the default framebuffer owned by Surface
Reland with a fix for SurfaceTest in angle_unittests and fixes for
signed-unsigned warnings
In CGL there is no notion of default Framebuffer and MakeCurrent only
makes a context current but not a drawable. Instead, everything is done
via render to texture. For that reason, different surfaces will have
different FBOs as default framebuffers, which causes that change.
BUG=angleproject:891
Change-Id: I0664896bc335b1a757226aaa212536b8f9d0f08f
Reviewed-on: https://chromium-review.googlesource.com/293752
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
11cd6af6
|
2015-08-18T15:54:01
|
|
Revert "Make the default framebuffer owned by Surface"
Compilation warning on Windows
This reverts commit 6cb2ae8292e69aa110c89e0465366b9f049c1168.
Change-Id: I4ecadf5d8e909f986da186a7326cfa0922ae8710
Reviewed-on: https://chromium-review.googlesource.com/294241
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
6cb2ae82
|
2015-08-12T12:39:52
|
|
Make the default framebuffer owned by Surface
Reland with a fix for SurfaceTest in angle_unittests and fixes for
signed-unsigned warnings
In CGL there is no notion of default Framebuffer and MakeCurrent only
makes a context current but not a drawable. Instead, everything is done
via render to texture. For that reason, different surfaces will have
different FBOs as default framebuffers, which causes that change.
BUG=angleproject:891
Change-Id: Ie9a72de01a58e583a1bfa3f4a055debb860b912f
Reviewed-on: https://chromium-review.googlesource.com/293713
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
1bf40bfe
|
2015-08-12T15:52:04
|
|
Revert "Make the default framebuffer owned by Surface"
This reverts commit 87e63a9982803b5e4c12afa9a40ff0e2b04a7369.
Speculative revert to fix the webgl cts on Windows D3D9 and the
unittests on Linux.
BUG=
Change-Id: I488f4e0b2dc67270eed45f1c10bfba1d13c98739
Reviewed-on: https://chromium-review.googlesource.com/293350
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
87e63a99
|
2015-08-12T12:39:52
|
|
Make the default framebuffer owned by Surface
In CGL there is no notion of default Framebuffer and MakeCurrent only
makes a context current but not a drawable. Instead, everything is done
via render to texture. For that reason, different surfaces will have
different FBOs as default framebuffers, which causes that change.
BUG=angleproject:891
Change-Id: I3f6da7b587353316026ea39a5c87f91265e0f1ba
Reviewed-on: https://chromium-review.googlesource.com/289872
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
5d65cd56
|
2015-07-30T09:47:39
|
|
Surface: query swapBehavior from the Impl
All the previously implemented surfaces used to preserve the content of
the surface on a swap but this is no longer the case with CGL.
BUG=angleproject:891
Change-Id: I264c579bcbbd22b4eeb09e78aa95751d223694fc
Reviewed-on: https://chromium-review.googlesource.com/289871
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
d17c016b
|
2014-10-27T14:10:35
|
|
Add support for RESOURCE_MISC_SHARED_KEYEDMUTEX
Change-Id: I225f38b4616ac47e690dccbcb67074fedc571d61
Reviewed-on: https://chromium-review.googlesource.com/225642
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
6cd03cf9
|
2015-05-12T19:28:10
|
|
Revert "Create a child window in SurfaceD3D when needed."
Reverting until chromium sandbox issues are resolved.
This reverts commit b7f1a8b0ab3489a7463749e7fc088187bfafbd35.
BUG=484963
BUG=angleproject:961
Change-Id: I4b030329a322d0a96a18e6ae875d500c5f755ddd
Reviewed-on: https://chromium-review.googlesource.com/270490
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
8cf813c7
|
2015-05-04T12:55:18
|
|
Query attachment render targets from Impl class.
*re-land with fix for D3D9*
This allows us to eradicate the GetAttachmentRenderTarget methods.
This improves potential performance, at the cost of exposing a
Renderer-specific function at the API object level.
BUG=angleproject:963
Change-Id: Iee9f985ddaed668df0c622228004b348eb4d2ea8
Reviewed-on: https://chromium-review.googlesource.com/269006
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
e737b06c
|
2015-05-04T16:53:56
|
|
Revert "Query attachment render targets from Impl class."
D3D9 bug is causing failures in the WebGL depth texture test.
BUG=angleproject:963
This reverts commit 804e8436f91733e1d0f769ec10082e4741f2e549.
Change-Id: I660f05033360e97258794138cb50b604f5ac16b6
Reviewed-on: https://chromium-review.googlesource.com/269005
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
804e8436
|
2015-04-30T09:42:23
|
|
Query attachment render targets from Impl class.
This allows us to eradicate the GetAttachmentRenderTarget methods.
This improves potential performance, at the cost of exposing a
Renderer-specific function at the API object level.
BUG=angleproject:963
Change-Id: Ifc227b5f42e87bd4deb451d685618cf61fea39f1
Reviewed-on: https://chromium-review.googlesource.com/263491
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
3799c301
|
2015-04-29T13:06:31
|
|
surfaceD3D::swapRect(): always call checkForOutOfDateSwapChain() even if
width or height is 0.
BUG=angleproject:990
Change-Id: I9fbdd3d341d3f6fa42dfb39950e6b2d3204c4c9b
Reviewed-on: https://chromium-review.googlesource.com/267415
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Régis Fénéon <regis.feneon@gmail.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
30cb86d8
|
2015-04-22T10:07:23
|
|
Create a child window in SurfaceD3D when needed.
BUG=angleproject:961
BUG=angleproject:860
Change-Id: I137d27bafc4d690b159ffef8cc69d6f1c5a05131
Reviewed-on: https://chromium-review.googlesource.com/267681
Tested-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
3fe36ebd
|
2015-04-28T16:44:12
|
|
Revert "Create a child window in SurfaceD3D when needed."
Causing errors with D3D9, see build:
http://build.chromium.org/p/chromium.gpu.fyi/builders/Win7%20Release%20%28NVIDIA%29/builds/15149
This reverts commit b7f1a8b0ab3489a7463749e7fc088187bfafbd35.
Change-Id: I6f1c3fd119f76a298e5b3fb676ddcb208cd1234b
Reviewed-on: https://chromium-review.googlesource.com/267673
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
d3b84ab5
|
2015-04-22T10:36:48
|
|
Don't subclass windows in SurfaceD3D.
The subclassing was not used by chromium and caused problems for users
that wanted to use a window owned by another thread as an EGL surface.
BUG=angleproject:961
Change-Id: I1d91323c758374de317179874320961385b10ae0
Reviewed-on: https://chromium-review.googlesource.com/266658
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: John Bauman <jbauman@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
b7f1a8b0
|
2015-04-22T10:07:23
|
|
Create a child window in SurfaceD3D when needed.
BUG=angleproject:961
Change-Id: I61931961f8cb86b47012edd2bc08d0e1e7a5d0f7
Reviewed-on: https://chromium-review.googlesource.com/266515
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: John Bauman <jbauman@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
c46f45d9
|
2015-03-31T13:20:55
|
|
Refactor DefaultAttachments.
Instead of using an Impl type for default attachments, store the
egl::Surface pointer where possible.
BUG=angleproject:963
Change-Id: I3e34849e8b1ccae0c91a79617ec6f64aaaab6b10
Reviewed-on: https://chromium-review.googlesource.com/263483
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
1aca922a
|
2015-03-19T12:02:50
|
|
Track more information at the egl::Surface level.
Many of the members of SurfaceImpl could be stored in egl::Surface
instead. This makes SurfaceImpl a pure interface and makes Surface
constructors much simpler.
BUG=angleproject:795
Change-Id: Ifa797b4bef84afe66f9fb3f3a6be260f726ca55c
Reviewed-on: https://chromium-review.googlesource.com/261358
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
9d3ae5fe
|
2015-03-18T17:20:33
|
|
Use the Surface type for validation and fix incorrect window validation.
The window passed to surface creation should not be used by any surface
owned by any display, not just the current one. Store a global window
surface list for validation.
BUG=angleproject:795
Change-Id: I2314979f2f27848b21fcb00676194d7671d1db68
Reviewed-on: https://chromium-review.googlesource.com/260942
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
ba887d90
|
2015-01-20T13:54:30
|
|
Store mShareHandle in SurfaceD3D.
The type of the share handle depends on the implementation.
BUG=angle:658
Change-Id: Id801f3d0c1e3def7cae5cbd88e7a7032b2f6d8fa
Reviewed-on: https://chromium-review.googlesource.com/242050
Reviewed-by: Brandon Jones <bajones@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
45b4e74a
|
2015-01-20T13:23:03
|
|
Move surface size information out of SurfaceImpl.
Some implementations need to query size information directly from their
native window instead of listening for size events and storing the result.
Also move mSwapInterval to SurfaceD3D since it doesn't need to be stored
in all cases and there is no query for it. It no longer requires that the
SurfaceImpl's derivation remembers to set mSwapInterval in
setSwapInterval too.
BUG=angle:658
Change-Id: I499c1b8b842254636fc25ff5f2a90107af8fe327
Reviewed-on: https://chromium-review.googlesource.com/242039
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
f6bf23fd
|
2015-01-20T11:43:54
|
|
Split up the Display::create*Surface and have them match the API.
BUG=angle:658
Change-Id: Id0054406a5ce6f6ffef28ce84737547c1869efde
Reviewed-on: https://chromium-review.googlesource.com/242038
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
bb3f1802
|
2015-01-09T16:39:04
|
|
Remove swap interval queries from Renderer.
BUG=angle:658
Change-Id: I7cd9cf3693c06c46ec6a4054e8fe1586f399273c
Reviewed-on: https://chromium-review.googlesource.com/239903
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
c223dc6b
|
2015-01-09T13:10:01
|
|
Change Config to a struct and rename it's members.
BUG=angle:658
Change-Id: I18dab915730fc28815db8080b3614da821f9c8b1
Reviewed-on: https://chromium-review.googlesource.com/239901
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
5c39f688
|
2015-01-06T15:19:35
|
|
Have the DisplayImpl create the Renderer and Contexts.
BUG=angle:658
Change-Id: I726d87b90be8382c5dd8964e4d8686711e404ffe
Reviewed-on: https://chromium-review.googlesource.com/238861
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
9236b418
|
2015-02-02T16:51:52
|
|
Add generic Impl casting helper methods.
GetAs and GetImplAs are template helpers that can replace all of our
custom "makeTextureD3D", etc methods. This will help save code across
different back-ends.
Change-Id: Ib3215c005bfac5a819c5d8f7d60a73a725241332
Reviewed-on: https://chromium-review.googlesource.com/245390
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
2dc4639f
|
2015-01-05T14:33:58
|
|
Rename SwapChain to SwapChainD3D and move it to the D3D folder.
BUG=angle:681
Change-Id: Idcf24556e590e07cc0b6cf640d4701353a0cda5e
Reviewed-on: https://chromium-review.googlesource.com/238472
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
fb0580a6
|
2014-11-27T14:03:52
|
|
MANGLE egl::Surface.
This class has its fingers in a lot of other classes. In particular,
we will likely need to revisit the context lost handling methods when
we implement the robustness extensions on top of desktop GL. For now,
we can leave them tied pretty tightly to the D3D implementation.
BUG=angle:795
Change-Id: I9b3ac90dfd393f52c5b49bc2bd6b97fb5536ed91
Reviewed-on: https://chromium-review.googlesource.com/228916
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|