|
7a06ac1b
|
2018-03-15T10:17:04
|
|
Vulkan: Dynamic update of uniforms
- This change enables us to update uniforms indefintely using
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC descriptor types.
- Enables 219 new dEQP tests in the uniform_api namespace.
- Creates a new white box test to validate new buffer allocation.
Bug: angleproject:2392
Change-Id: I8146e6104a6b7727f63265a4671577d251a8fca8
Reviewed-on: https://chromium-review.googlesource.com/965929
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
d7518622
|
2018-03-27T09:44:31
|
|
Buffer11: Refactor Subject/Observer pattern.
Instead of having a direct/static observer distinction, add two
messages for 'Contents Changed' and 'Storage Changed'. This makes
Buffer11 itself the subject with two different message handling
cases in the onSubjectStateChange methods.
Bug: angleproject:2389
Change-Id: I645cd4b7cc7ce51cb7f48a01c7fc72939cbe89fe
Reviewed-on: https://chromium-review.googlesource.com/957940
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
dfebe9b2
|
2018-03-14T10:08:12
|
|
D3D11: Add dirty bits for Transform Feedback.
After testing, it seems practially impossible to trigger a
dependent state change in a Buffer that would affect XFB.
Any buffer change would have to happen between a pause or
begin/end of XFB, which would trigger a state update.
Bug: angleproject:1155
Bug: angleproject:2389
Change-Id: Ic3c1dc7cec661a826909bb5647ddabda1d6fb7fc
Reviewed-on: https://chromium-review.googlesource.com/948795
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b3b177d7
|
2018-03-09T16:37:22
|
|
Update driver constants on program change. Comes with a new SamplerMetadataUpdateOnSetProgram test.
This is a fix for a graphics problem we've been seeing for a while with WebRender+Angle on Nvidia/Windows. The sampler metadata doesn't get updated properly for some of the draw calls, since it's not invalidated on program change (this is what the CL is fixing). Extra entries get filled with garbage data because the constant buffer is updated with `MAP_WRITE_DISCARD`, and only those samplers are updated that the current program has. This may generally occur undetected, if not for our `textureSize` calls that appear to go the NV-specific Angle workaround path that ignores our `baseLevel = 0` and instead picks the one from the driver constants (which contains garbage), leading to either zeroes returned or even crashing the driver sometimes...
BUG=angleproject:2399
Change-Id: Ie2bef32184e2305c7255299933b899eb3fffb7ab
Reviewed-on: https://chromium-review.googlesource.com/949412
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
7b21381e
|
2018-03-06T10:13:13
|
|
Vulkan: Support changing in-flight Renderbuffers.
Bug: angleproject:2347
Change-Id: I9bb1494a960969bb6e7c8656c27c7c180ddba069
Reviewed-on: https://chromium-review.googlesource.com/922458
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
dc0cdba8
|
2018-02-28T00:42:20
|
|
Vulkan: Fix Texture attachment state changes.
This implements a notification to the Framebuffer that an attachment
had a state change that might require recreating the VkFramebuffer.
This implementation is much simpler than the prior method with
signal notifications. Only currently implemented for TextureVk but
will also be implemented for RenderbufferVk.
Bug: angleproject:2347
Change-Id: I05f7da4132f6ed2bda02671e8ba5ee9805252928
Reviewed-on: https://chromium-review.googlesource.com/930024
Reviewed-by: Luc Ferron <lucferron@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
9550c603
|
2018-02-13T14:47:05
|
|
Code refactoring for end2end tests.
This change:
1) uses the new style ANGLE_SKIP_TEST_IF to skip tests.
2) replaces compile-time definition for OSX to skip tests by run-time
function IsOSX() to skip tests, in order to align with ANGLE_SKIP_TEST_IF.
3) fixes a couple of typos.
BUG=angleproject:2005
Change-Id: I5af77d82257536b9eb79e26afa502f5b91ff6d31
Reviewed-on: https://chromium-review.googlesource.com/915861
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
2900c3be
|
2018-02-09T16:02:41
|
|
Vulkan: Add culling rasterization states tests and invert front face
Bug: angleproject:2352
Change-Id: I0ac83f3173d22a2ee8bc98d2fd7bfa1875d46b8c
Reviewed-on: https://chromium-review.googlesource.com/912358
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
00155d58
|
2018-02-06T10:48:47
|
|
Vulkan: Implement scissor test and add a simple test for it
Bug: angleproject:2338
Change-Id: I699189fcd41feca1656c8553fdf4c1078421524d
Reviewed-on: https://chromium-review.googlesource.com/904861
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
14cb42c0
|
2018-01-24T14:11:19
|
|
Clean up passed end2end tests on Intel Linux platforms.
Only one end2end test still fail for ANGLE issue 1346.
BUG=angleproject:1346
Change-Id: Ibeefe600b21b6ae2056e304d18a8fc4071a48cbe
Reviewed-on: https://chromium-review.googlesource.com/882294
Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
5b18f487
|
2017-11-30T17:24:22
|
|
Vulkan: Implement basic TexSubImage2D.
This also adds a test for updating a Texture that is in-use. This will
ensure our Texture updates occur at the right time when we're
implementing command re-ordering.
Bug: angleproject:2264
Bug: angleproject:2200
Change-Id: Id6040d7238eca031e3cc7b27564d8ea815bf3d73
Reviewed-on: https://chromium-review.googlesource.com/801031
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|
|
c622833c
|
2017-11-16T21:21:56
|
|
Re-enable SimpleStateChangeTest.RedefineBufferInUse on Win/Intel
Now SimpleStateChangeTest.RedefineBufferInUse can pass on Win/Intel
with https://chromium-review.googlesource.com/756959
BUG=angleproject:2221
TEST=angle_end2end_test
Change-Id: Ibdb619a61fcaa35c72ff5a22dc6905edf9f0ec7b
Reviewed-on: https://chromium-review.googlesource.com/774679
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
9776035d
|
2017-11-09T13:08:29
|
|
Vulkan: Implement Buffer updates.
This allows the app to update Buffer data while the data is in use
by the GPU. For instance, uploading new vertex attribute data after
a draw call.
It introduces a StagingBuffer helper class, similar to StagingImage.
These classes are somewhat temporary and could be redesigned.
BUG=angleproject:2200
Change-Id: If8634b1411779b16c2bd22cce18a5f37ed958d1c
Reviewed-on: https://chromium-review.googlesource.com/756959
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
5b09d90d
|
2017-11-06T12:06:24
|
|
Skip RedefineBufferInUse Vulkan test on Win/Intel.
Also cleans up GenerateWorkarounds a bit for D3D11.
BUG=angleproject:2221
Change-Id: I01667f850051045006d3439406aac3f4d094a374
Reviewed-on: https://chromium-review.googlesource.com/754915
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
7bd16666
|
2017-10-28T19:40:50
|
|
Vulkan: Allow in-flight Framebuffer changes.
This allows the app to alter Framebuffer attachments while there
are existing command buffers using the resources and attachments.
BUG=angleproject:2200
Change-Id: I3298dafef5e3bd2c6efda8e8a32a6cf7febc13dc
Reviewed-on: https://chromium-review.googlesource.com/742370
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
526543cb
|
2017-10-28T10:59:16
|
|
Vulkan: Fix deleting in-use Framebuffer.
BUG=angleproject:2200
Change-Id: I13d661b690a6a9e67b3e8a27f9d7bd4126dca87f
Reviewed-on: https://chromium-review.googlesource.com/742749
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
1b038241
|
2017-11-01T15:14:36
|
|
Vulkan: Support Texture redefinition.
Because initializing the texture can queue a copy from a staging
vk::Image, we must ensure we're not in a render pass. To make this
easier we move the current render pass tracking into the RendererVk
from the FramebufferVk class. (Note: in the future we will have
deferred command submission and this will become unnecessary.)
BUG=angleproject:2200
Change-Id: Ide8d4d70b50efbd79bbfa7006ad75cbc57cdf4c7
Reviewed-on: https://chromium-review.googlesource.com/741549
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
8724e254
|
2017-10-28T10:44:40
|
|
Vulkan: Fix re-creating buffer storage.
BUG=angleproject:2200
Change-Id: Id60e857517cce9c0bfa272e4e6a399f236e395f7
Reviewed-on: https://chromium-review.googlesource.com/741548
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
096f278e
|
2017-10-28T10:44:40
|
|
Introduce SimpleStateChangeTests.
BUG=angleproject:2200
Change-Id: I5bf2305a6d98f16c3c2677d1c81b8285fa7ba3f9
Reviewed-on: https://chromium-review.googlesource.com/737559
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
5307e15d
|
2017-09-17T16:43:07
|
|
D3D11: Re-check disabled attribs on VAO switch.
When switching VAOs, if we switch to a VAO which has disabled
attributes, we could occasionally in some edge cases not have a buffer
initialized to render with. Fix this by re-checking the current
value (disabled) attributes every VAO switch.
Probably a regression caused by d28758d:
"D3D11: Re-enable updateVertexBuffer dirty bits."
BUG=angleproject:2156
BUG=angleproject:1156
Change-Id: Ic1795f914b9b4fa846241b0b4f9a8fe9c1183320
Reviewed-on: https://chromium-review.googlesource.com/669963
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
d28758de
|
2017-08-30T15:32:48
|
|
D3D11: Re-enable updateVertexBuffer dirty bits.
In some cases, when the app would call glBufferSubData to do a small
data update in an existing vertex buffer, the sync code would not
flush out the data to the native D3D11 buffer from the temporary
staging buffer.
Fix this problem by notifying the VertexArray11 class when buffer
data is updated. Note that in the future we can improve this by
using a different update notification for when the buffer data changes
and when the underlying storage changes. For now take a very broad
approach.
BUG=angleproject:1156
Change-Id: I2e0fabc97c1f1d5a14d609247e61c602e9a5a85f
Reviewed-on: https://chromium-review.googlesource.com/644208
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c4e93668
|
2017-05-01T10:45:59
|
|
Update end2end tests to function without EXT_texture_storage.
This also exposed an issue in our glTexSubImage2D validation where the
sized format would be used for the texture support check when the unsized
format was provided. The GL_ALPHA32F format is not valid unless
EXT_texture_storage is present but using GL_ALPHA + GL_FLOAT is valid.
BUG=angleproject:1958
Change-Id: Ice0b7549c39559990942176481c5175df17aaf92
Reviewed-on: https://chromium-review.googlesource.com/491246
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c1d770e8
|
2017-04-13T17:31:24
|
|
Refactor remaining GLES 2.0 entry points.
This will pave the way for several features, like auto-generation.
BUG=angleproject:747
Change-Id: Ic390ac412f4e6b61346629093f185a4c07ea0284
Reviewed-on: https://chromium-review.googlesource.com/474118
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
7e24bfd3
|
2017-02-02T21:45:37
|
|
Fix StateChangeTestES3.FramebufferIncompleteWithCompressedTex
Was firing GL_DEBUG_TYPE_ERROR LogGLDebugMessage() on standalone Linux.
According to OpenGL ES 3.0.4 page 289:
The number of bits that represent a 4x4 texel block is 64 bits
if internalformat is given by COMPRESSED_RGB8_ETC2.
16x16 pixels are 16 blocks, giving 128 bytes.
BUG=angleproject:1826
Change-Id: I367e5a1369e1da2906c2ffc5ca5d703b62baf578
Reviewed-on: https://chromium-review.googlesource.com/436824
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
1be913cf
|
2016-07-11T17:59:16
|
|
Add support for ES31 context creation
The dEQP test for context creation passes.
SH_WEBGL3_SPEC has been added, but it should be considered whether we
should keep it, remove it or rename it. It was added so that there is
a webgl mapping to es 310 shaders. Check Compiler.cpp. The bison file
has been modified so that some tokens from es3 can be also used in
es31 as well.
A separate macro ES3_1_ONLY is added so that some tokens are limited
only for es 310 shaders.
BUG=angleproject:1442
TEST=angle_unittests
Change-Id: I2e5ca227c96046c30dc796ab934f3fda9c533eba
Reviewed-on: https://chromium-review.googlesource.com/360300
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e9a6593a
|
2016-06-20T17:57:05
|
|
Fix suppression for Intel.
BUG=None
Change-Id: I3e2e7e845e9ad3814f7d85e56c12023a5e2ef0df
Reviewed-on: https://chromium-review.googlesource.com/354104
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c7f59d02
|
2016-06-20T10:12:08
|
|
Suppress a Wintel/OpenGL failure on a new test.
BUG=angleproject:1388
Change-Id: I4d346ca3c6914e56055aa6492d9d013634a1b9ad
Reviewed-on: https://chromium-review.googlesource.com/353693
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
362876b1
|
2016-06-16T14:46:59
|
|
Cache Framebuffer completeness.
Improves performance on the render-to-texture microbenchmark
by ~3x on the OpenGL back-end. Wipes out several of the top profling
hotspots on that benchmark.
BUG=angleproject:1388
Change-Id: I6a35a0b435b2ed3c83d32acdb9df090df98214ad
Reviewed-on: https://chromium-review.googlesource.com/348957
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
9e3c615e
|
2016-03-29T21:58:33
|
|
Suppress end2end failures for the new Linux Intel bot.
Since this is a new bot, we should make it green ASAP so we can catch
any new regressions.
BUG=angleproject:1346
Change-Id: I2c1288b8115a9d7980d5a3f37753b35cbb837486
Reviewed-on: https://chromium-review.googlesource.com/336050
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
518b9fab
|
2016-03-02T11:26:02
|
|
Suppress some failing end2end_tests on Intel.
BUG=589851
Change-Id: Ia580cee30e6842aaddb4683025f425166f0f6120
Reviewed-on: https://chromium-review.googlesource.com/329735
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f09bf669
|
2016-03-02T11:26:01
|
|
Revert "Suppress some failing end2end_tests on Intel."
This reverts commit 7208f6994cf7d810c2226965362aad43d2a66f53.
Still some failures on Intel, requires a slightly different solution.
BUG=589851
Change-Id: I6ac6599249e9e0f6319c917e04734cd48ca9274d
Reviewed-on: https://chromium-review.googlesource.com/329734
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
7208f699
|
2016-02-29T10:47:35
|
|
Suppress some failing end2end_tests on Intel.
BUG=589851
Change-Id: I91588014784a8a9b75389aeb596923458c30d80a
Reviewed-on: https://chromium-review.googlesource.com/329427
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
1fbc59fe
|
2016-02-24T15:25:51
|
|
D3D11: Enable dirty bits for Framebuffer11.
This patch works using a notification scheme - whenever a Texture or
Renderbuffer changes in such a way as to recreate its RenderTarget, we
pass a signal to the Framebuffer to invalidate some internal state.
Everything is entirely tracked in the Renderer11 layer, and the GL
layer is left untouched.
A RenderTarget11 now tracks points to which it is bound, and the
Framebuffer11 is mostly responsible for managing those links.
The three locations where we notify a Framebuffer when its bound
RenderTargets might be dirty are:
1) RenderTarget11::~RenderTarget
2) EGLImageD3D::copyToLocalRendertarget
3) TextureStorage11_2D::useLevelZeroWorkaroundTexture
This patch gives about a 10% score increase in the D3D11 draw call
benchmark on my system.
BUG=angleproject:1260
Change-Id: Ide38aeadff4a2681bf5bd685e8ca3c9e2612a380
Reviewed-on: https://chromium-review.googlesource.com/327255
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>
|
|
5103f4c0
|
2016-01-26T11:40:18
|
|
Supress AMD OpenGL failures in angle_end2end_tests.
BUG=angleproject:1291
Change-Id: I4fc8cc152bb5ef18fff78bf312a14691e9de0243
Reviewed-on: https://chromium-review.googlesource.com/324030
Tryjob-Request: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
60ec6ea7
|
2016-01-22T15:27:19
|
|
Implement dirty bits for Framebuffer.
The dirty bits set the stage for performance improvements in D3D, but
don't actually reduce any of the redundant work just yet.
BUG=angleproject:1260
Change-Id: Ib84e6a9b7aa40c37c41790f492361b22faaf4742
Reviewed-on: https://chromium-review.googlesource.com/318730
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|