|
d6781dce
|
2018-08-23T10:51:06
|
|
Extend LinkProgramPerfTest to support compile only
Add an option for "compie_only" and "compile_and_link".
Bug: chromium:849576
Change-Id: Id796ebb85ad5aff1a5272173f11ce2ff42685dce
Reviewed-on: https://chromium-review.googlesource.com/1186159
Commit-Queue: Jie A Chen <jie.a.chen@intel.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
221fa261
|
2018-08-23T10:12:09
|
|
Re-enable BlitFramebuffer tests
Accidentally disabled in 265811130, which intended to disable tests
requiring GL_ANGLE_framebuffer_blit, but also disabled glBlitFramebuffer
tests. glBlitFramebuffer is core, but was conditioned to
EXT_framebuffer_blit.
Bug: angleproject:2773
Change-Id: I0468af8874dc8676a4eb6214b111c08aadc0e2fc
Reviewed-on: https://chromium-review.googlesource.com/1186543
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
eef9de68
|
2018-08-23T11:03:22
|
|
Add validation state change test for draw framebuffer.
This test covers feedback loops and invalid component types.
Bug: angleproject:2747
Change-Id: I3e3c762c5457afef59311f7c5843e464fa386cd6
Reviewed-on: https://chromium-review.googlesource.com/1174093
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
c4097441
|
2018-08-22T12:14:52
|
|
Fix x64 visual studio build errors
Bug: angleproject:2740
Change-Id: I44fd2a1daf3dca764e2eef73e437feb32b36dbaa
Reviewed-on: https://chromium-review.googlesource.com/1185234
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
9259fd0d
|
2018-08-22T12:12:00
|
|
Clean and enable NoLeakingFragments multiview test
Use helper to create multiview backing textures in NoLeakingFragments
test instead of doing FBO attachments twice.
The test seems to pass on Windows after the recent fixes that have
been done to the tests, or possibly due to other earlier fixes.
BUG=angleproject:2687
TEST=angle_end2end_tests
Change-Id: I6015a5b44fdd06faf7b9375bad501355be8d7732
Reviewed-on: https://chromium-review.googlesource.com/1184713
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
a7b35c33
|
2018-08-21T16:32:24
|
|
Add helpers for multiview framebuffer init
Multiview tests now use common helpers to create textures for
multiview framebuffers and often also to attach the textures to the
framebuffers.
The tests now rely on uploaded texture data to initialize the buffers
instead of clearing the framebuffers with glClear.
BUG=angleproject:2765
TEST=angle_end2end_tests
Change-Id: I7d6d63add5943cab610ab888045d5b0f8ba29215
Reviewed-on: https://chromium-review.googlesource.com/1184712
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
5fea1b76
|
2018-08-22T10:05:07
|
|
Add state change test for uniform buffer validation.
Bug: angleproject:2747
Change-Id: Ia808e26a48ecf432cc29ebd8514f265ff3e15ce8
Reviewed-on: https://chromium-review.googlesource.com/1169825
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
4b4197af
|
2018-08-22T15:24:41
|
|
Ignore D3D11 debug layer messages in multiview tests
This is better than skipping the tests entirely. The debug layer
messages appear incorrect and may be specific to Windows 7 and
Windows Server 2008.
BUG=angleproject:2778
TEST=angle_end2end_tests on Windows Server 2008
Change-Id: Ief81fbe22f518c393a37a0969c8987ed9500fbed
Reviewed-on: https://chromium-review.googlesource.com/1184918
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
02cd1526
|
2018-08-22T13:46:21
|
|
Temporarily suppress multiview test failure due to debug layers
On example of the debug layer warnings:
[ RUN ] MultiviewRenderTest.ProgramRelinkUpdatesAttribDivisor/ES3_D3D11_force_geom_shader_side_by_side
Message 0: ID3D11DeviceContext::DrawInstanced: Vertex Buffer at the input vertex slot 1 is not big enough for what the Draw*() call expects to traverse. This is OK, as reading off the end of the Buffer is defined to return 0. However the developer probably did not intend to make use of this behavior.
BUG=angleproject:2765
Change-Id: Ic7f45d7965162640d41d27c4b746e1048de59e15
Reviewed-on: https://chromium-review.googlesource.com/1184906
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
44ae899a
|
2018-08-20T15:37:09
|
|
Fix resource init/teardown in multiview tests
This calls TearDown functions properly in MultiviewDrawTest test
classes.
GL RAII objects can't be used as test class members since the GL
objects need to be deleted before the test class TearDown is called.
Since now the tests call ANGLETestTearDown, this causes D3D debug
layer messages to be checked. It turns out that there are some
seemingly incorrect debug layer messages generated on AMD bots, so
the failing tests are now disabled on AMD/Windows.
BUG=angleproject:2765
TEST=angle_end2end_tests
Change-Id: Ifa0fe4d19b76aa84bb3b6b18c8f66a8ab6bd893e
Reviewed-on: https://chromium-review.googlesource.com/1179839
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
70aeda49
|
2018-08-20T12:17:40
|
|
Add gl::Program::syncState and dirty bits.
Currently this handles uniform block bindings. Cleans up some logic in D3D.
Bug: angleproject:2747
Change-Id: I8c2989738d50a77d6f6d90a9ff11dceab6d3129c
Reviewed-on: https://chromium-review.googlesource.com/1172085
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a4e40b72
|
2018-08-21T17:19:40
|
|
Revert "Expect pass on pointcoord test on Pixel 2"
This reverts commit d710fee3861a6afcd01a993090cb70a535b2f73f.
Reason for revert: pointcoord test still failing on Pixel 2 bot
Original change's description:
> Expect pass on pointcoord test on Pixel 2
>
> Just ran this locally and it passed so re-enabling.
>
> Bug: angleproject:2727
> Change-Id: I10368664dc68f360474dda8534e1fd28875ff4e8
> Reviewed-on: https://chromium-review.googlesource.com/1183528
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Tobin Ehlis <tobine@google.com>
TBR=ynovikov@chromium.org,jmadill@chromium.org,tobine@google.com
Change-Id: If7a3e5dfb12c7b392ae91c477ad9fd9169912f90
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:2727
Reviewed-on: https://chromium-review.googlesource.com/1183503
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
ac6d90ea
|
2018-08-21T13:10:36
|
|
Add more test param documentation to perf tests.
Also add links from other pages.
Bug: angleproject:1944
Change-Id: I344ce075973bd45942d52b819385cb74a5a073ca
Reviewed-on: https://chromium-review.googlesource.com/1183629
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
de8d4cb0
|
2018-08-21T12:58:19
|
|
Optimize BindingsBenchmark::drawBenchmark.
Fix contributed by matavenrath@nvidia.com.
This fixes BindingsBenchmark::drawBenchmark to take only 3% instead of
15% of the time spent in
BindingsBenchmark.Run/gl_100_objects_allocated_at_initialization.
Bug: angleproject:2777
Change-Id: I5b5b6f167289b947767b40e7761d90cf06c49816
Reviewed-on: https://chromium-review.googlesource.com/1181868
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
d710fee3
|
2018-08-21T08:29:33
|
|
Expect pass on pointcoord test on Pixel 2
Just ran this locally and it passed so re-enabling.
Bug: angleproject:2727
Change-Id: I10368664dc68f360474dda8534e1fd28875ff4e8
Reviewed-on: https://chromium-review.googlesource.com/1183528
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
4bcaf998
|
2018-08-17T17:18:28
|
|
Inherit MultiViewProgramGenerationTest from MultiviewTest
It doesn't need to inherit from MultiviewRenderTest since it doesn't
need a framebuffer.
BUG=angleproject:2765
TEST=angle_end2end_tests
Change-Id: I77b232a907afcae7f2f93cbf9da47ca7bd93c959
Reviewed-on: https://chromium-review.googlesource.com/1179881
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
7a4f6b8c
|
2018-08-17T11:38:11
|
|
Fix resource init/teardown in FramebufferMultiviewTest
GL RAII classes can't be used as test class members since the GL
objects need to be deleted before the test class TearDown is called.
BUG=angleproject:2765
TEST=angle_end2end_tests
Change-Id: If19d33bd044c9e74e46f35183e8ca1bc6a96d6cf
Reviewed-on: https://chromium-review.googlesource.com/1179159
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
4836acc5
|
2018-08-20T15:23:18
|
|
Rename and reorganize MultiviewRenderTestBase
MultiviewRenderTestBase is renamed to MultiviewFramebufferTestBase
since the functionality it has is mostly to set up a framebuffer.
This cleans up the test class without including functional changes to
ease diagnosis of issues with resource init/teardown.
BUG=angleproject:2765
TEST=angle_end2end_tests
Change-Id: I0debd6a7a53a2e6bff7100d07b29313d66a79cb5
Reviewed-on: https://chromium-review.googlesource.com/1181052
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
f26b27e2
|
2018-08-17T11:01:19
|
|
Add some shared utilities for multiview tests
This prepares for fixing multiview test resource init/teardown order.
BUG=angleproject:2765
TEST=angle_end2end_tests
Change-Id: I841327416fa76ac682310ef1b2309f5bb4e9fbac
Reviewed-on: https://chromium-review.googlesource.com/1179155
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d731ff82
|
2018-08-13T18:18:51
|
|
Vulkan: support depth offset.
Update pipeline description with depth offset state. Enable test.
BUG=angleproject:2353
Change-Id: Ib087bbff8e145b0e6e862eb6616a4943a989a7b2
Reviewed-on: https://chromium-review.googlesource.com/1173447
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
6e5bf36f
|
2018-08-15T09:53:17
|
|
GLES1: Fixes for Gets() test
- Fixed wrong face parameter for glGetMaterial*.
- Enabled GL_LINE_SMOOTH capability in state only (no rendering yet)
- Enabled logical operation capability in state only (no rendering yet)
- Fixed wrong handling of GL_RGB/ALPHA_SCALE and
GL_POINT_COORD_REPLACE_OES
Test: Enable and pass Gets() GLES1 conformance test
BUG=angleproject:2306
Change-Id: Ib5c50a2055129b76ad24053baf0dac24dcc00761
Reviewed-on: https://chromium-review.googlesource.com/1176161
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Lingfeng Yang <lfy@google.com>
|
|
c1551dc2
|
2018-08-15T17:04:49
|
|
D3D11 fix: Mipmapping was used although disabled via Sampler
When using a sampler the texture was created as if it has mipmaps,
regardless what you specified in GL_TEXTURE_MIN_FILTER via
glSamplerParameteri() -- mistakenly the default value
GL_NEAREST_MIPMAP_LINEAR or the value set via glTexParameteri() was
evaluated.
If you didn't provide mipmaps and didn't let the driver generate them
this led to not sampling your texture data when minification occurred.
BUG=angleproject:2772
TEST=angle_end2end_tests.Texture2DTestES3.MinificationWithSamplerNoMipmapping
Change-Id: I195147e208129c6fa8686bb0d9aea6931b2f20b1
Reviewed-on: https://chromium-review.googlesource.com/1175910
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
2363356f
|
2018-07-17T15:02:36
|
|
Make sure index ranges outside of the GLint range are handled correctly.
IndexRange uses size_t values but DrawCallParams::mFirstVertex is a GLint. This
makes sure all casting is safe.
BUG=864528
Change-Id: Iaa95019615af4d3f79b12bbcb0df13b44cb54339
Reviewed-on: https://chromium-review.googlesource.com/1140898
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
35bc74d6
|
2018-08-03T14:07:59
|
|
ES31: Support atomic functions on D3D11 - Part II
This patch adds the support of translating atomicExchange and
atomicCompSwap without return value on D3D11 back-ends.
As the last parameter of the HLSL intrinsic functions
InterlockedExchange and InterlockedCompareExchange is not optional,
when there is a call of either atomicExchange or atomicCompSwap
without return value, we add a temporary variable for it, so that
we can directly translate all of such calls in outputHLSL.cpp.
BUG=angleproject:2682
TEST=angle_end2end_tests
Change-Id: I7e9c6d3c7d1846c865909b2f5a26592846c82582
Reviewed-on: https://chromium-review.googlesource.com/1161744
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
|
|
7ae70d8f
|
2018-07-06T13:47:01
|
|
ParallelCompile: Parallelize D3D linking
This adds a new linking state to Program. If a Program is in linking
state, on the one hand the foreground thread may continue issuing more
GL calls, and on the other hand the background linking threads may be
accessing Program internally too. Without a proper constraint there
must be conflicts between them. For this purpose, we block any further
GL calls to Program until it's actually linked. In addition, we
prohibit parallel linking an active program, so that ProgramD3D does
not have to worry about such similar conflicts.
Also changes the WorkerThread to support limiting the number of
concurrently running worker threads.
BUG=chromium:849576
Change-Id: I52618647539323f8bf27201320bdf7301c4982e6
Reviewed-on: https://chromium-review.googlesource.com/1127495
Commit-Queue: Jie A Chen <jie.a.chen@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ea926a36
|
2018-08-10T15:22:30
|
|
Add angle_perftests README file.
Bug: angleproject:1944
Change-Id: I93f363dc5fb6096baec01584bbd2fb525a84909c
Reviewed-on: https://chromium-review.googlesource.com/1171502
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
ec1fe5b7
|
2018-08-10T10:05:52
|
|
D3D: Use angle::Result error pattern.
This completes the refactor for the D3D9/D3D11 back-ends.
Bug: angleproject:2752
Change-Id: Ie35a925f75c902d8f9fdab6bc33b3bb9c937f85b
Reviewed-on: https://chromium-review.googlesource.com/1167209
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
b0c8be85
|
2018-08-10T14:36:39
|
|
Fix AMD detection in angle_end2end_tests.
Some Radeon cards in D3D11 would not report AMD or ATI in the
Renderer string. Fix this by also checking for 'Radeon'.
Bug: angleproject:2572
Change-Id: I866c3042e35448deff627efdb8e94fcbc68abf01
Reviewed-on: https://chromium-review.googlesource.com/1171363
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
077cd858
|
2018-08-06T10:46:22
|
|
Vulkan: Introduce Command Buffer Perf Test
Implemented command buffer performance test based on
LunarG samples. Includes a lot of utility functions and
should build/run on Linux, Android
Bug: angleproject:2758
Change-Id: I8606802fb3e8e0621856860c45ef50ba836c26f8
Reviewed-on: https://chromium-review.googlesource.com/1162119
Commit-Queue: Omar El Sheikh <theoking@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
04c084dd
|
2018-08-08T15:49:28
|
|
Extend MultiviewDrawValidationTest.
These tests need to use a valid program for some operations. Also make
them run in a D3D11 config since the OpenGL extension doesn't seem to
be available on the GPU config we run on the ANGLE CQ.
Also add tests that cover various subtle state change validation cache
bugs.
Bug: angleproject:2747
Change-Id: Idbd1d66854f2e3ca67b59836a370928e1fe8c3b3
Reviewed-on: https://chromium-review.googlesource.com/1167980
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
f2c6faf5
|
2018-08-09T10:54:08
|
|
Remove some Vulkan perftest configs.
We don't support ES 3.0 or ES 3.1 in Vulkan yet. Remove Vulkan configs
from tests that don't support the higher features levels. We can
re-add them once we improve Vulkan support.
Bug: angleproject:2604
Change-Id: Icca57b5ec696aaeb2a571b79cd1a7869f806c176
Reviewed-on: https://chromium-review.googlesource.com/1169306
Reviewed-by: Omar El Sheikh <theoking@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
cc1dc5ee
|
2018-08-07T15:27:49
|
|
Add a perf test for draw calls with texture changes.
This perf test highlights the performance hotspots with
State::syncProgramTextures.
Also includes a fix to the perf test runner script.
Bug: angleproject:2763
Change-Id: I69ffa0cc0d5e023944495b7a1c844770a54f7ddc
Reviewed-on: https://chromium-review.googlesource.com/1166041
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
88602e6e
|
2018-08-08T12:49:30
|
|
Fix vertex array element limit condition.
Certain overflows wouldn't be detected when the attribute size was less
than the attribute size and we were drawing a small number of vertices.
Fix this and also set the sentinel value for an integer overflow to be
negative maxint instead of -1 to more effectily distinguish the cases.
Bug: angleproject:1391
Change-Id: I970d5e2a630c0a84c2c02ac0ac41ab1a395819fe
Reviewed-on: https://chromium-review.googlesource.com/1162264
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
1bd4bfb0
|
2018-08-03T14:24:22
|
|
Add draw call perf tests that use the driver.
Also moves some code to the cpp.
Bug: angleproject:2747
Change-Id: I38468e6276d52d11d5751df6917c66f15ae61246
Reviewed-on: https://chromium-review.googlesource.com/1163822
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|
|
d69a5f12
|
2018-08-01T11:34:48
|
|
Cache VertexArray::hasMappedBuffer.
This can be updated in several places. Also adds a test which covers
some of the paths.
Bug: angleproject:2746
Change-Id: Id119e527fd0064998d7ad5011a9d8376e7b9dab0
Reviewed-on: https://chromium-review.googlesource.com/1153569
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
2da5356e
|
2018-08-01T11:34:47
|
|
Final cleanup to ValidateDrawAttribs.
This moves the client attribs check into a shared place. This cleans up
some of the surrounding code. Also get rid of the vertex count
parameter.
Bug: angleproject:1391
Change-Id: I9c688895c2cc5650d7b395497d69033093916f21
Reviewed-on: https://chromium-review.googlesource.com/1150517
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|
|
a2d1d2db
|
2018-08-01T11:34:46
|
|
Context: Cache VAO element limits.
Cache the minimum value for non instanced and instanced active
attributes. The cache is updated in the following places:
1. Context: bindVertexArray.
2. Context: any executable change (linkProgram/useProgram/programBinary).
3. Vertex Array: any state change call.
4. Buffer: a dependent buffer resize.
This greatly reduces the time we're spending in ValidateDrawAttribs.
Bug: angleproject:1391
Change-Id: I84bb222a1b9736e6165fe40e972cd4299ca1178d
Reviewed-on: https://chromium-review.googlesource.com/1150516
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
dc358af7
|
2018-07-31T11:22:13
|
|
Context: Cache attributes masks.
This cache is updated in the following locations:
1. GLES1: clientActiveTexture.
2. GLES1: disableClientState/enableClientState.
3. Context: linkProgram/useProgram/programBinary.
4. Context: bindVertexArray.
5. Vertex Array: most state changes.
Improves performance by about 6% in the GL no-op test. Also includes
fixes for keeping the client memory attribs mask in sync. The cache
also includes a boolean if there are any enabled client attributes.
Bug: angleproject:1391
Change-Id: I93b6a2c8492355958fd5483f14b70535729091d6
Reviewed-on: https://chromium-review.googlesource.com/1147437
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
8acb1b61
|
2018-07-30T16:20:54
|
|
Allow reads from a multiview framebuffer with one view
It's safe to read from a multiview framebuffer if it is layered and
has just one view. The native OVR_multiview spec supports this as
well.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: I04e1364390574075f7e06e39a64e3bf05a539a05
Reviewed-on: https://chromium-review.googlesource.com/1156509
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
67c388e6
|
2018-07-19T19:16:11
|
|
Vulkan: support GL_FIXED vertex data.
Override fixed to float, generate code, enable tests.
BUG=angleproject:2405
Change-Id: Ic3e9a31eaf22372023b94081b0f4a83770dcabbe
Reviewed-on: https://chromium-review.googlesource.com/1144455
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
e452382a
|
2018-07-19T16:10:53
|
|
Vulkan: convert/align vertex data from buffers
When we get a buffer with vertex data in an unsupported format or
alignment, correct that as we copy it to a DynamicBuffer, then use
the copy. Enable tests.
BUG=angleproject:2405
Change-Id: I2132abea4d936f6b53d9209be7f99a0e2d8de219
Reviewed-on: https://chromium-review.googlesource.com/1141277
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
5b3b5cc1
|
2018-07-27T16:49:57
|
|
Suppress more tests on Android for NVIDIA Shield TV bot.
BUG=angleproject:2507
TBR=geofflang@chromium.org
Change-Id: I6788303bdca8739c42b1f43e45b5b2c16cea4ed3
Reviewed-on: https://chromium-review.googlesource.com/1154127
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Commit-Queue: Zhenyao Mo <zmo@chromium.org>
|
|
c0b61500
|
2018-07-27T15:59:32
|
|
Fix/supress issues with EGL images on Android.
ChromeOS devices share some of the same driver bugs as Qualcomm.
NVIDIA devices require the image to be preserved.
BUG=angleproject:2507
Change-Id: I2750f78c219490fcd7e6abd224adf8d8e96b7848
Reviewed-on: https://chromium-review.googlesource.com/1153606
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
9bf86f07
|
2018-07-26T11:46:34
|
|
Don't sync the read framebuffer on draw calls.
The read framebuffer may not be complete and be incapable of syncing.
Removed the generate syncDirtyObjects method so each caller must make sure they
are only syncing objects that are known to be valid for the operation.
BUG=angleproject:2737
Change-Id: Ia8edf3fca3a8369aa813be46ba99f6b50a36b2e6
Reviewed-on: https://chromium-review.googlesource.com/1151621
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
|
|
03d132eb
|
2018-07-14T13:31:35
|
|
Support EGL_(WIDTH|HEIGHT) in eglSurfaceAttrib(), fixed resize
Setting EGL_WIDTH or EGL_HEIGHT results in mFixedWidth and mFixedHeight
changing their values.
Whenever the swap chain is tested for needing a resize, surfaces with
mFixedSize are treated as if they should be resized to mFixedWidth and
mFixedHeight from their current size. This way fixed-size surfaces
can be resized - it's enough to do a couple of eglSurfaceAttrib() calls
and then either let ANGLE check surface for needing a resize in due course,
or force that by calling eglWaitNative().
BUG=angleproject:2725
Change-Id: I2932d8ecd5a2f10500e4aa8583a169aa09bf01bb
Reviewed-on: https://chromium-review.googlesource.com/1139055
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
854429de
|
2018-07-27T08:12:48
|
|
D3D: Return error from getVertexSpaceRequired.
This removes another use of the gl::ErrorOrResult pattern. Unblocks
error refactoring.
Bug: angleproject:2738
Change-Id: Ib611a3b68f8995469befd51797dfed34eaeee84e
Reviewed-on: https://chromium-review.googlesource.com/1151450
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
b1565903
|
2018-07-27T08:12:48
|
|
D3D: Pass gl::Context to many more functions.
This makes the Context more available for logging errors.
Also includes more refactoring to VertexDataManager to ensure we can
access the gl::Context.
Bug: angleproject:2738
Change-Id: Iae3d22a1403078d236bfe63a3e2d203c13678dc4
Reviewed-on: https://chromium-review.googlesource.com/1151449
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
604d873e
|
2018-07-20T11:02:43
|
|
Fix multiview combined with flat interpolation
Declaring HLSL outputs with SV_* semantics after the ones with
TEXCOORD* semantics makes multiview shaders that contain a flat
varying run correctly. This is a workaround for what seems to be a
bug in the DX runtime, reproducible on at least NVIDIA and Intel.
This also adds another, clearer test case for flat interpolation used
together with multiview.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: I127b85497aa4fee58b74893165a980cbdd4444d6
Reviewed-on: https://chromium-review.googlesource.com/1146809
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
dbd16127
|
2018-07-19T11:30:21
|
|
EGL: Implement EGL Image extensions.
BUG=angleproject:2507
Change-Id: Ica33166e9e23e933977c3ab034d4f5a8cada9fb1
Reviewed-on: https://chromium-review.googlesource.com/1143454
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
eb4b8697
|
2018-07-17T10:55:40
|
|
Introduced eglMakeCurrent Perf Test
Currently disabled test on android
Also made the default EGL device type be
EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE
Updated destroy function of RendererVk to properly
reset the mMemoryProperties member variable
Bug: angleproject:2735
Change-Id: Ie1f8ab1ac93b18eda4c10c3b10ecd4756f1d8543
Reviewed-on: https://chromium-review.googlesource.com/1140508
Commit-Queue: Omar El Sheikh <theoking@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
76301e09
|
2018-07-19T11:48:30
|
|
Vulkan: Fix compound nested sampler struct params.
Replace the struct type of binary and symbol parameter nodes with a
lookup of the struct type in the tree.
Bug: angleproject:2494
Change-Id: I1e892e0f1b1f97302d1cdce1035f51c01d0efd9e
Reviewed-on: https://chromium-review.googlesource.com/1135695
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
df0e48fe
|
2018-07-24T11:06:46
|
|
Buffer11: Don't use ErrorOrResult.
This pattern isn't available when using angle::Result instead of
gl::Error. Refactor the Buffer11 class to use gl::Error instead. This
unblocks further return value refactoring for perf.
Bug: angleproject:2738
Change-Id: I739044ae318c6b1fc40756a4f1fcadf609276c1a
Reviewed-on: https://chromium-review.googlesource.com/1142952
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
0359b697
|
2018-07-23T17:22:00
|
|
Vulkan: Check mInFlightCommands doesn't grow too fast
The mInFlightCommand vector could grow faster than
the GPU can complete tasks. Check for this edge case
and give the GPU a chance to catch up with work.
Also allows us to enable performance tests for Draw
Calls on vulkan since it was affected by this limit
check before.
Bug: angleproject:2742
Change-Id: I66a86ea6b5300fa3d74b07dc341aa597824b5f09
Reviewed-on: https://chromium-review.googlesource.com/1147607
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
ddd6e874
|
2018-07-24T10:49:06
|
|
Vulkan: Suppress 3 failing blit tests on Pixel 2.
Bug: angleproject:2743
Change-Id: I1693a5b301fa10a92263aab0cec14829851fe21f
Reviewed-on: https://chromium-review.googlesource.com/1148461
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
06235df9
|
2018-07-20T14:26:07
|
|
Make HLSL shaders use only one main function
Instead of having separate main() and gl_main() functions in HLSL
shaders, add initializing outputs and inputs directly to the main
function that's in the AST.
This works around some HLSL bugs and should not introduce name
conflicts inside main() since all the user-defined variables are
prefixed.
BUG=angleproject:2325
TEST=angle_end2end_tests
Change-Id: I5b000c96aac8f321cefe50b6a893008498eac0d5
Reviewed-on: https://chromium-review.googlesource.com/1146647
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
b436aac3
|
2018-07-18T17:23:48
|
|
Vulkan: Support inverted blit for depth/stencil.
Depth/stencil formats are packed tightly when reading back Images with
vkCmdCopyImageToBuffer. Same for the reverse. Thus we need to take this
into account when doing our blitWithReadback implementation.
This splits the depth/stencil blit into two separate steps. Fixes all
the remaining blit failures in BlitFramebufferANGLETest.
Bug: angleproject:2673
Change-Id: Ie9f43f782a82b5a0746d00122b24f81088d57c4c
Reviewed-on: https://chromium-review.googlesource.com/1140740
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
cd7cd2a8
|
2018-07-19T11:25:54
|
|
Pass Context to EGLImage creation and Display to EGLImage initialization.
BUG=angleproject:2507
Change-Id: I6c195434131709203f892be6037e974002c174c2
Reviewed-on: https://chromium-review.googlesource.com/1143453
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
0df813c3
|
2018-07-12T12:52:06
|
|
GLES1: GL_OES_draw_texture
BUG=angleproject:2306
This implements GL_OES_draw_texture using a few bits of new state
in the renderer and adding a code path for it in the shader, using
gl_VertexID to draw the quad backing the texture draw. This allows us
to avoid allocating a separate vertex array for the texture draw and
reuses the current shader as much as possible, plugging in to the
existing multitexturing pipeline.
- Add unit test and sample
- No new test expectations, but advertising GL_OES_draw_texture makes
the DrawTex GLES1 conformance test non-trivial and actually test
glDrawTex*.
Change-Id: I1485098249fe44d46a01cab4bb7b2c39d0492923
Reviewed-on: https://chromium-review.googlesource.com/1135930
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Lingfeng Yang <lfy@google.com>
|
|
94c91a95
|
2018-07-19T15:10:24
|
|
Don't allow multiview clear during timer query
This brings the ANGLE_multiview spec in line with WEBGL_multiview.
This also fixes the test so that the timer query extension is
requested when it is being tested.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: Ibd5c117a5ae2642d26137d9ad44420d6601ba762
Reviewed-on: https://chromium-review.googlesource.com/1143283
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
0be37b44
|
2018-07-19T10:03:52
|
|
Fix ImageTest.
This test suite was missing the "GL_" prefix on some of the extension
checks. This was causing every test in the suite to be skipped. Fix
the check and also add some sanity checks that should ensure we expose
certain extensions on particular platforms and renderers.
Was discovered while working on changing the egl::Image class.
Bug: angleproject:2714
Change-Id: Ida89b5c3c33c534e60cbd55c7e1117a6ef6faae9
Reviewed-on: https://chromium-review.googlesource.com/1142963
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
da41ac69
|
2018-07-19T16:45:32
|
|
Fix decorating ViewID_OVR in HLSL output
ViewID_OVR should not be decorated in HLSL output since it is an
internal variable. Make sure that DecorateVariableIfNeeded() is used
for varyings instead of just Decorate() so that the internalness is
checked correctly and ViewID_OVR doesn't get decorated.
This avoids possible name conflicts between the internal ViewID_OVR
and any user-defined variables named ViewID_OVR.
BUG=angleproject:2062
TEST=angle_end2end_tests, angle_unittests
Change-Id: I9ed9876d4b2c760e7a11b0b270a2190993e840e5
Reviewed-on: https://chromium-review.googlesource.com/1143398
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
6a5d98c4
|
2018-05-04T15:42:20
|
|
ES31: Implement Vertex Attrib Binding on D3D11
This patch implements Vertex Attrib Binding on D3D11 and enables all
the test cases related to Vertex Attrib Binding on D3D11 back-ends.
On D3D11 back-ends the information in both GL vertex attributes and
bindings should be updated together. When a binding is dirty, we need
to find out and update all the attributes that are using this binding.
To speed up this process, this patch adds a map from each binding to
all the attrib indexes that are using this binding. This map may be
updated when VertexAttribBinding is implicitly or explicitly called.
With this map we can easily get all the attributes that should be
updated with the current dirty binding.
This patch also removes some unused variables in VertexArray11.cpp.
BUG=angleproject:2700
TEST=dEQP-GLES31.functional.vertex_attribute_binding.*
angle_end2end_tests
Change-Id: I9a28ec357fd3aba835812cecc410cfa4e3734f0c
Reviewed-on: https://chromium-review.googlesource.com/1048980
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c16f518e
|
2018-07-18T10:40:03
|
|
Vulkan: Disable the depth/stencil states when there are no depth/stencil buffers
We sometimes emulate depth-only or stencil-only buffers with depth-stencil
buffers. Disable depth-stencil states that allow reading or writing to these
buffers that should not exist.
BUG=angleproject:2739
Change-Id: I4f54800404f340eb53f04176e208f19a83a2899c
Reviewed-on: https://chromium-review.googlesource.com/1141932
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
38971fd1
|
2018-06-28T15:19:18
|
|
Vulkan: Support multiple depth stencil formats for backbuffers.
Since the backbuffer's depth stencil is always emualted, it can support any
depth stencil format.
BUG=angleproject:2692
Change-Id: I29df62bb322c1ac4e9fcd54e4cbc4c219cf12e83
Reviewed-on: https://chromium-review.googlesource.com/1119075
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
e2c00841
|
2018-07-13T16:50:49
|
|
GenerateMipmaps should generate INVALID_OPERATION in ES 2.0 with EXT_sRGB
According to the OpenGL extension spec EXT_sRGB.txt, EXT_SRGB is based on
ES 2.0 and generateMipmap is not allowed if texture format is SRGB_EXT or
SRGB_ALPHA_EXT.
BUG=769989
TEST=SRGBTextureTest.SRGBValidation*
TEST=SRGBTextureTest.SRGBAValidation*
Change-Id: Ic51da224fcd318187865a44630af6fca5c3ad2de
Reviewed-on: https://chromium-review.googlesource.com/1137924
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Yizhou Jiang <yizhou.jiang@intel.com>
|
|
252ec919
|
2018-07-16T15:39:34
|
|
Vulkan: "Implement" EGL_ANGLE_display_texture_share_group
BUG=angleproject:2724
Change-Id: I4a86c88ec8a1508a0961091ad6b4429dcd8775d4
Reviewed-on: https://chromium-review.googlesource.com/1138823
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
d691aeeb
|
2018-07-11T16:32:06
|
|
Vulkan: Implement GL_CHROMIUM_copy_texture with CPU copies.
BUG=angleproject:2723
Change-Id: Ic3905531d3e91f94ff0ce10a09ca5dcdf643e21f
Reviewed-on: https://chromium-review.googlesource.com/1134084
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
80d4ef10
|
2018-07-13T17:08:19
|
|
Vulkan: Fixed improperly set env variable
After the first test using the Mock ICD runs, an environment
variable VK_ICD_FILENAMES is set when previously it did not
exists. The cleanup of that test, rather than deleting the
environment variable, set it to an empty string, which the
Vulkan loader would use for subsequent Vulkan tests, causing
issues with Vulkan not finding the correct extensions.
Had to disable two more tests since they started failing once
those backends were enabled.
Bug: angleproject:2604
Change-Id: Ie103756eed60d255d1dd92d7ef3b726183feeb1e
Reviewed-on: https://chromium-review.googlesource.com/1137342
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Omar El Sheikh <theoking@google.com>
|
|
5a4c932a
|
2018-07-16T11:01:58
|
|
Vulkan: Implement "default" vertex attributes.
Rendering from disabled attributes is implemented using small dynamic
buffers. The buffers use a stride of zero so the same vertex data is
pulled for every index.
This fixes all the disable attribute tests in dEQP.
Bug: angleproject:2444
Change-Id: I04fe139076da3e3ff723bed8eb17e333b4cb0ddf
Reviewed-on: https://chromium-review.googlesource.com/1136664
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
419acc8f
|
2018-06-24T19:57:31
|
|
Vulkan: Convert streamed vertex data as needed.
Add two members to vk::Format:
- vertex data copy function
- flag indicating if the function converts or not
Use the function when streaming vertex data so it gets converted if needed.
Add fallbacks for integer formats. These formats will now work everywhere,
as long as they are in client memory, not a buffer object.
Adjust test expectations accordingly.
BUG=angleproject:2405
Change-Id: I677221219d933c35740633a0ab7694293e218177
Reviewed-on: https://chromium-review.googlesource.com/1084328
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
ddd8eaa8
|
2018-07-16T14:28:58
|
|
Suppress reverse blits tests on Qualcomm/Vulkan
BUG=angleproject:2732
Change-Id: I1fa3c46654c7e6d446ec3bb43eb3a6c01a15e8f9
Reviewed-on: https://chromium-review.googlesource.com/1138234
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
76c1d14b
|
2018-07-14T11:33:39
|
|
D3D11: Lift dEQP-GLES3 uniform_api test expectations.
Unclear if these tests are still failing.
Bug: angleproject:1098
Change-Id: If64a0a046d2b21b67f67aba1efb92d33a30b96c3
Reviewed-on: https://chromium-review.googlesource.com/1137390
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
ecbaf666
|
2018-07-13T15:00:38
|
|
dEQP: Fix non-GTest error logging.
Using the non-GTest dEQP targets led to crashes when deferencing a
nullptr error logging method. Fix this by skipping platform init if
there is a nullptr logError function.
Bug: angleproject:2552
Change-Id: I161e35b49f7e9a7592cec968e3540a2e8b625f94
Reviewed-on: https://chromium-review.googlesource.com/1136663
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
|
|
e835609c
|
2018-07-12T12:36:47
|
|
Vulkan: Implement gl_DepthRange support using driver uniform
Bug: angleproject:2592
Change-Id: Iec3d111df4d8e5cef205c8afb177f0514ffac5c8
Reviewed-on: https://chromium-review.googlesource.com/1135448
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
f786b706
|
2018-07-10T11:01:43
|
|
Vulkan: Enable viewport Y flipping
Bug: angleproject:2728
Bug: angleproject:2726
Bug: angleproject:2673
Bug: angleproject:2729
Change-Id: Iad657a116bf9fcd06c3d4cf1918aaacba4f1fd38
Reviewed-on: https://chromium-review.googlesource.com/1131515
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
523c5e31
|
2018-07-12T16:39:30
|
|
Vulkan: Suppress PointCoord test on Android.
This started failing with the driver uniform rework:
Vulkan: Add driver uniforms for point coords flipping
https://chromium-review.googlesource.com/1133584
Suppress until we can investigate.
Bug: angleproject:2727
Change-Id: Id1d1fe713ac058a0bb45230ba9e292f012755bcc
Reviewed-on: https://chromium-review.googlesource.com/1135729
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
1617e69e
|
2018-07-11T11:08:19
|
|
Vulkan: Implement depth/stencil blit with flip of the viewport
- This makes all end2end tests pass successfully on Win/Nvidia
with viewport flipping enabled.
Bug: angleproject:2673
Change-Id: I031c0a0f5fb0aede58b59479e57c2c127bcb964c
Reviewed-on: https://chromium-review.googlesource.com/1133703
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
84c11c53
|
2018-07-11T10:12:39
|
|
Vulkan: Implement sampler structs as function args.
Bug: angleproject:2494
Change-Id: Ia8e374846427b7140ab2565ae5b9b18409a76d96
Reviewed-on: https://chromium-review.googlesource.com/1117323
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
|
|
5c8113d3
|
2018-07-10T15:03:01
|
|
Vulkan/D3D11: Improve blit framebuffer tests and fix bug in D3D11
- Improving the tests revealed a bug in D3D 11 Fast Path rendering.
- These changes here are preliminary to implementing the blit for
depth/stencil in Vulkan when using the viewport flipping.
Bug: angleproject:2673
Bug: angleproject:2719
Change-Id: I6d55084e559d3110c8eeb0e7acb4e6fb09b6c1b5
Reviewed-on: https://chromium-review.googlesource.com/1132125
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
a6a7842f
|
2018-06-28T08:32:54
|
|
ES31: Support atomic functions on D3D11 - Part I
This patch is the first one of the implementation of atomic
functions in D3D11.
There are mainly two differences in the usage of GLSL and HLSL
atomic functions:
1. All GLSL atomic functions have return values, which all
represent the original value of the shared or ssbo variable;
while all HLSL atomic functions don't, and the original value
can be stored in the last parameter of the function call.
2. For HLSL atomic functions, the last parameter that stores the
original value is optional except for InterlockedExchange and
InterlockedCompareExchange. Missing original_value in the call
of InterlockedExchange and InterlockedCompareExchange results
in a compile error from HLSL compiler.
To handle these differences, we plan to implement the translation
in two steps:
1. Support direct translations from GLSL atomic functions to HLSL
ones.
Direct translation can only handle the following two situations:
(1) The sentence is a GLSL atomic function call without requesting
a return value and it is not atomicExchange or atomicCompSwap:
e.g.
GLSL: atomicAdd(mem, value);
-> HLSL: InterlockedAdd(mem, value);
(2) The sentence is a simple assignment expression: its right is
a GLSL atomic function call and its left is a declared variable.
e.g.
GLSL: oldValue = atomicAdd(mem, value);
-> HLSL: InterlockedAdd(mem, value, oldValue);
2. Support atomic functions in the situations that don't support
direct translations.
We will modify the intermediate tree to make direct translation work
on all these situations.
e.g.
atomicExchange(mem, value);
-> int oldValue;
oldValue = atomicExchange(mem, value);
int oldValue = atomicAdd(mem, value);
-> int oldValue;
oldValue = atomicAdd(mem, value);
return atomicAdd(mem, value);
-> int temp;
temp = atomicAdd(mem, value);
return temp;
for (i = 0; i < atomicAdd(mem, value); ++i)
-> int temp;
temp = atomicAdd(mem, value);
for (i = 0; i < temp; ++i)
{
...
temp = atomicAdd(mem, value);
}
int result = isTrue ? atomicAdd(mem, value) : 0;
-> int result;
if (isTrue)
{
result = atomicAdd(mem, value);
}
else
{
result = 0;
}
This patch completes Step 1 which mainly focus on the translation
from GLSL atomic functions to HLSL ones.
BUG=angleproject:2682
TEST=angle_end2end_tests
Change-Id: I3b655b6e286dad4fd97f255f7fe87521c94db30c
Reviewed-on: https://chromium-review.googlesource.com/1121835
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
|
|
a2f043d8
|
2018-07-10T17:21:20
|
|
dEQP: Implement platform error handling.
Also downgrades several Vulkan UNIMPLEMENTED() to WARN().
Also downgrades a couple D3D-specific errors to warnings.
Also downgrades an undefined behaviour integer clear error to warning.
Also includes suppressions for failing D3D11 ES 3.1 SSBO tests.
Also includes suppressions for failing Android GLES format tests.
Also includes suppressions for failing Android Vulkan buffer tests.
Bug: angleproject:2552
Bug: angleproject:2567
Bug: angleproject:1951
Bug: angleproject:2405
Change-Id: Ie619085021d42012cd578b669f7ff4252ca41a58
Reviewed-on: https://chromium-review.googlesource.com/1062791
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
efaa09fd
|
2018-06-27T15:40:21
|
|
Enabled Vulkan backend on as many tests as possible
Bug: angleproject:2694
Change-Id: I299d71e0857065d0f60204977d395793f921deaa
Reviewed-on: https://chromium-review.googlesource.com/1117702
Commit-Queue: Omar El Sheikh <theoking@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
cb8a921b
|
2018-06-28T12:30:36
|
|
Vulkan: Support RGB/BGR backbuffers emulated on RGBA/BGRA.
BUG=angleproject:2692
BUG=angleproject:2523
BUG=angleproject:2715
BUG=angleproject:2716
Change-Id: I538b385f8b66fb97e176953b0fc4a6299849c005
Reviewed-on: https://chromium-review.googlesource.com/1118713
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
|
|
82eda93f
|
2018-07-09T15:10:22
|
|
Vulkan: Fix for framebuffer blit and Y flip
- The depth/stencil related tests are now disabled since I found out
that the tests are too simple to find issues if there is a flip since
they use only a single color and no gradient / checked board.
This is left to implement in the Vulkan backend later on.
Bug: angleproject:2673
Change-Id: I8f7091d4b9c8c3bec0353ebab28304b6209ea350
Reviewed-on: https://chromium-review.googlesource.com/1129629
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
d8b1c5c5
|
2018-06-20T12:08:46
|
|
Return ImmutableString from ArrayString()
This makes the compiler a few kilobytes smaller, and prepares getting
rid of TString altogether.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: I93a003fe27b99bef72f872fa1066e2e108f934c5
Reviewed-on: https://chromium-review.googlesource.com/1107713
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
7e585118
|
2018-07-04T15:49:02
|
|
Vulkan: Implement eglWaitClient using a finish.
In the future this can be implemented with a flush.
BUG=angleproject:2707
Change-Id: I1dd4eae9551f7797865e6e17e6caa77f6ec5a9b2
Reviewed-on: https://chromium-review.googlesource.com/1126457
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
|
|
072c3519
|
2018-07-04T15:50:12
|
|
Fix missing return when validation fails in eglWaitNative.
BUG=angleproject:2707
Change-Id: Ibd70437e3a40a9a63b78ac9a4546c97611a97ba5
Reviewed-on: https://chromium-review.googlesource.com/1126458
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
62edcce8
|
2018-07-04T12:43:39
|
|
Vulkan: Initialize the max pbuffer size members of Config.
Pass the VkPhysicalDeviceProperties to GenerateDefaultConfig to initialize the
pbuffer size limitations in a platform independent way.
BUG=angleproject:2622
Change-Id: Id99bc505a1965cc037c5dcd65af031c1c655d424
Reviewed-on: https://chromium-review.googlesource.com/1126406
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
|
|
258e8718
|
2018-06-21T17:29:19
|
|
EGL: Support unvirtualized contexts and unsafe multithreading.
-Add a new renderer and context type to own native EGL contexts and
handle destruction.
-Track the current EGL surface and context per-thread.
-Support unvirtualized contexts by creating a new context for every client
context.
BUG=angleproject:2464
Change-Id: Ib2efa1d88c771b4a78625e0e3546f6ed95678c91
Reviewed-on: https://chromium-review.googlesource.com/1110943
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
a72ebeba
|
2018-06-28T11:16:58
|
|
Vulkan: Fix issue in DynamicBuffer
- We weren't keeping track of mSize correctly, causing some very
specific index buffer bindings to fail. The size returned when allocating
the buffer can be a bit different than the size requested, and that extra
space between mSize and the allocated size was not meant to be used,
causing errors in the validation layers.
Bug: angleproject:2580
Change-Id: I47eb7b8de6f4f657de14385b77ba6a459add599b
Reviewed-on: https://chromium-review.googlesource.com/1118607
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
2b06054d
|
2018-07-03T14:48:13
|
|
Vulkan: Insert a barrier after buffer copy
According to the spec(section 18.1), all copy commands are treated
as transfer operations for the purposes of synchronization
barriers. Some tests are flaky on Intel platform without such
barriers.
Bug: angleproject:2663
Bug: angleproject:2664
Change-Id: Ic8bc9a0eb000670342c0df0449257324f04ad1f8
Reviewed-on: https://chromium-review.googlesource.com/1124103
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
6ef24d78
|
2018-06-29T16:03:34
|
|
Update dEQP EGL expectations for Vulkan on Linux.
Bug: angleproject:2635
Change-Id: I74641edc405aa158a2acc0ac619343bf316454bd
Reviewed-on: https://chromium-review.googlesource.com/1121076
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
cdf50444
|
2018-06-26T15:05:42
|
|
Add test for sampler struct rewriting indexing.
The concern originally was that rewriting sampler structs could lead to
incorrect behaviour for indexing. The test attempts to cover this but
doesn't repro. It possibly is not an issue.
Bug: angleproject:2494
Change-Id: Ibc34b08b5cee3b6ff82d150a64f1768aae64396f
Reviewed-on: https://chromium-review.googlesource.com/1117321
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
fa5d84be
|
2018-06-28T10:40:04
|
|
Vulkan: Fix offset handling for vertex buffers
Bug: angleproject:2580
Change-Id: I22f62a8549e998275224a6b1f9c133cf31ebb5b9
Reviewed-on: https://chromium-review.googlesource.com/1118419
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
f3062c3e
|
2018-06-28T13:33:15
|
|
Update dEQP EGL expectations for Vulkan on Windows.
BUG=angleproject:2635
Change-Id: If2a4893c4099dc4a1b699ba4e4e3ca2c0f946af8
Reviewed-on: https://chromium-review.googlesource.com/1118906
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
be30c4fb
|
2018-06-21T09:43:08
|
|
Vulkan: Framebuffer blit support for depth/stencil cases
Bug: angleproject:2643
Change-Id: Ib50e4051f5b3965c2a752cf2cd45d3470312cdcf
Reviewed-on: https://chromium-review.googlesource.com/1115370
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
a0adaf98
|
2018-06-27T15:49:35
|
|
Vulkan: Work around unused sampler validation.
Work around glslang's improved validation by using a valid but very
high layout binding. This should be more robust.
Tests already passing:
dEQP-GLES2.functional.state_query.shader.uniform_value_sampler
Bug: angleproject:2691
Bug: angleproject:2612
Bug: angleproject:2600
Change-Id: Ie78ae89f76cc0a42806724b622d7f201241bd041
Reviewed-on: https://chromium-review.googlesource.com/1117477
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
dc66ef9d
|
2018-06-28T08:18:47
|
|
Vulkan: Add simple test to trigger issue of buffer.write tests
Bug: angleproject:2580
Change-Id: I08666d1c5fc7ce977e9623a09ef08645b02339f3
Reviewed-on: https://chromium-review.googlesource.com/1117913
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
9e14164d
|
2018-06-27T11:43:18
|
|
VK: Support pbuffer surfaces.
TEST=PbufferTest
TEST=dEQP-EGL.functional.color_clears.single_context.gles2.rgba8888_pbuffer
TEST=dEQP-EGL.functional.color_clears.multi_context.gles2.rgba8888_pbuffer
TEST=dEQP-EGL.functional.render.single_context.gles2.rgba8888_pbuffer
TEST=dEQP-EGL.functional.render.multi_context.gles2.rgba8888_pbuffer
BUG=angleproject:2622
Change-Id: I99f64689c274fbb565b365f4a05b52252528fc38
Reviewed-on: https://chromium-review.googlesource.com/1117030
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
a26de250
|
2018-06-28T07:24:38
|
|
Vulkan: Enable dEQP a passing test in buffer.write
Bug: angleproject:2580
Change-Id: I74ab2dec41400781c7236e08f008e2240386c80e
Reviewed-on: https://chromium-review.googlesource.com/1117911
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|