|
c564c070
|
2017-06-01T12:45:42
|
|
Pass gl::Context to impl methods instead of ContextImpl.
In some cases we might have to call back into the GL layer, passing
the Context, and if we just have a ContextImpl pointer this isn't
possible. It also removes the need for SafeGetImpl.
BUG=angleproject:2044
Change-Id: I6363e84b25648c992c25779d4c43f795aa2866d6
Reviewed-on: https://chromium-review.googlesource.com/516835
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
bdc1e2a2
|
2017-05-24T14:40:27
|
|
D3D11: Consolidate Buffer allocation.
We now allocate and release all buffer resources from a single place,
allowing us to allocate junk memory, clear on init, and track the
currently allocated buffer memory.
BUG=angleproject:2034
Change-Id: Id60b63a7f77bc369dfc494a7587ab06c8d34a8e2
Reviewed-on: https://chromium-review.googlesource.com/503253
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
2c479d6e
|
2017-05-24T14:37:22
|
|
D3D11: Use TextureHelper11 everywhere.
This consolidates all texture allocation into ResourceManager11.
It removes a lot of error checking and resource management code.
In a few places we're storing some redundant information, like in
TextureStorage11, we might store the Format pointer in two places,
or the Texture's size.
BUG=angleproject:2034
Change-Id: I9369e76925a67632c444c662e5667c5ed7875547
Reviewed-on: https://chromium-review.googlesource.com/503252
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
9d7d719c
|
2017-05-24T14:35:59
|
|
D3D11: Move CreateStagingTexture to Renderer11.
This will make staging texture tracking easier.
BUG=angleproject:2034
Change-Id: I2f0418cc5784100bf6fba59b4bda1b2dd9dc18d1
Reviewed-on: https://chromium-review.googlesource.com/503251
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e0e009fe
|
2017-05-19T14:13:03
|
|
D3D11: Consolidate SRV allocation.
This change also moves all SRV storage to use the custom smart
pointer classes in ResourceManager11. Every single SRV is now
allocated in ResourceManager11. For TextureStorage11 and
RenderTarget11, we use a shared pointer type since the SRVs use
shared ownership by both classes.
BUG=angleproject:2034
Change-Id: I90666fbbbc23ff10870b7401f3da09ef79258136
Reviewed-on: https://chromium-review.googlesource.com/503250
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: 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>
|
|
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>
|
|
25e297e9
|
2017-04-20T17:01:20
|
|
D3D11: Alias dirty buffer channel bindings.
The types for this were a bit disorganized. Clean this up.
BUG=angleproject:1635
Change-Id: I669d347697e0c7c5b06ed7165fa0997c375e876e
Reviewed-on: https://chromium-review.googlesource.com/483315
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
1e5499db
|
2017-04-05T11:22:16
|
|
Refactor Signal utils into template classes.
This will allow us to pass on extra information to the receiving end,
such as the specific texture levels that are dirty.
BUG=angleproject:1635
Change-Id: Idb7ca1d625499e50e7712c458b694f6e9bfc0595
Reviewed-on: https://chromium-review.googlesource.com/453382
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
fbe49a8f
|
2016-12-19T14:19:10
|
|
ES31: Implement DrawArraysIndirect D3D part
There are four buffer types for vertex attribute storage in D3D11:
DIRECT
STATIC
DYNAMIC
CURRENT_VALUE
When drawing, it will call applyVertexBuffer to bind the right type
buffers in D3D11.
DIRECT uses the gl buffer directly without any translation.
CURRENT_VALUE uses a single value for the attribute.
STATIC translates the whole vertex buffer once. So it doesn't need the
first, count and instance informations since it always translates the
whole buffer.
DYNAMIC translates the data every frame. To improve the performance,
in implementation, it only translates 'count' vertexes from 'first'
location in vertex buffer with one drawing for non-instanced vertices.
'first' and 'count' are got from draw parameter list. And for the
translated vertex buffer, when drawing, the first vertex location is 0.
From above analysis, we can see that if all attribute storages are
non-dynamic, we can directly use the indirect buffer to draw. But for
dynamic storages, we have to calculate the first, count, and instances
from indirect buffer and apply them to translate the dynamic type
buffers. Meanwhile, we have to set the first to 0 (see above
description)when drawing.
DrawArrysIndirect implementation is like below:
1. Check whether all vertex attributes are non-dynamic
2. If yes, applyVertexBuffer and DrawInstancedIndirect
3. If no, 1) calculate first, count, and instances from indirect buffer.
2) applyVertexBuffer with these parameters.
4) Use DrawInstanced instead of DrawInstancedIndirect.
BUG=angleproject:1595
TEST=dEQP-GLES31.functional.draw_indirect.draw_arrays_indirect*
Change-Id: I36431f416443279d51de523b07ce60727914cbbf
Reviewed-on: https://chromium-review.googlesource.com/446690
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
9f9b1d2d
|
2017-03-06T18:25:22
|
|
Make ScratchBuffer its own type.
This helper tool in Renderer11 can be useful in other back-ends,
or even in the front end.
BUG=angleproject:1635
Change-Id: I18ec19a891a9bdfa7b80dea1b8e308abf206906b
Reviewed-on: https://chromium-review.googlesource.com/450919
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
5f56ddb9
|
2017-01-13T17:29:55
|
|
Buffer: Pass Context to all impl methods.
This allows us to retrieve Device handles for Vulkan, and could allow
us to avoid storing some pointers for other back-ends.
BUG=angleproject:1684
Change-Id: Iccd5b97cf1c3a332d62a38ad0fcf21c352270439
Reviewed-on: https://chromium-review.googlesource.com/426400
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
b8353b01
|
2017-01-25T12:57:21
|
|
Vulkan: Simple buffer creation.
This is necessary to initialize vertex arrays.
BUG=angleproject:1579
Change-Id: Ic5a232d5cdfaa75b41241901de842e62ff3b173f
Reviewed-on: https://chromium-review.googlesource.com/406645
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
c1a5d16e
|
2017-01-18T23:01:35
|
|
Buffer11: Fix use-after-free with system memory storage.
Certain use patterns could trigger a deallocation of the system memory
storage as it was being initialized. Fix this by resetting the idle
counter before we enter into the internal update which would trigger
the deallocation check.
BUG=chromium:682020
Change-Id: Ic3dac78ffa778cbaf103820a23eea009ce439d5c
Reviewed-on: https://chromium-review.googlesource.com/430304
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@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>
|
|
555009ce
|
2016-11-16T11:51:01
|
|
Buffer11: Intel workaround for constant buffers.
This workaround avoids using inter-buffer copies involving constant
buffers. Instead of copying from a staging storage to a constant
buffer (or vice-versa), the Buffer memory managment will keep the
system memory storage around permanently. This uses a bit more memory
but should fix all the problematic cases where we have the canonical
version of the buffer data inside GPU memory.
BUG=chromium:593024
Change-Id: I2ce0cfd22784aa43e819ce2df2d0da540d0a0cfe
Reviewed-on: https://chromium-review.googlesource.com/412140
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
96ed3527
|
2016-11-16T11:27:43
|
|
Buffer11: Slight cleanup in copyFromStorage.
We can call setData internally to re-use the same code.
BUG=chromium:593024
Change-Id: I9f53bef1e86a11fc23799123937c354bf45de014
Reviewed-on: https://chromium-review.googlesource.com/411919
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
3ae14613
|
2016-11-16T11:18:44
|
|
Buffer11: Refactor constant buffer range getter.
This getter will now return the offset to bind along with the
ID3D11Buffer pointer. This encapsulates the logic of the emulation
so that we only actually check the capabilities of the driver in
a single place. This solves the issue of needing to edit the code
in multiple places when trying to force the caps for debugging,
and also encapsulates the offset calculation in the Buffer11 class.
BUG=chromium:593024
Change-Id: Idb09d560868ae12b98bcaf4ea031c4e0b6c82b4a
Reviewed-on: https://chromium-review.googlesource.com/411918
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
8f775607
|
2016-11-03T16:45:34
|
|
Introduce a gl::BufferState class.
This state can share vital pieces of information with the impl.
The most elementary state is the buffer size, which then the
impl doesn't need to replicate.
BUG=angleproject:1579
Change-Id: I341393c64a6e49de65c1d53b1bad2fa143209862
Reviewed-on: https://chromium-review.googlesource.com/406644
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
d89792f4
|
2016-10-30T22:41:53
|
|
Buffer11: Keep system memory storage for large UBOs.
The system memory storage is needed to back UBOs larger than the max
constant buffer size in D3D11 Windows 7. Because readback from UBOs
can be tricky, the system memory storage keeps the canonical copy of
the data in this case.
We can also extend this to add a workaround to fix the outstanding
failure cases of UBOs on Intel.
BUG=chromium:660670
Change-Id: Ia3119d3064d10c4262def4c5a967972b4de2d10f
Reviewed-on: https://chromium-review.googlesource.com/405367
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
5677e4d1
|
2016-10-28T15:27:07
|
|
Buffer11: Ensure we don't overflow on setData.
When mapping uniform buffers for very large buffers, we could end
up copying past buffer bounds. This would trigger crashes on some
configs. We can fix this by clamping the copy size correctly.
BUG=chromium:659892
Change-Id: I9d1af984da34867692d4c7b8908c016ebec7a63b
Reviewed-on: https://chromium-review.googlesource.com/404931
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
3b5ffe5c
|
2016-10-24T15:47:16
|
|
Fix ASSERT in Buffer11::PackStorage::copyFromStorage.
This ASSERT was being overly restrictive, when the code would work
correctly when reading from system memory storage as well as staging.
BUG=angleproject:1555
Change-Id: Ib45185d8c127a1fb2ce54db9e96fe41d68d5ff2e
Reviewed-on: https://chromium-review.googlesource.com/402269
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c4431804
|
2016-10-03T15:41:38
|
|
D3D11: Fix Buffer11::copyFromStorage and UBOs.
The change to initialize a constant buffer immediately after
calling BufferData in D3D11 led to a bug where we would map
the UBO for writing with the wrong map bits. Fix this by
using the same map method as the rest of the code.
The D3D11 runtime seems to allow arbitrarily large constant buffers
on Windows 10, but not Windows 7. Thus this CL also fixes a bug in
our constant buffer size clamping to not copy more than the available
buffer size for uniform buffers.
BUG=chromium:651493
Change-Id: I876767691d02db90ecb08a8fa78199f03339a35e
Reviewed-on: https://chromium-review.googlesource.com/391167
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
1ce09ace
|
2016-09-21T10:43:38
|
|
D3D11: Free buffer staging storage when idle.
Using the same policy as for system memory storage, we release
the staging buffer if it has been unmodified for several uses.
We could further extend this technique to other storage buffers
using a nearly identical policy. We might need to mitigate the
cost of iterating over all the storages of all the buffers.
BUG=angleproject:516
Change-Id: Ib24ef03cf4184ef6f0c24f83347538df82de5f58
Reviewed-on: https://chromium-review.googlesource.com/387200
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
2e60034b
|
2016-09-19T13:56:40
|
|
D3D11: Store Buffer SRVs in native storage.
This allows us to not store std::pairs to identify SRVs. Instead
we can release the cached SRVs directly when we re-create the
native buffer.
BUG=angleproject:1513
Change-Id: I6f6d5edc659aa843c9439b97661073415f1a772b
Reviewed-on: https://chromium-review.googlesource.com/385818
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
57b9424f
|
2016-09-09T12:48:00
|
|
D3D11: Release SRV cache in Buffer11 destructor.
This was leading to a resouce leak with fast unpack.
BUG=angleproject:1513
Change-Id: I4ff6c6e3c889392e314654d63f2db8f671b6913c
Reviewed-on: https://chromium-review.googlesource.com/383711
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
29639857
|
2016-09-02T15:00:09
|
|
D3D11: Work around Intel uniform buffers bug.
When copying from a staging buffer to a uniform buffer, the first
upload would be incorrect. Work around this by trying to upload
directly to a uniform buffer on the first BufferSubData call.
BUG=chromium:593024
Change-Id: I0df3a1422b962bf3ece5d445f435df01e3544b67
Reviewed-on: https://chromium-review.googlesource.com/368774
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c2c106d4
|
2016-08-11T12:42:14
|
|
D3D11: Clean up buffer calls a bit.
BUG=None
Change-Id: I3b697c3b721b5be4888d039a5cefd160ab5b23f8
Reviewed-on: https://chromium-review.googlesource.com/367877
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
11b30612
|
2016-08-02T12:31:58
|
|
D3D11: Store ANGLEFormatSets instead of ANGLEFormats.
This saves us looking up the FormatSet repeatedly.
BUG=angleproject:1455
Change-Id: I77890c1eb427e7d087ceaf194a5001b8b03585d4
Reviewed-on: https://chromium-review.googlesource.com/359084
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
91bc2907
|
2016-07-14T13:38:52
|
|
D3D11: Add support for pack parameters when packing to PBOs.
BUG=angleproject:1268
TEST=conformance2/reading/read-pixels-pack-parameters.html
Change-Id: Ia7d69bdabd94d146bc027e6a6d3bb619b1ada2e8
Reviewed-on: https://chromium-review.googlesource.com/360491
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
5733801a
|
2016-06-23T18:10:38
|
|
D3D11: Refactor depth/stencil blit code.
Blit11 refactorings enable re-using some code for multisample resolve
blits. Also some Renderer11 refactorings to use TextureHelper11 make
the code more flexible for the multisample resolve, to come later.
BUG=angleproject:1246
Change-Id: Id0c168cef75b0f487cb3995a906f6473989edcd5
Reviewed-on: https://chromium-review.googlesource.com/354420
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e02a6834
|
2016-06-09T06:52:41
|
|
Refactor how we signal dependent state changes.
Dependent state changes happen when the user calls TexImage
on a Texture attached to a Framebuffer. The Framebuffer should be
told 'hey, you should know about this'. Other objects also have
dependent relationships, like VertexArrays and Buffers.
This refactoring uses a binding pointer design, similar to the type
'RefCountObject'. This design fixes the need for manual decoupling
when one or the other is destroyed. The pointers are cleaned up in
destructors, and do no-ops when either the source or dest is missing.
Also move these new classes to a location where they are accessible to
the GL layer; they will be important for framebuffer completeness.
BUG=angleproject:1388
Change-Id: I92610acb85dae6f9c009b8f071e121fde53782ae
Reviewed-on: https://chromium-review.googlesource.com/348953
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
d2b50a0b
|
2016-06-09T00:13:35
|
|
Move ReadPixels logic to helper methods.
These routines were pretty much duplicated between D3D9 and D3D11.
Since I was going to have to rewrite them again for Vulkan, I
figured it would be best to move them into a common location and
clean them up a bit.
BUG=angleproject:1319
Change-Id: I15d39b052daf3e1020dbd0880f01ae84f3686a0a
Reviewed-on: https://chromium-review.googlesource.com/349630
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e2e406c3
|
2016-06-02T13:04:10
|
|
Add base::numerics for safe math and conversions.
This replaces are "IsUnsignedXXXSafe" family of methods.
Also add overflow checks to unpack block sizes.
BUG=angleproject:1397
Change-Id: Ib47be149b0486c70f795b0d0f8899441faac9340
Reviewed-on: https://chromium-review.googlesource.com/348062
Reviewed-by: Geoff Lang <geofflang@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>
|
|
e4857c7d
|
2016-04-21T14:13:53
|
|
Buffer11: Use adaptive threshold for releasing system memory.
The hard-coded threshold of five uses before a release was regressing
the Oort online benchmark, which seems to use an index buffer many
times, then change to a different range of indices, which would need
to check the system memory for index range validation.
Also add a performance regression test, and an update to the perf
runner script which checks for the most recent binary among the search
directories.
BUG=594066
Change-Id: Id09cc32fd00bff1c72cbe9b6fb7c210fd047a551
Reviewed-on: https://chromium-review.googlesource.com/339271
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>
|
|
da123308
|
2016-03-29T17:00:48
|
|
Add ANGLE_TRY macros to reduce boilerplate with gl/egl Errors.
The macros don't need to disambiguate between GL/EGL. Also make
helpers to deal with ErrorOrResult.
BUG=angleproject:1310
BUG=angleproject:1327
Change-Id: I8041c4b17a859fe1f236bca3ad266453d67a8fd4
Reviewed-on: https://chromium-review.googlesource.com/335826
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
7d712e7d
|
2016-03-29T21:54:33
|
|
Re-land "Clean up Buffer11."
This cleans up some messy stuff from the emulated index buffers, which
were caching variables that didn't need to be cached.
Also add in missing error checks. This touches a lot of code.
Re-land with a fix for clang-win build.
BUG=angleproject:1327
BUG=angleproject:1310
Change-Id: I31ed81c7242782bef7c5f6cde2192552f7ff9403
Reviewed-on: https://chromium-review.googlesource.com/336052
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e34deaa3
|
2016-03-30T01:50:40
|
|
Revert "Clean up Buffer11."
Fails Clang-win because of std::forward
..\..\third_party\angle\src\libANGLE/Error.h(60,40): error: no matching function for call to 'forward'
BUG=598944
BUG=angleproject:1327
BUG=angleproject:1310
This reverts commit 041d678b4764484386f934df927f00a5df48a351.
Change-Id: I9fb0685cd01090b1faf8417ffa3c9b49eeb4510e
Reviewed-on: https://chromium-review.googlesource.com/336040
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
041d678b
|
2016-03-29T17:00:47
|
|
Clean up Buffer11.
This cleans up some messy stuff from the emulated index buffers, which
were caching variables that didn't need to be cached.
Also add in missing error checks. This touches a lot of code.
BUG=angleproject:1327
BUG=angleproject:1310
Change-Id: Icd722d57d9449388fbabc62c7ea37f0526a568ff
Reviewed-on: https://chromium-review.googlesource.com/334731
Reviewed-by: Geoff Lang <geofflang@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>
|
|
114d129d
|
2016-02-26T12:33:00
|
|
D3D11: Get color read function from ANGLE format
This is done to make it possible to change some of the DXGI formats
of integer textures without affecting their color read function
associations.
The packPixels function gets the ANGLE format from the texture helper,
which now requires the ANGLE format to be passed in at the time of
creation.
BUG=angleproject:1244
TEST=angle_end2end_tests,
dEQP-GLES3.functional.fbo.* (no regressions),
dEQP-GLES3.functional.pbo.* (all pass)
Change-Id: I368337cfe5f8c86ff3292009ccf29e9d01409a07
Reviewed-on: https://chromium-review.googlesource.com/329213
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
e36b92d4
|
2016-03-04T15:46:58
|
|
D3D: Use a single D3D buffer per static vertex attribute.
The current caching logic stores multiple static attributes in a single
buffer if the attributes share a D3D buffer - sometimes.
If a buffer is 'committed' (has been used in a draw) then we would
make a new D3D buffer for the next set of static attributes.
Instead use a simpler scheme of a single D3D buffer for each
static attribute. Also change rx::VertexBuffer to a reference
counted class. This simplifies the caching logic for static vertex
buffers (translated attributes) considerably. We only need to
release the buffers when the ref count is zero, and ensure we
track the ref count correctly when bound to D3D.
This leads the way towards using a simpler dirty bit scheme for
intelligent state updates, and less overhead doing work with
buffer state updates.
BUG=angleproject:1327
Change-Id: I99461d50b9663024eaa654cd56b42a63f1416d08
Reviewed-on: https://chromium-review.googlesource.com/330170
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
8a854d68
|
2016-02-17T11:54:04
|
|
Replace GetDXGIFormatInfo with a GetDXGIFormatSizeInfo where possible
It's not always clear which format should be passed to GetDXGIFormatInfo,
since a resource is associated with multiple formats. In some cases, one
of the formats is typeless and one of them is typed, which would return
different type information depending on which one is used. In some cases,
one of the formats may even be a depth format while another is not.
GetDXGIFormatSizeInfo will return correct data no matter which format
associated with a certain resource is passed to it.
Remaining uses of GetDXGIFormatInfo will need to be addressed separately,
either making sure that they always use the format that makes sense in a
given context, or plumbing in the required information in some other way.
BUG=angleproject:1244
TEST=angle_end2end_tests
Change-Id: If3cb03ab68d27743b1fdeb539234ec621dfa3c04
Reviewed-on: https://chromium-review.googlesource.com/328230
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
b0c14b79
|
2016-02-05T16:49:10
|
|
D3D11: Fix 3D ReadPixels with PBOs.
Pass the FBO attachment to the Buffer packing method so we can
retrieve the layer of the attachment when doing an asynchronous
readback. Also take advantage of the TextureHelper11 class to
remove some redundant code.
BUG=angleproject:1290
Change-Id: I26bb21a03e0ff7a42aab4eee75f3c3d12915f398
Reviewed-on: https://chromium-review.googlesource.com/324021
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e2509a39
|
2016-02-01T14:09:05
|
|
D3D11: Fix basic ReadPixels from 3D attachments.
Use the TextureHelper class to abstractly handle 2D and 3d textures.
Also refactor the Image11 copy methods to be a bit cleaner and not
use the copy conversion path when unnecessary.
This patch does not yet fix layer attachments - the fix for that will
come up in a subsequent patch.
BUG=angleproject:1290
Change-Id: If8b7aa8848ca4260e0dde690e7a99e115a97fabb
Reviewed-on: https://chromium-review.googlesource.com/323442
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c1069a08
|
2016-01-22T15:27:20
|
|
D3D11: Add a TextureHelper class to wrap 2D+3D reads.
In some cases in our code we had hard-coded ID3D11Texture2D, where
the code should handle 2D and 3D textures. This happens in ReadPixels,
where we have to handle 3D textures when the user binds a layer of a
3D textures with FramebufferTextureLayer.
This is a refactoring patch only, which makes the error cleaner.
Tests and the bug fix to come in a follow-up patch.
BUG=angleproject:1290
Change-Id: Ie1c293dead4d5b6b4dd6ce24ba2a9146619b141d
Reviewed-on: https://chromium-review.googlesource.com/322680
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
84b0c3b7
|
2015-11-05T15:15:28
|
|
Re-land "In D3D, cache static vertex buffers to prevent wasteful recreation"
BUG=angleproject:197
Changes since first failed patch:
- Optimized BufferD3D::getStaticVertexBuffer()
- Removed loop to commit static buffers
- Out-of-date static buffers (which are much rarer anyway after this patch)
are marked for deletion at the *next* draw call, rather than searched for
before each draw call. That search was expensive.
The change should see a net improvement to DrawCallPerfBenchmark for D3D null.
Change-Id: If4942e0afd9e8fefadce8820a1305e13636547ef
Reviewed-on: https://chromium-review.googlesource.com/311115
Tested-by: Austin Kinross <aukinros@microsoft.com>
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
5b58cae2
|
2015-11-05T14:51:47
|
|
Revert "In D3D, cache static vertex buffers to prevent wasteful recreation"
Perf bisect traced performance regression to this CL:
8.1% regression in angle_perftests/DrawCallPerf_d3d9_null/score
6.2% regression in angle_perftests/DrawCallPerf_d3d11_null/score
BUG=angleproject:197
This reverts commit 868651d334d060458af13c7ff9211c2f72be0cad.
Change-Id: Iaba7eb4e574eb886496361e61fd5fe78ca14dcb8
Reviewed-on: https://chromium-review.googlesource.com/311150
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
868651d3
|
2015-08-31T15:31:18
|
|
In D3D, cache static vertex buffers to prevent wasteful recreation
BUG=angleproject:197
Change-Id: I66cd10609b2edbcf12b99530eafe1727511fe515
Reviewed-on: https://chromium-review.googlesource.com/296503
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Austin Kinross <aukinros@microsoft.com>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
4d61f7ed
|
2015-08-12T10:56:50
|
|
Reland Fixed compiler warning C4267 'conversion from 'size_t' to 'type', possible loss of data'
Additional warnings found with more testing and added C4267 warning disable only for angle_libpng
BUG=angleproject:1120
Change-Id: Ic403dcff5a8018056fa51a8c408e64207f3362eb
Reviewed-on: https://chromium-review.googlesource.com/293028
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
b195643c
|
2015-08-12T17:35:20
|
|
Revert "Fixed compiler warning C4267 'conversion from 'size_t' to 'type', possible loss of data'"
Seems to have quite a few warnings in 64-bit on my machine.
BUG=angleproject:1120
This reverts commit c5cf9bc47d0ee028adbbf9e9f94ca567eec601dc.
Change-Id: I86768b900aeba52e7a2242d9ae8949f93f1a5ba9
Reviewed-on: https://chromium-review.googlesource.com/293280
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
c5cf9bc4
|
2015-08-06T10:46:48
|
|
Fixed compiler warning C4267 'conversion from 'size_t' to 'type', possible loss of data'
BUG=angleproject:1120
Change-Id: I01ef10bea7f487c2b394d030c76628f38d2ea645
Reviewed-on: https://chromium-review.googlesource.com/292780
Tested-by: Cooper Partin <coopp@microsoft.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
53cabecc
|
2015-07-24T10:52:14
|
|
BufferD3D: reinit static data only when the usage is static
Previously, once a dynamic buffer had an associated static data, it would
be considered as static and the static data would be always be
reinitialized just after having been invalidated.
BUG=510585
Change-Id: I403e91d35d11efe17f52947b2182f7b8febd7922
Reviewed-on: https://chromium-review.googlesource.com/288351
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
2fdd3da9
|
2015-07-20T10:14:54
|
|
Add clang-format integration for 'git cl format'.
This will allow us to eventually make a presubmit script for ANGLE,
and also will help new contributors who aren't as familiar with
the style guide.
One outstanding issue is the lack of proper breaking before array
initializers. We don't use arrays all over the place, but this
will likely require a patch for clang.
BUG=angleproject:762
Change-Id: I4702b1fcdfa10b7682b07316be59ec67bcf84943
Reviewed-on: https://chromium-review.googlesource.com/285901
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
f84159aa
|
2015-07-20T14:36:51
|
|
D3D11: Fix mapBufferRange not invalidating static data.
This was causing several dEQP tests with index data to fail.
BUG=angleproject:1073
TEST=dEQP-GLES3.functional.buffer.map.read_write.render_as_index_array.*
Change-Id: Ic231a561202fbcda499b7584905b80252a7407de
Reviewed-on: https://chromium-review.googlesource.com/286772
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
0bf58eab
|
2015-07-09T12:47:29
|
|
Renderer11: expose a metric for the Buffer11 CPU copies size
This will allow us to measure the impact of subsequent optimizations on
the memory consumption of Chrome.
BUG=angleproject:916
Change-Id: Ib57fdfcc2950917eff33080bfb3db574595ecb6d
Reviewed-on: https://chromium-review.googlesource.com/284637
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
e9cc78a1
|
2015-07-06T07:17:00
|
|
Make Buffer11::mBuffersStorages an array instead of a map
BUG=angleproject:516
Change-Id: I7f969435a89c0063b504628d2ec3321cc02df7ce
Reviewed-on: https://chromium-review.googlesource.com/283243
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
bcab6426
|
2015-07-06T07:35:14
|
|
Fix typo in Buffer11::getContantBufferRangeStorage
BUG=angleproject:516
Change-Id: I907ec41ce5691300d17ca5b08a62b0d4579b01e5
Reviewed-on: https://chromium-review.googlesource.com/283244
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
558f2b5a
|
2015-06-02T09:34:11
|
|
Added emulated indexed pointsprite rendering support.
This emulation is for renderers that do not support Geometry Shaders.
BUG=angleproject:949
Change-Id: I7acf003e83ea6661f10a703486e6d07eb28786f8
Reviewed-on: https://chromium-review.googlesource.com/274851
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Cooper Partin <coopp@microsoft.com>
|
|
5a0edc62
|
2015-06-30T12:36:07
|
|
Change intializer list order to match field order.
BUG=505304
Change-Id: I38149e72732f0b4eb7d398f90b5d11660e2a7fbc
Reviewed-on: https://chromium-review.googlesource.com/282465
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
ab4fd98f
|
2015-05-15T14:58:22
|
|
Small fixes for passing code analysis tools.
BUG=angleproject:1005
Change-Id: I8f2a6c0a5a6157303e436b96cc4c4ff1c29cfe18
Reviewed-on: https://chromium-review.googlesource.com/271600
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
fa60f690
|
2015-04-27T18:23:44
|
|
Fixed compilation with mingw.
Change-Id: Icc40c61b5c6df5a0aed4e175f1724ca55f981625
Reviewed-on: https://chromium-review.googlesource.com/267412
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
b48e8b07
|
2015-04-15T14:26:37
|
|
D3D11: Only rewrite for primitive restart when needed.
We would rewrite our index data every draw call. Change the index
check to see if we're writing to the same sized / typed static
buffer and only rewrite the data if the user re-uploaded.
Also add a performance test for the primitive restart workaround.
As a future improvement we could avoid creating new D3D objects
every time we reinitialize static data, since BufferSubData
calls don't change the size of the buffer if the index type
remains the same.
BUG=476658
Change-Id: I9d2540ad8b1b34fa0142ba0bf794cf572da8c61d
Reviewed-on: https://chromium-review.googlesource.com/265838
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
|
|
794e0009
|
2015-04-07T18:31:54
|
|
Fix and enable warning C4244 (Conversion from 'type1' to 'type2', possible loss of data)
Change-Id: Id0e06d7d6600344d858f00dabc219d79289bbc82
Reviewed-on: https://chromium-review.googlesource.com/265020
Tested-by: Minmin Gong <mgong@microsoft.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
b3584fb4
|
2015-04-09T17:34:21
|
|
Revert "Fix and enable warning C4244 (Conversion from 'type1' to 'type2', possible loss of data)"
Causing a build failure on Mac/Clang:
./Tokenizer.cpp:551:7: error: extra tokens at end of #else directive [-Werror,-Wextra-tokens]
#else if defined(_MSC_VER)
http://build.chromium.org/p/chromium.gpu.fyi/builders/GPU%20Mac%20Builder/builds/29136
This reverts commit 3b26e231d99154814eb428f75a67bbe7a21adadc.
Change-Id: I2d11ddcc18130d908fd2ec3d6f5ab890cfccd5e7
Reviewed-on: https://chromium-review.googlesource.com/264983
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
3b26e231
|
2015-04-07T18:31:54
|
|
Fix and enable warning C4244 (Conversion from 'type1' to 'type2', possible loss of data)
Change-Id: I73d9a2b9ad16f032be974b9c819de0dc1247c2ea
Reviewed-on: https://chromium-review.googlesource.com/264533
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
9102e3ab
|
2015-03-23T20:25:45
|
|
Add UBO offset emulation for D3D11.0 and below.
BUG=angleproject:507
Change-Id: I6c5028930051a2af0bd6ffa0ee213e692d3892ef
Reviewed-on: https://chromium-review.googlesource.com/261824
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
cc6f55dd
|
2015-03-20T13:01:02
|
|
Split Buffer::map into map and mapRange to match the API.
BUG=angleproject:681
Change-Id: Ia4bf2b81134a922265ca762f33ac85d9ddbf1a7c
Reviewed-on: https://chromium-review.googlesource.com/261890
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
8c25cdec
|
2015-04-01T16:37:48
|
|
Only check dynamic type in Impl casting helpers.
We can use the Impl casting helper methods to clean up dynamic type
casting.
Change-Id: I5706da74eedd9f3cdc5a728420074a91ad7c95cb
Reviewed-on: https://chromium-review.googlesource.com/263520
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f4bf3811
|
2015-04-01T16:15:32
|
|
Use GetAs/GetImplAs whenever possible.
This patch cleans up the rest of our custom casting helper
functions.
Change-Id: I41975c736765fca855c4498acca31116df3e8317
Reviewed-on: https://chromium-review.googlesource.com/263477
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
|
|
c5b8b59c
|
2015-04-02T16:56:25
|
|
Don't delete sysmem storage if it is the latest storage.
BUG=angleproject:965
Change-Id: I9b4b042e3f9bde3ce713a02aa353b5f3a5cff49e
Reviewed-on: https://chromium-review.googlesource.com/263711
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Gregoire Payen de La Garanderie <Gregory.Payen@imgtec.com>
|
|
f0d10f89
|
2015-03-31T12:56:52
|
|
Replace non-copyable macro with a helper class.
This class provides a simpler scheme for blocking default copy
and assignment operators. It also reduces the amount of code
needed since it's inherited to child classes. This also fixes
the conflict between our macro and the same-named macro in
Chromium code.
BUG=angleproject:956
Change-Id: If0dc72aa3f63fbc7b8fa34907418821c64c39e2f
Reviewed-on: https://chromium-review.googlesource.com/263257
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
|
|
fd1bf4e6
|
2015-03-31T09:46:02
|
|
Add an BufferFactoryD3D class to help mocking.
This D3D-only class has one method, used to generate the D3D
IndexBuffer/VertexBuffer. This can help us mock up
IndexDataManager.
At a later point we can refactor the VertexFormat queries
from Renderer into a Caps struct that mirrors our Texure
Caps.
BUG=angleproject:956
Change-Id: Id8b1220a763873ee871ce92365bbee03633789c7
Reviewed-on: https://chromium-review.googlesource.com/262774
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
f25eb1d6
|
2015-02-17T14:42:32
|
|
D3D11: Use system memory for dynamic buffer updates.
In our current code, we would use a staging texture as the working
copy for buffer updates. This would trigger very large memcpy calls
in some cases for large buffers with small updates. Instead, use
a CPU memory buffer storage, and work with this storage when the
user updates data. This plays much nicer with the VertexDataManager.
BUG=angle:912
Change-Id: I8c32d3d9bb321a06534556ce05b4b99dc3d1e961
Reviewed-on: https://chromium-review.googlesource.com/249183
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
026b4188
|
2015-02-13T11:17:33
|
|
Generalize NativeBuffer11::setData.
We can replace this method with a base class method which uses our
implementation of "map". This allows us to reuse setData in other
mappable buffer storage types.
BUG=angle:912
Change-Id: I7848cb9440b806364d9b2a6e2251323e53206921
Reviewed-on: https://chromium-review.googlesource.com/249182
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
d8d58301
|
2015-02-13T15:46:04
|
|
Make Buffer11.cpp build with clang.
Change-Id: If72bc38dbb484e56a0a26c3aa7ac38bbc319653a
Reviewed-on: https://chromium-review.googlesource.com/249921
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
d12971af
|
2015-02-12T13:29:15
|
|
Fix Buffer11 staging buffer revision update.
This bug could trigger a potential extra copy when drawing with
a pack buffer (or possibly packing vertex/index data).
BUG=angle:912
Change-Id: Ifead6524322aac5bc0be79a05f4db08c8f5a3225
Reviewed-on: https://chromium-review.googlesource.com/249181
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
f03bcad6
|
2015-02-11T16:46:09
|
|
Clean up the style in Buffer11.cpp.
Fix indentation, and simplify the naming scheme for the storage.
Also add some missing DISALLOW_COPY_AND_ASSIGN macros.
BUG=angle:912
Change-Id: I7ac36d8185ce926999501358cec222154d9a3492
Reviewed-on: https://chromium-review.googlesource.com/249180
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
4b3a29e2
|
2015-01-23T15:46:22
|
|
Resize buffer storage on getLatestBufferStorage if needed.
BUG=angle:897
Change-Id: I3d6079b718bb5dd61cbd3098694204aae9bbc932
Reviewed-on: https://chromium-review.googlesource.com/243152
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Gregoire Payen de La Garanderie <Gregory.Payen@imgtec.com>
|
|
62588f5b
|
2014-12-10T10:27:35
|
|
Remove D3D11_BIND_STREAM_OUTPUT usage on D3D11 Feature Level 9_3
Change-Id: Ib9d2d155a6e062488ff5bb5ce578036b6187ca70
Reviewed-on: https://chromium-review.googlesource.com/234276
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Austin Kinross <aukinros@microsoft.com>
Reviewed-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>
|