- 25 Oct, 2018 1 commit
-
-
Qin Jiajia authored
This change fixes below errors: error X3013: 'asuint': no matching 1 parameter intrinsic function error X3013: Possible intrinsic functions are: error X3013: asuint(double, out uint x, out uint y) error X3013: asuint(float|half|int|uint) When we store a boolean value, we should cast it to uint firstly. Then do the store. Bug: angleproject:1951 Change-Id: I8931e540d701ef72bb82846496c698acef1ba1fb Reviewed-on: https://chromium-review.googlesource.com/c/1295831 Commit-Queue: Jiajia Qin <jiajia.qin@intel.com> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
- 24 Oct, 2018 2 commits
-
-
Scott Graham authored
I think we'll only need Vulkan. But in any case, the GL code doesn't build, so disable it for now. Bug: chromium:808287 Change-Id: I08f8cd09e67d91c08b7632e54bbdc6a11ee57014 Reviewed-on: https://chromium-review.googlesource.com/c/1298381Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Scott Graham <scottmg@chromium.org>
-
Geoff Lang authored
BUG=angleproject:2508 Change-Id: I8ef2ce8320edeb336727905055f47bb299dec2ea Reviewed-on: https://chromium-review.googlesource.com/c/1238886Reviewed-by:
Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by:
Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
-
- 23 Oct, 2018 1 commit
-
-
Qin Jiajia authored
When we meet function call, unary or ternary operator in SSBO access chain, we should transfer the process of them to OutputHLSL. Bug: angleproject:1951 Change-Id: I740940ac4eee4c5ed52239f14b1d32b1f9cf9385 Reviewed-on: https://chromium-review.googlesource.com/c/1290470Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
-
- 22 Oct, 2018 3 commits
-
-
Jamie Madill authored
This avoids one more function call + register pushing/popping. Slight improvement in the command_buffer_perftests. Bug: angleproject:2877 Change-Id: Ia50a330e62f0bd32266c9f0999810243cbaa41e0 Reviewed-on: https://chromium-review.googlesource.com/c/1293630Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
There are two main optimizations: 1. Inline setDraw*State and maskOutInactiveOutputDrawBuffers. 2. Remove Multiview dirty bits. The first change is a refactoring only. It moves the code around a bit so we can hit a fast path and never have to push/pop registers. The second change is also a no-op since the multiview dirty bits were made redundant. Improves performance in the command buffer perftests by 1-5%. Bug: angleproject:2877 Change-Id: I1632a838371ec8b85c2e06b3b86f08727ca9dacf Reviewed-on: https://chromium-review.googlesource.com/c/1293629 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Yizhou Jiang authored
Support GL_ANGLE_texture_multisample extension. This patch adds enums of multisampled texture and texStorage2DMultisampleANGLE API. TEST=angle_end2end_tests.exe --gtest_filter=TextureMultisampleTest* TEST=angle_end2end_tests.exe --gtest_filter=NegativeTextureMultisampleTest.Negtive* BUG=angleproject:2275 Change-Id: I2cab997edc33aa2d0be6082381545335423f64e0 Reviewed-on: https://chromium-review.googlesource.com/c/804613 Commit-Queue: Yizhou Jiang <yizhou.jiang@intel.com> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
- 20 Oct, 2018 2 commits
-
-
Jamie Madill authored
We can mutate the BitSetIterator as it clears dirty bits. This removes the risk of doing a double state update. Improves the proformance of the GL back-end state update. Also do an early-out before calling syncDrawArraysState. Bug: angleproject:2763 Change-Id: Idd25bdd67a6aceff05529a533260b661b07c2928 Reviewed-on: https://chromium-review.googlesource.com/c/1262740 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Jamie Madill authored
This prevents us from updating some dirty bits in some operations. It can prevent us from doing things like updating the Program when we don't use it in a GPU operation. Also adds Framebuffer dirty bits to TexImage to work around a bug on the Windows Intel OpenGL driver. Bug: angleproject:2763 Bug: angleproject:2906 Change-Id: I9f69775fb930a9bbcbd40d0f9012d62a9381c9f8 Reviewed-on: https://chromium-review.googlesource.com/c/1292610Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
- 19 Oct, 2018 10 commits
-
-
Jamie Madill authored
Refactors the gl::FenceNV and gl::Sync classes. Bug: angleproject:2491 Change-Id: I0fe73d1ccf5407f460e173a3061735b330a88511 Reviewed-on: https://chromium-review.googlesource.com/c/1289712Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
Refactors the gl::Program, gl::Compiler and gl::Query classes. Bug: angleproject:2491 Change-Id: I96acecdc6af301a89201bd7f5222a180433e5eb2 Reviewed-on: https://chromium-review.googlesource.com/c/1289711Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
Refactors gl::Buffer and implementation. Bug: angleproject:2491 Change-Id: Ic6860dac2faf33067965e7117ea8e98dc6a8dc7a Reviewed-on: https://chromium-review.googlesource.com/c/1283310Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
Handles the gl::Renderbuffer class and its implementation. Bug: angleproject:2491 Change-Id: I3ef718b492dc39ba640c8f68ed80b536f89ff378 Reviewed-on: https://chromium-review.googlesource.com/c/1283309Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
Handles the gl::Framebuffer class and its implementation. Bug: angleproject:2491 Change-Id: I3b9c0609e9277264ccdb370596500562df3b7d15 Reviewed-on: https://chromium-review.googlesource.com/c/1280743Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
Handles the gl::Context class and its implementation. Bug: angleproject:2491 Change-Id: I7b7eb0897d131a194f6b563b7e01756fd7adb7e1 Reviewed-on: https://chromium-review.googlesource.com/c/1280742Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
This should give more potential for inlining the function. Makes the non-parameterized set and assign private in OffsetBindingPointer to prevent user errors. Bug: angleproject:2891 Change-Id: I0d581a96154c0cd33a93b06ef4a3c162809a8208 Reviewed-on: https://chromium-review.googlesource.com/c/1286378 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Shahbaz Youssefi <syoussefi@chromium.org>
-
Jamie Madill authored
We can share the same pointer for the subject binding and the binding pointer. This further allows us to optimize buffer re-binding. The shared memory increases cache coherency and reduces the number of instructions needed. Bug: angleproject:2891 Change-Id: Id3162fa79de203f75989e7289ea02cb2ea1bec73 Reviewed-on: https://chromium-review.googlesource.com/c/1270217 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Frank Henigman <fjhenigman@chromium.org>
-
Jamie Madill authored
This will allow us to share the BindingPointer and ObserverBinding. It also cleans up the code a little bit. Bug: angleproject:2891 Change-Id: Ib8e2c34ccd379dc5b5648bac324fa4ff22a5a1a0 Reviewed-on: https://chromium-review.googlesource.com/c/1270216 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by:
Frank Henigman <fjhenigman@chromium.org>
-
Jamie Madill authored
Using a table of function pointers is faster than using a switch followed by a function call. Also more aggressively inline binding methods. Based on contribution by mtavenrath@nvidia.com. In total this patch sequence improves the performance of a buffer binding perf test by up to 27%. Test: BindingsBenchmark.Run/gl_100_objects_allocated_at_initialization Bug: angleproject:2891 Change-Id: Iaab1e2a135b635bd72736d7d1d4271562c3a4ece Reviewed-on: https://chromium-review.googlesource.com/c/1281783 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Frank Henigman <fjhenigman@chromium.org>
-
- 18 Oct, 2018 8 commits
-
-
Ian Elliott authored
The original API is designated as version 0. The new API is designated as version 1. A new function is provided for determing the version of the API that can be used. Bug: angleproject:2794 Change-Id: I8205b462522cbc34d31643ea14815e187497abed Reviewed-on: https://chromium-review.googlesource.com/c/1278836Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
-
Jamie Madill authored
Reported by bratell@opera.com. Bug: angleproject:2727 Change-Id: I92750c11fc7d811fa627c8691f6f047023086239 Reviewed-on: https://chromium-review.googlesource.com/c/1289235Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Shahbaz Youssefi authored
Possibly fixed in 6c6be2ce. Bug: angleproject:2649 Bug: angleproject:2656 Change-Id: I0ab97e2d828b6b8643a68ab9b28fc0ccd8f08c48 Reviewed-on: https://chromium-review.googlesource.com/c/1289350Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
-
Shahbaz Youssefi authored
- QueryVk::queryCounter() and relevant utils are implemented for the sake of Timestamp queries. - TimeElapsed queries are implemented using two Timestamp queries. Bug: angleproject:2885 Change-Id: Id181bd97f5a24e7e96b3ea1b819483227e64daf0 Reviewed-on: https://chromium-review.googlesource.com/c/1276806 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Shahbaz Youssefi authored
glGetQueryObject* requires forward progress in the queue regardless of whether we are waiting on the result or busy-looping over whether the results are available. This commit calls flush() if the query has pending work. Additionally, this fixes a race condition where glGetQueryObject* may be accessing a query whose corresponding batch has been submitted but not yet executed. In such a case, the GPU may not have already reset the query, so we have to wait on the fence of that batch to make sure the query results are reliably available. Bug: angleproject:2855 Change-Id: I977909c6526c0778a13722a8b8b73e54ad0202f6 Reviewed-on: https://chromium-review.googlesource.com/c/1279125 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
This test appears to be flaky. Bug: angleproject:2896 Change-Id: Ib0c0ac9ab170edf0f31506f847307bee9b78f770 Reviewed-on: https://chromium-review.googlesource.com/c/1286913 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Joonatan Saarhelo authored
BUG=angleproject:2884 Change-Id: Ib1867fbd4c2ea3c3b29d2f987d384762f5851e8f Reviewed-on: https://chromium-review.googlesource.com/c/1276585 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Yuly Novikov authored
Bug: angleproject:2895 Change-Id: Idfe379e34c4f165b91babcb1990df28fa151d807 Reviewed-on: https://chromium-review.googlesource.com/c/1286373 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
- 17 Oct, 2018 7 commits
-
-
Jamie Madill authored
This allows us to view the timeline of events in the trace event browser. We can extend this to do GPU timestamp queries and analyze when work is actually in flight. The trace is enabled in standalone ANGLE only using the flag --enable-trace with angle_perftests. You can also optionally specify the trace output file with --trace-file <blah>. The default file is ANGLETrace.json. Bug: angleproject:2781 Change-Id: I871f28545d9bf18220b55aaf69e9554dcb4c834d Reviewed-on: https://chromium-review.googlesource.com/c/1259763 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Shahbaz Youssefi authored
A semaphore pool is implemented to allow dynamic allocation of semaphores as needed when breaking up a frame with flushes. The pool is used both for acquiring the next image and for chaining mid-frame submissions. RendererVk::flush() is changed so that instead of taking the wait/signal semaphores as parameters, it would use the last known signaled semaphore as wait semaphore and allocates a semaphore for signaling. It would additionally wait for any extra semaphore provided externally (i.e. the surface's image acquire semaphore). Bug: angleproject:2504 Change-Id: Iecd2d5535230c48b26a6b7d078710af8730121da Reviewed-on: https://chromium-review.googlesource.com/c/1276805 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Shahbaz Youssefi authored
Vulkan wrapper functions are fairly straightforward. They call the Vulkan function and return immediately. The specialized macros introduced in this commit take care of the final return for brevity of the warpper. Additionally, this commit gets rid of ANGLE_EMPTY_STATEMENT in favor of the more robust macro definition using do {} while (0). Bug: none Change-Id: Ia7c68962d1aeee2c06ef210122b345b1a2e54f08 Reviewed-on: https://chromium-review.googlesource.com/c/1262020 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by:Jamie Madill <jmadill@chromium.org>
-
Shahbaz Youssefi authored
A bug in clang is preventing the use of link time optimization. Bug: angleproject:2892 Change-Id: Ibe845e82f0db48233f8590189163fd8a5a8df634 Reviewed-on: https://chromium-review.googlesource.com/c/1263905Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
-
Takuto Ikuta authored
This is a preparation CL to remove -Wno-unused-lambda-capture warning suppression. Bug: chromium:681136 Change-Id: Ib5c1c4eeeed3b7406ede2dea33066c54e5fc3da0 Reviewed-on: https://chromium-review.googlesource.com/c/1286172 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
Sequences of many frames with uniform updates could lead to a bug where we attempt to delete descriptor sets that are still in use. To trigger the bug we need to write enough uniform data to trigger a descriptor set to be freed. This would correctly trigger refresh sets in the Program. But if there was a second program idle in the background that also allocated descriptors from the old pool, the bug would manifest. Fix this by storing a shared handle to the descriptor pool in the Program. The dynamic descriptor pool won't recycle descriptor pools internally unless there are zero outstanding references to the pool. We could also improve this in a resource sharing situation by keeping a single shared dynamic descriptor pool per share group. Includes a contribution from tobine@google.com that adds a test to cover the bug. Bug: angleproject:2863 Change-Id: Id585b85f33f8cfa3772ceff3af512d1e4fb0b75a Reviewed-on: https://chromium-review.googlesource.com/c/1271919Reviewed-by:
Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Qin Jiajia authored
Re-land skips ProgramInterfaceTestES31.GetProgramInterface/ES3_1_D3D11 to pass the bots. In fact, ProgramInterfaceTestES31.GetProgramInterface/ES3_1_D3D11 is not a regression. The reverted CL added more SSBO features and triggered the failure. To enable ProgramInterfaceTestES31.GetProgramInterface/ES3_1_D3D11, we should support SSBO in render pipeline. This needs to bind SSBO to UAV registers in link time instead of compile time since output variables also occupies the UAVs. Let's enable this test when we support SSBO in render pipeline. Currently, we shouldn't block the SSBO implementation in some common features. Bug: angleproject:1951 Change-Id: Ic339e8327e79335e6db1d86bedf0072635976f5f Reviewed-on: https://chromium-review.googlesource.com/c/1282277Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
-
- 16 Oct, 2018 4 commits
-
-
Jamie Madill authored
Bug: angleproject:2606 Bug: angleproject:2609 Bug: angleproject:2895 Change-Id: Iab71cfff2317d7283db69c3f8c82db8d94f7cafc Reviewed-on: https://chromium-review.googlesource.com/c/1283854Reviewed-by:
Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Frank Henigman authored
The enum VertexFormatType is redundant with angle::FormatID. The Vulkan back end has already eschewed VertexFormatType, this change updates the D3D back ends. BUG=angleproject:2531 Change-Id: I67ea2203ca80be828f4c757a37810fe67a279364 Reviewed-on: https://chromium-review.googlesource.com/c/1263899Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
-
Shahbaz Youssefi authored
The query nodes now output BeginQuery or EndQuery based on the node's function, instead of just Query. Bug: angleproject:2379 Change-Id: I6ba38031c40b88e8927b31cdf14e4fdc2474624e Reviewed-on: https://chromium-review.googlesource.com/c/1277485 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Jiawei Shao authored
This patch implements the translation of textureGather[Offset] on integer and unsigned integer format textures on D3D11. According to MSDN, Gather[Red|Green|Blue|Alpha] can be used on integer and unsigned integer format textures with float texture coordinates: https://docs.microsoft.com/en-us/windows/desktop/direct3dhlsl/dx-graphics-hlsl-to-gather Currently the dEQP tests on TextureGather[Offset] on cube map textures in integer or unsigned formats still cannot pass. This issue is under investigation. Bug: angleproject:2826 Test: dEQP-GLES31.functional.texture.gather.basic.2d.* dEQP-GLES31.functional.texture.gather.basic.2d_array.* dEQP-GLES31.functional.texture.gather.offset.min_required_offset.2d.* dEQP-GLES31.functional.texture.gather.offset.min_required_offset.2d_array.* dEQP-GLES31.functional.texture.gather.offset.implementation_offset.2d.* dEQP-GLES31.functional.texture.gather.offset.implementation_offset.2d_array.* Change-Id: If049dc395fb17cd34dec902630e3a1154e5d4806 Reviewed-on: https://chromium-review.googlesource.com/c/1271926 Commit-Queue: Jiawei Shao <jiawei.shao@intel.com> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
- 15 Oct, 2018 1 commit
-
-
Joonatan Saarhelo authored
glGetVertexAttribIuiv previously returned an incorrect value for GL_VERTEX_ATTRIB_ARRAY_DIVISOR, because the divisor was treated as an integer even though it is an unsigned integer. BUG=angleproject:2281 Change-Id: I4d1c9df15244db855c6a000fc8fb6cc786bfcb85 Reviewed-on: https://chromium-review.googlesource.com/c/1273300Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
-
- 12 Oct, 2018 1 commit
-
-
Geoff Lang authored
BUG=892288 Change-Id: I56fc3ab00c06d711e1a21eb1ad4b2224126730dc Reviewed-on: https://chromium-review.googlesource.com/c/1262021Reviewed-by:
Yuly Novikov <ynovikov@google.com> Reviewed-by:
Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
-