Log

Author Commit Date CI Message
Tobin Ehlis 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>
Olli Etuaho 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>
Olli Etuaho 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>
Olli Etuaho 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>
Tobin Ehlis d20e80b8 2018-08-17T10:02:24 More EGL validation refactor Added separate Validate* functions for CopyBuffers(), BindTexImage(), ReleaseTexImage(), SwapInterval(), and BindAPI(). For ValidateBindTexImage() the textureObject is set by validation when appropriate and then used in the core function to prevent replicating the textureObject look-up code. Bug: angleproject:798 Change-Id: Ia32076a10aa0b044c2bdc8e2e24dd36d002c5022 Reviewed-on: https://chromium-review.googlesource.com/1180090 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Tobin Ehlis <tobine@google.com>
Olli Etuaho 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>
jchen10 5055fba5 2018-08-17T09:57:07 Optimize Program::resolveLink The method has to be extremely fast as it's very frequently called. It contributes about 2% cpu time in the DrawCall/gl_null benchmark. With this optimization it can be decreased to less than 1%. Bug: chromium:873724 Change-Id: I7fb376db73452dbdf6cb44c92815848e860867c9 Reviewed-on: https://chromium-review.googlesource.com/1179369 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jie A Chen <jie.a.chen@intel.com>
jchen10 458c654b 2018-08-17T10:38:44 Fix type cast errors in GLES1State Bug: angleproject:2306 Change-Id: Ic63de75d12b76395450517c99b742b8a5807cf9b Reviewed-on: https://chromium-review.googlesource.com/1179373 Reviewed-by: Lingfeng Yang <lfy@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jie A Chen <jie.a.chen@intel.com>
Frank Henigman 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>
Tobin Ehlis 43a2762d 2018-08-16T14:23:00 Refactoring EGL validation Migrating much of EGL validation to use existing macros. Added new Validate* functions for eglDestroySurface(), eglDestroyContext(), eglWaitNative() functions. This continues the EGL validation refactor begun with SwapBuffers. Following similar pattern used there, but putting this out as an intermediate change to verify that code looks good and is going in the desired direction. Bug: angleproject:798 Change-Id: Id7309b9686543c20b20e273b35df1f8b9010fcd3 Reviewed-on: https://chromium-review.googlesource.com/1178750 Commit-Queue: Tobin Ehlis <tobine@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tobin Ehlis 3394a73d 2018-07-26T09:56:07 Refactor of EGL SwapBuffers validation Move the Validation checks for SwapBuffers into new ValidateSwapBuffers function instead of in-line. This is a first commit for refactor of EGL validation. I'll continue the refactor in a similar fashion to this. Bug: angleproject:798 Change-Id: Icb308d66c93528c9e440ae68abe85e44f98ede82 Reviewed-on: https://chromium-review.googlesource.com/1151538 Commit-Queue: Tobin Ehlis <tobine@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Lingfeng Yang 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>
Olli Etuaho f0e3c19a 2018-08-15T13:37:21 Add error messages for BlitFramebuffer related errors These are particularly helpful when debugging multiview rendering that requires a framebuffer blit. Existing blitFramebuffer error message strings are moved to ErrorStrings.h. BUG=angleproject:1617 TEST=angle_end2end_tests Change-Id: I6e8b45355045d80abf044714ac4b9d818c53bf46 Reviewed-on: https://chromium-review.googlesource.com/1175125 Commit-Queue: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
jchen10 3fd614d0 2018-08-13T12:21:58 Refactor Context dependency for resolveCompile The context parameter of Shader::resolveCompile method causes a bad impact that many methods in Shader, Program etc. have to have a same context parameter. By removing it, these methods can be decoupled from Context. BUG=chromium:849576 Change-Id: Ia5545ee9dce45794550f6086bc0e6c4707e1276e Reviewed-on: https://chromium-review.googlesource.com/1172202 Commit-Queue: Jie A Chen <jie.a.chen@intel.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
jchen10 156da4c9 2018-08-15T13:22:24 ParallelCompile: Make resource tracking thread-safe ResourceManger11 tracks the total resource count and memoery size. Such tracking can be concurrently updated from both main thread and background thread. It can be thread-safe by using std::atomic types instead. Also ShaderCache in d3d9 adds a std::mutex to be safe. Bug: angleproject:2771 Change-Id: Ia7cdcc7fd04579839a5d43e4a02adafb09e6078d Reviewed-on: https://chromium-review.googlesource.com/1175547 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jie A Chen <jie.a.chen@intel.com>
Till Rathmann 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>
Frank Henigman 21e5e85a 2018-08-14T15:58:12 builtools: Roll GN. Pick up a version of GN which works around crbug.com/791295. Now we get VS projects that don't hit the ninja bug described there. BUG=angleproject:1569 Change-Id: I8758c63459640314a4c76b0d590d388c37ab3125 Reviewed-on: https://chromium-review.googlesource.com/1175035 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Geoff Lang 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>
Jiawei Shao 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>
jchen10 90f466a6 2018-08-13T15:05:25 Suppress cast warnings for active textures mask Bug: angleproject:2747 Bug: angleproject:2763 Change-Id: I19f9e5ba760d3b5baf3997284523ee1db6bb8166 Reviewed-on: https://chromium-review.googlesource.com/1172206 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jie A Chen <jie.a.chen@intel.com>
Olli Etuaho a43d7306 2018-08-09T12:43:06 Clean up varying linkage in D3D D3D10+ has stricter rules on linking shader inputs with outputs than the previous comments in the code indicated. Add comments and checks related to this and structure the code in a way that makes it a bit less prone to errors. This page is intended to document the rules though it is somewhat vague: https://docs.microsoft.com/en-us/windows/desktop/direct3dhlsl/dx-graphics-hlsl-signatures BUG=angleproject:2767 TEST=angle_end2end_tests Change-Id: I236ec4cd5cbf3889fd2c97947ee81a6c5ae6a787 Reviewed-on: https://chromium-review.googlesource.com/1169818 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
jchen10 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>
Jamie Madill 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>
Jamie Madill 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>
Jamie Madill 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>
Omar El Sheikh 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>
Jamie Madill 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>
Jamie Madill 9b6a3f92 2018-08-09T16:22:20 D3D: Speculative fix for VertexBuffer crash. It's possible we were triggering a null pointer dereference in some cases of lost device recovery. I was unable to reproduce this in a test so this fix is speculative. Bug: chromium:871178 Change-Id: I55b7790eabb81c25489bdfd105b5f2cbeedcc8db Reviewed-on: https://chromium-review.googlesource.com/1169955 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 6c43a01a 2018-08-08T15:49:27 Make Context handle dirty texture events. Moving from State to Context allows the Context to update the State Cache class directly. It also calls through to the State class to update the Texture cache. This consolidates notification events into the Context class. This is also in line with how we handle state event updates in other gl classes. Bug: angleproject:2747 Bug: angleproject:2763 Change-Id: Iff7dc7e46ee8768819235ebd151707cd2a03dfc9 Reviewed-on: https://chromium-review.googlesource.com/1166143 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 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>
Jamie Madill 4787d70b 2018-08-08T15:49:26 Use active textures mask in GL and Vulkan. This also inlines a few accessors and changes the type of the texture cache. Bug: angleproject:2763 Change-Id: I82f3c508613f6284d835e8cb64808cfe26a56161 Reviewed-on: https://chromium-review.googlesource.com/1166142 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 7e4eff11 2018-08-08T15:49:26 Program: Add cache samplers and type masks. This mask cleans up some of the iteration logic in State::syncProgramTextures. It will make it easier to optimize this function in the future. This will also make it easier to recompute the sampler type validation. Leads to a 5% improvement in State::syncProgramTextures. Bug: angleproject:2747 Bug: angleproject:2763 Change-Id: Ic9a555df843ad23b4c562e6e4a2d425bee58a856 Reviewed-on: https://chromium-review.googlesource.com/1164306 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 46848420 2018-08-09T10:46:06 Vulkan: Fix perftests null driver. We needed to set the CWD for the mock ICD as well. Bug: angleproject:2604 Change-Id: I1d285c478030056360fd2dceca78e231ac321219 Reviewed-on: https://chromium-review.googlesource.com/1169426 Reviewed-by: Omar El Sheikh <theoking@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill c43cdad2 2018-08-08T15:49:25 StateCache: Make external API easier to understand. Instead of updating the cache directly we use event notifier functions. For example instead of calling updateActiveAttribsMask in Context::linkProgram we call onProgramExecutableChange. This makes the code more self-documenting and easier to maintain. Bug: angleproject:2747 Change-Id: Id27b58f646f6924db4c16e28609d6baf6b51c78e Reviewed-on: https://chromium-review.googlesource.com/1164066 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 03cb5266 2018-08-08T15:49:24 Validate transform feedback conflicts on zero draw. This conflict should be validated even if the draw call would result in no work being done on the GPU. Bug: angleproject:2747 Change-Id: I6b32a07ff8a8598dd865270a3a935060f050a68f Reviewed-on: https://chromium-review.googlesource.com/1162507 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Jamie Madill e7d80f33 2018-08-08T15:49:23 Refactor ValidateDrawBase. Split the parameter-dependent and parameter-independent validation. This will more easily let us cache independent validation in Context. Bug: angleproject:2747 Change-Id: I78a12798cd03a398392ca213bf51e2079295b97e Reviewed-on: https://chromium-review.googlesource.com/1158610 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Frank Henigman <fjhenigman@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 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>
Jamie Madill 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>
Jamie Madill 7cc1e556 2018-08-08T11:21:06 Don't use ErrorOrResult in VertexBuffer.h. This enables the error refactor for D3D. Bug: angleproject:2752 Change-Id: I7bb293d6c271d0bffb4d00b55029426b6cd0a42e Reviewed-on: https://chromium-review.googlesource.com/1167208 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill c86c8b0c 2018-08-08T09:16:00 D3D9: Use angle::Result error pattern. Bug: angleproject:2752 Change-Id: Ica77969c6e4b8d61d491396a4fd56b0864e4803c Reviewed-on: https://chromium-review.googlesource.com/1163320 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Takuto Ikuta c93eeaab 2018-08-07T16:25:42 Make angle's commit.h depend on git head This is for reproducible build of angle related libraries. Bug: 828669 Change-Id: I807c8fb01b976f6e7a71477ee934b9e0b0cdc684 Reviewed-on: https://chromium-review.googlesource.com/1164814 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Frank Henigman <fjhenigman@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill b983a4b2 2018-08-01T11:34:51 Pass Context to Framebuffer::invalidateCompletenessCache. This will be useful for validation state caching. Bug: angleproject:2747 Change-Id: I0737adca7406f79b9e15429f30ae22e1299cd7e4 Reviewed-on: https://chromium-review.googlesource.com/1158611 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Frank Henigman <fjhenigman@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 43da7c4a 2018-08-01T11:34:49 Remove excess gl:: prefixing in validationES.cpp. Refactor only. Bug: angleproject:2747 Change-Id: I0ef7186daec54cd867ec2816f86f7205d836fd91 Reviewed-on: https://chromium-review.googlesource.com/1158609 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 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>
Geoff Lang 6ba9754f 2018-08-06T10:44:00 Refactor index range calculation in DrawCallParams. BUG=864528 Change-Id: Iac418054ae56a2d9dd277d0474019997aeaa834b Reviewed-on: https://chromium-review.googlesource.com/1163633 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Geoff Lang a6d34af6 2018-07-31T13:16:47 StateManagerGL: Use arrays to store texture and sampler bindings. The improved cache locality improves performance by 5-10% on command_buffer_perftests. BUG=angleproject:2188 Change-Id: I6cce95481e2b1ce2605bce19b0a29d56718613a1 Reviewed-on: https://chromium-review.googlesource.com/1156853 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Geoff Lang b8430dd7 2018-08-01T15:27:18 Use FixedVector for storing textures referenced by a framebuffer. This improves the performance of Framebuffer::hasTextureAttachment 3X. BUG=angleproject:2188 Change-Id: I6acc7f4440fe0232438182274d7bba6075530f38 Reviewed-on: https://chromium-review.googlesource.com/1159171 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 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>
Olli Etuaho 81f891d0 2018-08-02T15:54:55 Make sure ProgramGL stays usable after failed glProgramBinary glProgramBinary may fail if the driver is incompatible with the binary that is being loaded. After this ANGLE falls back to recompiling the GLSL program from source, but this requires that the ProgramGL object used is still valid after a failed glProgramBinary call. Don't delete the GL program after a failed glProgramBinary call so that the fallback works as intended. BUG=angleproject:2751 Change-Id: I55c19d71414163b1cd9f898f304e4aa7052f6b16 Reviewed-on: https://chromium-review.googlesource.com/1160540 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Thomas Miller cb4ae446 2018-08-02T08:19:09 Make Angle compile for Arm64 Windows Change-Id: Iee947a5abf4a833f155f7cb100577c92323a34e5 Reviewed-on: https://chromium-review.googlesource.com/1160863 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Jamie Madill cc73f241 2018-08-01T11:34:48 Micro-optimize some validation checks. Prepares for caching hasMappedBuffer. Also inclines several checks for faster speed. Bug: angleproject:2746 Change-Id: I74f9408d7b41e245c3f58d367dd2cc8fbace4a7a Reviewed-on: https://chromium-review.googlesource.com/1150762 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Frank Henigman <fjhenigman@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 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>
Jamie Madill 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>
Geoff Lang cf0d8fef 2018-07-30T13:41:32 Remove the proxy context. BUG=angleproject:2668 BUG=angleproject:2714 Change-Id: I9f375caa605e13aae04e8051a779515f8ddfb93a Reviewed-on: https://chromium-review.googlesource.com/1155105 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 9d05b930 2018-07-27T15:47:18 Don't store a ref from an EGL image to its source. ImageSiblings no longer inherit from RefCountObeject because they may be EGL or GL objects and should handle their own deletion. This can cause GL resources to outlive their contexts. When the GL resource is deleted, simply orphan the image. BUG=angleproject:2668 Change-Id: I4a5c12bbe6e725f946209f9b48345a4097c9c91c Reviewed-on: https://chromium-review.googlesource.com/1153601 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 0bc81b6c 2018-07-30T13:34:50 Store egl::Image size/format information at initialization time. This avoids potential null-dereferences on the source if it is orphaned. BUG=angleproject:2668 Change-Id: I5d591a941d114bb231044572a31a8c43cf3a9c4f Reviewed-on: https://chromium-review.googlesource.com/1155104 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill a11819de 2018-07-30T10:26:01 Context: Use Observer pattern for container objects. Container objects in this case are the Vertex Array and Read and Draw Framebuffers. Instead of using a mutable dirty bit state with a const function to notify of dirty bits we can use the Observer/Subject pattern. This more cleanly allows us to do cache updates. Bug: angleproject:1391 Change-Id: I88f863894ec3efa00322038f323a84850166107d Reviewed-on: https://chromium-review.googlesource.com/1153399 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Frank Henigman <fjhenigman@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 08f1a3cd 2018-07-27T17:24:26 Use ANGLE_UNLIKELY in ANGLE_TRY_HANDLE. Bug: angleproject:2738 Change-Id: I1a699eda4c9795347fb43147275ac43d62523238 Reviewed-on: https://chromium-review.googlesource.com/1153634 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Geoff Lang 620a6895 2018-07-27T14:40:40 Refactor RefCountObject and Binding pointer into the angle namespace. Make the onDestroy method generic to use different context and error types. This will allow us to have RefCountObjects for EGL that return EGL errors and destroy with egl::Displays. BUG=angleproject:2668 Change-Id: I77549cdc7119979d6eec96c7e6246242aed74830 Reviewed-on: https://chromium-review.googlesource.com/1153452 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill bdc610ae 2018-07-30T10:26:00 VertexArray: Cache element limit for buffer checks. Uses checked math in VertexAttribute updates to store an element limit. This computes more when changing the vertex array rather than at draw call time. There may be a performance regression for workflows such as: loop() { VertexAttribPointer DrawArrays } It should improve performance in most other cases. Bug: angleproject:1391 Change-Id: I210d666d9dae9164a1c65f70f5e2151fb4f2d86d Reviewed-on: https://chromium-review.googlesource.com/1150514 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 7a5814e2 2018-07-27T08:12:50 D3D11: Use angle::Result error pattern. 3/3 This completes the initial refactor for the D3D11 back-end. Bug: angleproject:2738 Change-Id: I6bc59d6a1a724b3c64d6cd904e6748c2acf8f67d Reviewed-on: https://chromium-review.googlesource.com/1151452 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 038e725a 2018-07-27T08:12:49 D3D11: Use angle::Result error pattern. 2/3 This CL introduces d3d::Context. This new class can wrap a DisplayD3D and a Context9/11 so we can use them through the same code paths. It also refactors the D3D11 resource allocation to always have access to a d3d::Context. Bug: angleproject:2738 Change-Id: I8161acdffee7a868cc26f2d49715413bcca7cc2b Reviewed-on: https://chromium-review.googlesource.com/1151451 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill ad63728b 2018-07-31T11:22:14 VertexArray: Store bound attributes mask in binding. Making the bound attributes mask part of the struct keeps the style a bit more consistent. It will also make updating the cache variable a bit easier. Bug: angleproject:1391 Change-Id: I2b0ba1161d2579d95ddfbae7a05e490c9644a126 Reviewed-on: https://chromium-review.googlesource.com/1150513 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill ac43aaa2 2018-07-31T11:22:13 Refactor client check from ValidateDrawAttribs. This moves out some shared logic into a more accessible place. We don't need to validate buffer overflows when using robust resource access but we do need to validate we are using client side data correctly. Bug: angleproject:1391 Change-Id: I7a3dca8409c5a1faf1ff7bc732d5ed1bd62eb3b1 Reviewed-on: https://chromium-review.googlesource.com/1148817 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Courtney Goeltzenleuchter 8c1508bc 2018-07-30T09:46:27 Update name of ANGLE Android apk to match expectations Android build system wants to see pre-built components like this with naming that indicates what it is. Bug: angleproject:2702 Change-Id: I84acee78a6ceef5b04c87436c68d41510f6e66c7 Reviewed-on: https://chromium-review.googlesource.com/1155004 Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 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>
Ian Elliott 97f45b7b 2018-07-27T21:03:10 Add Android-specific version struct to GetSystemInfo results. Bug: angleproject:2749 Change-Id: Ie8fdb67918ea1c1054527fe1e0c1be4054fe9cb3 Reviewed-on: https://chromium-review.googlesource.com/1154189 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Ian Elliott <ianelliott@google.com>
Olli Etuaho 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>
Jamie Madill 2eb65034 2018-07-30T10:25:57 Add Context::getActiveBufferedAttribsMask. This will enable more caching for ValidateDrawAttribs. It requires some minor refactoring of the GLES 1 code. Bug: angleproject:1391 Change-Id: I52b73c9384d14cdb90ba6337bfc1ab345866fff0 Reviewed-on: https://chromium-review.googlesource.com/1147436 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Frank Henigman <fjhenigman@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Frank Henigman 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>
Frank Henigman 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>
Zhenyao Mo 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>
Jamie Madill 306b6c16 2018-07-27T08:12:49 D3D11: Use angle::Result error pattern. 1/3 This CL improves performance on the draw call microbenchmark by 10% when no-oping driver calls. Bug: angleproject:2738 Change-Id: I4f5c11db90d9056ce4557b2a4432bc55b42b5bba Reviewed-on: https://chromium-review.googlesource.com/1150093 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Geoff Lang 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>
Geoff Lang 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>
LRN 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>
Jamie Madill 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>
Jamie Madill 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>
Jamie Madill 021bad40 2018-07-27T08:12:47 D3D: Add streaming buffer initialize. This gives us better control over the error returned by the init routine. Also changes the streaming buffer in VertexDataManager to not be a unique_ptr. Bug: angleproject:2738 Change-Id: I3193840dfb71c7574adbe65bc5f9227f4add1fd3 Reviewed-on: https://chromium-review.googlesource.com/1151448 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Tom Anderson 21e9baf7 2018-07-26T15:35:54 Roll Vulkan-Loader to a835880 Changelist: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader/+log/da58202e9569eff53560b4c3a007de2297be40d2..a8358804f3c5b4e284d5e9a88b232309bb3c333d BUG=chromium:427584 Change-Id: I758d2ba05aa731b07e5d336a6ebab45a4837e142 Reviewed-on: https://chromium-review.googlesource.com/1152356 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Olli Etuaho 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>
Frank Henigman 18f7e503 2018-07-19T16:06:43 Vulkan: make DynamicBuffer reusable, always valid. After a release() or destroy() it is now possible continue using a DynamicBuffer because we reset the internal variables and the next allocate() restarts everything. Also removed the valid() method as it wasn't very useful and made reuse more complicated. No functional change. BUG=angleproject:2405 Change-Id: I5ca9b758fb300618f6578ebc406494ad281c1622 Reviewed-on: https://chromium-review.googlesource.com/1144229 Commit-Queue: Frank Henigman <fjhenigman@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 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>
Jiawei Shao 203b26f2 2018-07-25T10:30:43 ES31: Translate compute shader HLSL system variables in compile time This patch moves the implementation of translating compute shader builtin variables from link time to compile time. Unlike graphics shaders that require the information from other shader stages, we actually have enough information to translate compute shader builtin variables in compile time. Many redundant codes in DynamicHLSL have been removed after this refactor. BUG=angleproject:1442 Change-Id: I7458006785ff966a00a3825610adc5566652c75e Reviewed-on: https://chromium-review.googlesource.com/1149609 Reviewed-by: Jiajia Qin <jiajia.qin@intel.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Omar El Sheikh 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>
Jamie Madill 5188a274 2018-07-25T10:53:56 Pass Context to Query Impl methods. The Context needed for the error refactor and Vulkan implementation. Bug: angleproject:2738 Change-Id: Id816b61ebf342c953a320ab29b6386e356dc64e8 Reviewed-on: https://chromium-review.googlesource.com/1150092 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill a0691b77 2018-07-25T10:41:22 Pass Context to Fence Impl methods. This is needed for the error refactoring and also for the Vulkan implementation. Bug: angleproject:2738 Change-Id: I4e1bed7f67ef17feb5554b5838a2ed5feb22bba0 Reviewed-on: https://chromium-review.googlesource.com/1150091 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 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>
Jamie Madill bb22f3d9 2018-07-24T23:19:44 D3D11: Reduce allocations in GenerateInitialTextureData. We can re-use the same info for each level of the texture. Also use fixed sized arrays for the subresource data structure. Bug: chromium:867089 Change-Id: Ie43886f708d1141fb80d30a78cabdd37dfbf6f94 Reviewed-on: https://chromium-review.googlesource.com/1149082 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 6e909ef2 2018-07-24T23:19:44 D3D11: Pass Context to more Image methods. Needed to get access to the scratch buffer. Bug: chromium:867089 Change-Id: I217bde149d24432e4baa276ead02ebc52a219958 Reviewed-on: https://chromium-review.googlesource.com/1149081 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 2160821e 2018-07-24T23:19:43 Add gl::TexLevelArray. This moves a D3D specific type into a shared location. Bug: chromium:867089 Change-Id: Ieac9f1aa4a9de11fbc86550eee30fb242a2cb98e Reviewed-on: https://chromium-review.googlesource.com/1149080 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 096c5296 2018-07-24T11:06:49 Blit11: Refactor for error returning. Don't use ErrorOrResult. Also pass gl::Context around to more places. Bug: angleproject:2378 Change-Id: Id498471fc9ab4f4d6b2285e110381b10a1247689 Reviewed-on: https://chromium-review.googlesource.com/1148465 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill daf2e913 2018-07-24T11:06:48 TextureStorage11: Pass more Context around. This will make it possible to record errors in the context immediately. Bug: angleproject:2378 Change-Id: Ib7ccdbcfa2bf51e3cc876496267c61cf5a26b7bd Reviewed-on: https://chromium-review.googlesource.com/1148464 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 7b4ef3da 2018-07-24T11:06:48 TextureStorage11: Don't use gl::ErrorOrResult. Bug: angleproject:2738 Change-Id: I062b2fe3ff2b53bb361539c408b61626ac6c2f25 Reviewed-on: https://chromium-review.googlesource.com/1148463 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill d91d15bd 2018-07-24T11:06:48 D3D11: Don't use ErrorOrResult in TransformFeedback11. Unblocks further return value refactoring for perf. Bug: angleproject:2738 Change-Id: Ie92aa656736f84b4e4ef6d4ab8e0377ad4afb2af Reviewed-on: https://chromium-review.googlesource.com/1142955 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 02b5328b 2018-07-24T11:06:47 D3D: Make computeOffset not use ErrorOrResult. Unblocks further error refactoring. Also cleans up some checked math logic. Bug: angleproject:2738 Change-Id: I0c9fba9bb908dfc8424921d0db9871241b86e7de Reviewed-on: https://chromium-review.googlesource.com/1142954 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 20d6d48c 2018-07-24T11:06:47 D3D11: Make createStagingTexture return Error. This removes the use of the ErrorOrResult pattern in Renderer11. Bug: angleproject:2738 Change-Id: Icc046ddd86394df56ca1acd10b1804fd6afa8ad0 Reviewed-on: https://chromium-review.googlesource.com/1142953 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 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>
Omar El Sheikh 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>
Geoff Lang faf50849 2018-07-24T13:49:05 EGL: Validate that EGL_GL_TEXTURE_ZOFFSET is used only for 3D sources. BUG=angleproject:2507 Change-Id: I0e5879acfbb7ba1b9d711f518205cebad2edb643 Reviewed-on: https://chromium-review.googlesource.com/1148657 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>