|
dde78e8c
|
2017-05-22T14:13:27
|
|
ES31: Implement Vertex Attrib Binding on OpenGL
This patch intends to implement Vertex Attrib Binding on OpenGL
back-ends:
1. Add supports for updating vertex attributes by Vertex Attrib
Binding APIs.
2. Refactor the process of updating vertex attribtues in class
VertexArray to make it easier to implement this feature.
BUG=angleproject:1593
TEST=dEQP-GLES31.functional.vertex_attribute_binding.*
Change-Id: I800e61518c552b94b84c415895ad31668b0a84b2
Reviewed-on: https://chromium-review.googlesource.com/510251
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@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>
|
|
dd5f27ee
|
2017-06-07T10:17:09
|
|
Make VertexBinding's member variables private
The patch decorates all members in VertexBinding as private and limits
access to them only through getters and setters. This makes it easier to
debug and keep track of any assignments to the class members.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: Iddd49063d060f136bc9cf11c313a5af0931d433c
Reviewed-on: https://chromium-review.googlesource.com/530786
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
9ab5b822
|
2017-05-30T16:19:23
|
|
Validate that vertex shader input matches the vertex attribute types.
BUG=angleproject:2012
TEST=conformance2/rendering/attrib-type-match
Change-Id: Ic282e0933a5c3c377322dd484534fcc1dfcb3840
Reviewed-on: https://chromium-review.googlesource.com/517974
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|
|
df682a8e
|
2017-03-31T15:13:21
|
|
ES31: Refactor syncState in VertexArrayGL
This patch intends to solve several design issues by refactoring
the process of syncState in VertexArrayGL before implementing
ES3.1 feature Vertex Attrib Binding on the OpenGL back-end.
1. Use nullptr as the flag of using client memory pointer
2. Simplify comparisons in updateAttribPointer.
3. Put all code related to mFunctions->vertexAttrib*Pointer()
into an individual function
4. Remove redundant mStateManager->bindVertexArray() in all
update* functioins and only call it once in syncState().
BUG=angleproject:1593
Change-Id: I8f68534bb9291a601b9b77954d7281e5171c2b55
Reviewed-on: https://chromium-review.googlesource.com/465378
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
231c7f56
|
2017-04-26T13:45:37
|
|
Apply clang-format to many files.
This cleans up the formatting in many places.
BUG=None
Change-Id: I6c6652ebc042f1f0ffecced53582d09d66b4f384
Reviewed-on: https://chromium-review.googlesource.com/487884
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
aa7203ef
|
2017-05-03T23:32:29
|
|
Inherit privately from angle::NonCopyable.
Make all inheritance from angle::NonCopyable private so the compiler
complains about this (admittedly unlikely) code:
class Foo: angle::NonCopyable {
virtual ~Foo() { ... }
};
angle::NonCopyable *p = new Foo;
delete p;
In the above code ~Foo() is not called, only ~NonCopyable(), because the
latter is not virtual. Making it virtual would add overhead to all derived
classes which don't already have a virtual method.
Also tighten access in NonCopyable, because we can.
BUG=angleproject:2026
Change-Id: Id0dc4d959cfb7bb82cf49382118129abb1d3a4f0
Reviewed-on: https://chromium-review.googlesource.com/495352
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
|
|
876429b7
|
2017-04-20T15:46:24
|
|
Update gl2.h and update entry points.
Some method signatures were updated. Types like GLclampf and GLvoid
were replaced with other equivalents.
BUG=angleproject:1309
Change-Id: I05e8e2072c5a063d87ad96a855b907424661e680
Reviewed-on: https://chromium-review.googlesource.com/475011
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
2597fb64
|
2016-12-09T16:38:02
|
|
ES31: Refactor VertexArray for Vertex Attrib Binding
OpenGL ES3.1 feature Vertex Attrib Binding requires vertex arrays should
be split into two arrays:
1. an array of vertex buffer binding points, each of which specifies:
- a bound buffer object,
- a starting offset for vertex attribute data in that buffer object,
- a stride used by all attributes using that binding point,
- a frequency divisor used by all attributes using that binding point.
2. an array of generic vertex attribute format information records, each
of which specifies:
- a reference to one of the new buffer binding points above,
- a component count and format, and a normalization flag for the
attribute data,
- the offset of the attribute data relative to the base offset of each
vertex found at the associated binding point.
Current ANGLE implementation simply uses a struct to represent a vertex
attribute object, which does not meet the requirements above.
This patch aims to be the the basis of the implementation of all ES3.1
Vertex Attrib Binding APIs by refactoring the struct VertexAttribute and
the class VertexArray to fit the new data layout and ensuring all current
functionality is retained.
BUG=angleproject:1593
TEST=angle_unittests, angle_end2end_tests, gpu_unittests
Change-Id: Ieb41f1bf503f815fd0476d2ea045dcb863465254
Reviewed-on: https://chromium-review.googlesource.com/418880
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
0b031061
|
2016-10-13T14:30:04
|
|
Implement robust GetVertexAttrib entry points.
BUG=angleproject:1354
Change-Id: Ic71392555ae4212c4144bc67d7c5e53874af4d53
Reviewed-on: https://chromium-review.googlesource.com/398198
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
3cf12ce6
|
2015-08-27T14:40:48
|
|
Implement the instanced draw calls in RendererGL.
BUG=angleproject:1136
Change-Id: I1167365618bdc3ca37ac0f4c60809de32c7a9d78
Reviewed-on: https://chromium-review.googlesource.com/295733
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
5b49bb83
|
2015-08-31T18:48:50
|
|
Revert "Implement the instanced draw calls in RendererGL."
Causing crashes in some dEQP tests.
This reverts commit c1948415e52dbaefb0d3176b75a58a7b86bd091a.
Change-Id: Idedb32484b4f2b09090346bc4228fe536190a621
Reviewed-on: https://chromium-review.googlesource.com/296440
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
c1948415
|
2015-08-27T14:40:48
|
|
Implement the instanced draw calls in RendererGL.
BUG=angleproject:1136
Change-Id: Id04e357b97c04b3843b25827f705fd802e6a68e3
Reviewed-on: https://chromium-review.googlesource.com/295233
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
d5451f11
|
2015-06-05T10:59:04
|
|
Inline comparison operators of several small ANGLE structs.
Improves draw call overhead of RendererGL.
DrawCallPerf_gl:
Before: 129779 score
After: 136973 score
Improvement: 5.543%
No noticeable difference in DLL size or draw call perf of the D3D
renderers.
BUG=angleproject:959
Change-Id: Id54d49e9e2cfb69431ee26d632c58fee2c42b82c
Reviewed-on: https://chromium-review.googlesource.com/275408
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
27464aa9
|
2015-05-01T11:07:46
|
|
Sync the generic vertex attribute data.
BUG=angleproject:883
Change-Id: If5616bf24c1ac5477ae80cf1d25efa70b62edea1
Reviewed-on: https://chromium-review.googlesource.com/268750
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
6ae6efca
|
2015-03-09T14:42:35
|
|
Only sync the VAO state just before the draw call.
BUG=angleproject:880
Change-Id: Ifd59c0f67aeab0e4700b3dca57c1b75e3fae48b8
Reviewed-on: https://chromium-review.googlesource.com/257671
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>
|
|
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>
|