- 13 Aug, 2018 2 commits
-
-
jchen10 authored
Bug: angleproject:2747 Bug: angleproject:2763 Change-Id: I19f9e5ba760d3b5baf3997284523ee1db6bb8166 Reviewed-on: https://chromium-review.googlesource.com/1172206Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jie A Chen <jie.a.chen@intel.com>
-
Olli Etuaho authored
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/1169818Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
- 11 Aug, 2018 1 commit
-
-
jchen10 authored
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>
-
- 10 Aug, 2018 5 commits
-
-
Jamie Madill authored
Bug: angleproject:1944 Change-Id: I93f363dc5fb6096baec01584bbd2fb525a84909c Reviewed-on: https://chromium-review.googlesource.com/1171502Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
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 authored
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/1171363Reviewed-by:
Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Omar El Sheikh authored
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 authored
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/1167980Reviewed-by:
Kenneth Russell <kbr@chromium.org> Reviewed-by:
Olli Etuaho <oetuaho@nvidia.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
- 09 Aug, 2018 6 commits
-
-
Jamie Madill authored
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/1169955Reviewed-by:
Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
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 authored
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/1169306Reviewed-by:
Omar El Sheikh <theoking@google.com> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
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 authored
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 authored
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/1169426Reviewed-by:
Omar El Sheikh <theoking@google.com> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
- 08 Aug, 2018 7 commits
-
-
Jamie Madill authored
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 authored
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 authored
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 authored
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 authored
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 authored
This enables the error refactor for D3D. Bug: angleproject:2752 Change-Id: I7bb293d6c271d0bffb4d00b55029426b6cd0a42e Reviewed-on: https://chromium-review.googlesource.com/1167208Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
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>
-
- 07 Aug, 2018 4 commits
-
-
Takuto Ikuta authored
This is for reproducible build of angle related libraries. Bug: 828669 Change-Id: I807c8fb01b976f6e7a71477ee934b9e0b0cdc684 Reviewed-on: https://chromium-review.googlesource.com/1164814Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Frank Henigman <fjhenigman@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
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 authored
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 authored
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>
-
- 06 Aug, 2018 1 commit
-
-
Geoff Lang authored
BUG=864528 Change-Id: Iac418054ae56a2d9dd277d0474019997aeaa834b Reviewed-on: https://chromium-review.googlesource.com/1163633Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
-
- 03 Aug, 2018 4 commits
-
-
Geoff Lang authored
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/1156853Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
-
Geoff Lang authored
This improves the performance of Framebuffer::hasTextureAttachment 3X. BUG=angleproject:2188 Change-Id: I6acc7f4440fe0232438182274d7bba6075530f38 Reviewed-on: https://chromium-review.googlesource.com/1159171Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
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 authored
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/1160540Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
- 02 Aug, 2018 1 commit
-
-
Thomas Miller authored
Change-Id: Iee947a5abf4a833f155f7cb100577c92323a34e5 Reviewed-on: https://chromium-review.googlesource.com/1160863Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
-
- 01 Aug, 2018 9 commits
-
-
Jamie Madill authored
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 authored
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 authored
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 authored
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 authored
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 authored
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 authored
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/1153399Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Frank Henigman <fjhenigman@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
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 authored
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>
-