|
47110bf4
|
2016-04-20T11:13:22
|
|
Implement CHROMIUM_copy_compressed_texture for D3D11.
BUG=angleproject:1356
Change-Id: Id563997d2921cf558c52a781ae66d8bde58d1f2f
Reviewed-on: https://chromium-review.googlesource.com/339847
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@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>
|
|
3f572680
|
2016-04-26T13:41:36
|
|
Rename gl::VertexArray::Data to gl::VertexArrayState.
BUG=angleproject:1363
Change-Id: I5acf670bd88988941676cc9bc75606d55cca224e
Reviewed-on: https://chromium-review.googlesource.com/340744
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
52b09c2f
|
2016-04-11T14:12:31
|
|
Re-re-land "D3D11: Implement dirty bits for VertexArray11.""
Translated attributes are now stored in the VertexArray11 in a cache,
and only updated when dirty bits change. Currently dynamic attributes
must be re-translated every call, so these are stored in a list and
processed repeatedly.
This skips doing a lot of the VertexDataManager work for vertex
attributes that don't change between draw calls.
Current value attributes, which correspond to disabled attributes that
the program will pulls vertex data from, are owned by the Context, so
these need to be handled outside of the VertexArray11.
Further changes will be necessary to reduce the redundant work we do in
the InputLayoutCache. We shouldn't need to re-check the cache if
nothing relevant changed.
This give about a 23% performance improvement on the draw call
benchmark on my machine.
Re-land with a fix for the start vertex offset.
Re-re-land with a fix for using XFB with deleted buffers.
BUG=angleproject:1327
Change-Id: I0fba49515375c149bbf54d933f8d1f747fbb8158
Reviewed-on: https://chromium-review.googlesource.com/338003
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
53a36004
|
2016-04-08T19:03:18
|
|
Revert "Re-land "D3D11: Implement dirty bits for VertexArray11."""
Seems to make the following dEQP test flaky:
dEQP-GLES3.functional.lifetime.attach.deleted_output.buffer_transform_feedback
doesn't show up on every bot test, but run it a few times and it'll flake. Reverting while I investigate.
BUG=angleproject:1327
This reverts commit 3477f3a62dc139a253a0b361ee138116e9fa881f.
Change-Id: Ic23a392526f5f6e107cf0aa06448389804d6b208
Reviewed-on: https://chromium-review.googlesource.com/337961
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
3477f3a6
|
2016-03-29T17:15:29
|
|
Re-land "D3D11: Implement dirty bits for VertexArray11.""
Translated attributes are now stored in the VertexArray11 in a cache,
and only updated when dirty bits change. Currently dynamic attributes
must be re-translated every call, so these are stored in a list and
processed repeatedly.
This skips doing a lot of the VertexDataManager work for vertex
attributes that don't change between draw calls.
Current value attributes, which correspond to disabled attributes that
the program will pulls vertex data from, are owned by the Context, so
these need to be handled outside of the VertexArray11.
Further changes will be necessary to reduce the redundant work we do in
the InputLayoutCache. We shouldn't need to re-check the cache if
nothing relevant changed.
This give about a 23% performance improvement on the draw call
benchmark on my machine.
Re-land with a fix for the start vertex offset.
BUG=angleproject:1327
Change-Id: Ic23e48fb18ed7f29c1999914a2f799ac04aa03e9
Reviewed-on: https://chromium-review.googlesource.com/334225
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
00f394ec
|
2016-03-16T12:09:11
|
|
Revert Dirty bits for VertexArray11
This is a combination of two reverts:
Revert "D3D11: Remove unused mRenderer from VertexArray11."
Revert "D3D11: Implement dirty bits for VertexArray11."
Reverting only the first commit would trigger warnings on the Windows
clang bot.
BUG=594509
BUG=angleproject:1327
This reverts commit fc4712b5ed270436f2993bfda9e916d4f92684a4.
This reverts commit 7d8585b802b7eb741b380bd0d05769281d9507c9.
Change-Id: I612dbba0816d6144f71ce815701c13a798585bc7
Reviewed-on: https://chromium-review.googlesource.com/332989
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
7d8585b8
|
2016-03-09T15:53:12
|
|
D3D11: Implement dirty bits for VertexArray11.
Translated attributes are now stored in the VertexArray11 in a cache,
and only updated when dirty bits change. Currently dynamic attributes
must be re-translated every call, so these are stored in a list and
processed repeatedly.
This skips doing a lot of the VertexDataManager work for vertex
attributes that don't change between draw calls.
Current value attributes, which correspond to disabled attributes that
the program will pulls vertex data from, are owned by the Context, so
these need to be handled outside of the VertexArray11.
Further changes will be necessary to reduce the redundant work we do in
the InputLayoutCache. We shouldn't need to re-check the cache if
nothing relevant changed.
This give about a 23% performance improvement on the draw call
benchmark on my machine.
BUG=angleproject:1327
Change-Id: I7fb944d32ea7e6c78b9e478406bdb7e10a7fc05b
Reviewed-on: https://chromium-review.googlesource.com/330173
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c9d442d7
|
2016-01-20T11:17:24
|
|
Sync dirty objects at the GL layer.
The dirty bit system currently puts dirty objects in line with the
rest of the dirty state. This means at the Renderer level, the sync
manager code would call back to the GL layer to sync the specific
objects that are dirty. This is a bit of a layering violation (impl
layer mutating top-level objects) and also a bit of repeated boiler-
plate code.
Fix this by treating dirty objects in a separate dirty bit set, called
the dirty objects. This also has the benefit of allowing us to re-
implement the dirty object set at a later date, if we want to store
them in a list, or other structure.
Also don't skip the state sync at the GL level if there are no GL
dirty bits. The Impl might have some dirty bits locally, and it's
better to call syncState and do the no-op check in the Impl than it
is to also sync local state at every sync point (draw call, read, etc)
in each Impl.
BUG=angleproject:1260
Change-Id: Id5d4beb2a1c4e3ad351edf54e3f32e828d5f5da3
Reviewed-on: https://chromium-review.googlesource.com/318790
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
70d0f499
|
2015-12-10T17:45:46
|
|
Implement GL_KHR_debug.
BUG=angleproject:520
Change-Id: I9ced3e7ab1515feddf2ec103c26b2610a45b1784
Reviewed-on: https://chromium-review.googlesource.com/319830
Tryjob-Request: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
66988745
|
2015-12-22T19:39:19
|
|
Revert "Implement GL_KHR_debug."
This reverts commit 6c521b7a70a53b1c9f7762e53e34b5a8146b0f7b.
Change-Id: I6ff981198e31f34d3e405edea6277ee75516d6ee
Reviewed-on: https://chromium-review.googlesource.com/319820
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
6c521b7a
|
2015-12-10T17:45:46
|
|
Implement GL_KHR_debug.
BUG=angleproject:520
Change-Id: I78d14cc8c94f5cef58604220f0ca847473b25bf8
Reviewed-on: https://chromium-review.googlesource.com/317820
Tryjob-Request: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
63805b47
|
2015-08-25T13:17:39
|
|
Make the Program's semantic index D3D-only.
This concept isn't strictly necessary for GL-side validation. Instead
we can use a bitset to track active attribs, and determine is a
particular location is active.
BUG=angleproject:1123
Change-Id: If7a920a3071672116bafffb3368671f721723b65
Reviewed-on: https://chromium-review.googlesource.com/294570
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
0b9e9032
|
2015-08-17T11:51:52
|
|
Revert "Revert "Implement dirty bits acceleration for VertexArrayGL.""
Should be fixed with the Iterator change.
BUG=angleproject:1040
This reverts commit 5b21ed5fd030d33ae379b8cc493746244d2928b4.
Change-Id: Ibb77775b6b2ce5a49cee7dd81efc62d8c3ba3c62
Reviewed-on: https://chromium-review.googlesource.com/293901
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
5b21ed5f
|
2015-08-14T18:12:50
|
|
Revert "Implement dirty bits acceleration for VertexArrayGL."
Seems to cause an exception in Release, in end2end_tests.
BUG=angleproject:1040
This reverts commit 6d51c70ccf63a2c5ec240d960ff1bc179d36c92c.
Change-Id: I6548bc68dce07d2d85e40afdb604157e689c1d6c
Reviewed-on: https://chromium-review.googlesource.com/293821
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
6d51c70c
|
2015-08-14T10:38:10
|
|
Implement dirty bits acceleration for VertexArrayGL.
BUG=angleproject:1040
TEST=angle_end2end_tests,angle_perftests,WebGL
Change-Id: I91d9aea5eefb58ecaf5b1cc95926fddb2aa846ea
Reviewed-on: https://chromium-review.googlesource.com/289570
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
8e34494f
|
2015-07-09T14:22:07
|
|
Share data between VertexArray and Impl.
Using the same design as for the Framebuffer::Data helper, we can
use a struct to share between the object and the Impl. This also
gives the Impl access to the maxEnabledAttrib, and saves some
duplicated storage.
BUG=angleproject:1040
TEST=WebGL CTS, end2end_tests, unittests
Change-Id: I55c91e8a5f3dcae302cab441182320aafd5375ef
Reviewed-on: https://chromium-review.googlesource.com/283930
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
aebf9dde
|
2015-04-28T12:39:07
|
|
Cache maximum enabled vertex attribute.
This can give us much faster draw call validation, by saving us from
checking buffer sizes for non-enabled attribs. Also for checking if
vertex buffers are mapped. Gives >100% increase in the benchmark.
BUG=angleproject:959
Change-Id: I211c310385bdee46ed06f68ecd9c98385e1f8db9
Reviewed-on: https://chromium-review.googlesource.com/267751
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
|
|
5ead927f
|
2015-03-25T12:27:43
|
|
Don't use a helper function to get the vertex attributes.
The overhead of the function call ended up being a hot spot for draw calls
since the attributes are iterated over many times in VertexDataManager.
BUG=angleproject:959
Change-Id: I9bbfcbd115661ad629db9ed93d683cd8d0dc9a78
Reviewed-on: https://chromium-review.googlesource.com/263102
Tested-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
5b97287e
|
2015-03-30T19:52:55
|
|
Revert "Don't use a helper function to get the vertex attributes."
Caused a warning on 32-bit builds.
This reverts commit 20d78d241b448aa0b2e3f49d902d3ab63a551932.
Change-Id: I4d61024fb29978e7f1bacdd693fc6f1bc00bd0cc
Reviewed-on: https://chromium-review.googlesource.com/262918
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
20d78d24
|
2015-03-25T12:27:43
|
|
Don't use a helper function to get the vertex attributes.
The overhead of the function call ended up being a hot spot for draw calls
since the attributes are iterated over many times in VertexDataManager.
BUG=angleproject:959
Change-Id: I6c11d4a5a22c314c69b3403dfdeb2d950b1c7639
Reviewed-on: https://chromium-review.googlesource.com/262336
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Nicolas Capens <capn@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
ba4c4a85
|
2015-02-24T12:38:46
|
|
Implement basic functionality in VertexArrayGL.
No support for raw vertex data pointers yet.
BUG=angle:880
Change-Id: Ifa8099b0f49028a1465edecde495ba725ac79598
Reviewed-on: https://chromium-review.googlesource.com/252801
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
9d9132df
|
2014-12-03T14:46:48
|
|
Remove support for compiling libANGLE as a dynamic library.
BUG=angle:733
Change-Id: Iacef45b89f234091eb5df505437adabece1e564b
Reviewed-on: https://chromium-review.googlesource.com/232961
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
8bc361e1
|
2014-11-20T16:23:31
|
|
Support compiling libANGLE as a static or shared library.
BUG=angle:733
Change-Id: If27d3330534bce0f5b691010ea7d97bcb7579122
Reviewed-on: https://chromium-review.googlesource.com/231052
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
2207213b
|
2014-11-20T15:15:01
|
|
Move as many files as possible from common to libANGLE.
BUG=angle:733
Change-Id: If01c91cd52ac5c2102276a9fdc4b68ebc13e47f9
Reviewed-on: https://chromium-review.googlesource.com/231850
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
4349ab85
|
2014-11-25T15:53:34
|
|
Revert "Move as many files as possible from common to libANGLE."
Chromium directly includes our common/version.h and couldn't build after this change.
This reverts commit f0a2c7727f9863c38a435a16a69d513c481fbbdd.
Change-Id: Iafc41b1a3973f609518fe3588fdb64cecc285332
Reviewed-on: https://chromium-review.googlesource.com/231840
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
f0a2c772
|
2014-11-20T15:15:01
|
|
Move as many files as possible from common to libANGLE.
BUG=angle:733
Change-Id: I40cee6e2e305ac493acbc8649f858785c0569aed
Reviewed-on: https://chromium-review.googlesource.com/231051
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
0a73dd85
|
2014-11-19T16:18:08
|
|
Fix include guards.
BUG=angle:733
Change-Id: I08b2c11c4831f1161c178c1842b10e807185aced
Reviewed-on: https://chromium-review.googlesource.com/230831
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
2b5420c0
|
2014-11-19T14:20:15
|
|
Merge libGLESv2 and libEGL classes into libANGLE.
BUG=angle:733
Change-Id: Ic491c971411fe82c56cd97c5c8325ac14ec218df
Reviewed-on: https://chromium-review.googlesource.com/230830
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|