- 24 May, 2017 10 commits
-
-
Jamie Madill authored
We will need the Renderer pointer for resource allocation, so pass it around instead of storing the device and context. BUG=angleproject:2034 Change-Id: Iaf271913f88c5402895aa81de310aa22fcd72cc4 Reviewed-on: https://chromium-review.googlesource.com/509930Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
We were not correctly checking for a zero-size buffer, which should not trigger allocating a scratch buffer. BUG=angleproject:1635 Change-Id: Iac0a3d8f1eeeb7b39c59eec411bec78a4f21bcd3 Reviewed-on: https://chromium-review.googlesource.com/513478Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Olli Etuaho authored
Precision emulation for compound assignment used to set the wrong type for the compound assignment nodes, which could cause an assert to trigger. The wrong rounding function was also being called in the lowp rounded compound assignment function. BUG=chromium:699479 TEST=angle_unittests Change-Id: I60b4cb3bf1830e8249511c13037348bb2423e5b9 Reviewed-on: https://chromium-review.googlesource.com/514045Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
Jamie Madill authored
This change also moves all SRV storage to use the custom smart pointer classes in ResourceManager11. Every single SRV is now allocated in ResourceManager11. For TextureStorage11 and RenderTarget11, we use a shared pointer type since the SRVs use shared ownership by both classes. BUG=angleproject:2034 Change-Id: I90666fbbbc23ff10870b7401f3da09ef79258136 Reviewed-on: https://chromium-review.googlesource.com/503250Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
This prevents Chrome's about:gpu from being filled with bad shaders, and instead only prints the relevant error lines. BUG=None Change-Id: I75fcd2ef920d2ed7b98e8668c487b0921faf4c0b Reviewed-on: https://chromium-review.googlesource.com/513417Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Lei Zhang authored
When ANGLE is used with Chromium, having two copies of safe numerics code in namespace base causes ODR violations. BUG=449754 Change-Id: I686049e7d8926373d00dd17ec8142fa3c508b9c5 Reviewed-on: https://chromium-review.googlesource.com/513434Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Wei-Yin Chen (陳威尹) authored
BUG=chromium:723856 Change-Id: I7481d3335111c697f77aa0ea673614e79b4a86f6 Reviewed-on: https://chromium-review.googlesource.com/513588Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Frank Henigman authored
Allow CopyTexImageTest.SubDefaultFramebuffer and CopyTexImageTest.DefaultFramebuffer to work with Mesa and GLX back end by doing a clear before reading the framebuffer. BUG=angleproject:2027 Change-Id: Ibb10369e3f5aceb60511fbed1d67a28132734b29 Reviewed-on: https://chromium-review.googlesource.com/507952Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
-
Olli Etuaho authored
The spec isn't very explicit about disallowing this, but conversions from structs are not among the conversion constructors or specified in any other way either. BUG=angleproject:2036 TEST=angle_unittests Change-Id: I23f2ceda1d1348cec0d3bba38a7a013275ff84eb Reviewed-on: https://chromium-review.googlesource.com/514002 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
-
Olli Etuaho authored
Otherwise we may run into a name conflict issue if the shader code is run through the translator twice, since neither user-defined function names or internal function names are currently being prefixed in GLSL output. This could be fixed by prefixing user-defined variables in GLSL output, but this solution is much simpler. BUG=angleproject:1966 TEST=angle_end2end_tests, WebGL conformance tests Change-Id: I15c8de5a0a5e596fafe9f55e8d370345c790d5cc Reviewed-on: https://chromium-review.googlesource.com/509688 Commit-Queue: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
-
- 23 May, 2017 1 commit
-
-
Kenneth Russell authored
Apparently the current clang roll has fixed these already. BUG=722345 Change-Id: I59f07f197fdfd1eb6e000390ee93d41938fe4d42 Reviewed-on: https://chromium-review.googlesource.com/510031 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
- 22 May, 2017 1 commit
-
-
Olli Etuaho authored
Use "?:" as the operator string to make the error message clearer. Update some comments to refer to specific revisions of the spec, since there have been some spec changes in this area. BUG=angleproject:2032 Change-Id: Ic5d128391bfa46187ad335228077f5eab9eac349 Reviewed-on: https://chromium-review.googlesource.com/500270Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
- 19 May, 2017 4 commits
-
-
Jamie Madill authored
This uses the new classes introduced in ResourceManager11. Smart pointers mean we can use ANGLE_TRY in more places, and don't need to manually release these views. There is now a single point in the D3D11 back-end where depth stencil views are allocated. BUG=angleproject:2034 Change-Id: If0de2529ece1298e8babf24c07cc4be9849cc4de Reviewed-on: https://chromium-review.googlesource.com/503249Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Shao authored
This patch intends to solve several design issues by refactoring the process of syncState in VertexArrayGL before implementing ES3.1 feature Vertex Attrib Binding on the OpenGL back-end. 1. Use nullptr as the flag of using client memory pointer 2. Simplify comparisons in updateAttribPointer. 3. Put all code related to mFunctions->vertexAttrib*Pointer() into an individual function 4. Remove redundant mStateManager->bindVertexArray() in all update* functioins and only call it once in syncState(). BUG=angleproject:1593 Change-Id: I8f68534bb9291a601b9b77954d7281e5171c2b55 Reviewed-on: https://chromium-review.googlesource.com/465378 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Olli Etuaho authored
Multiple insertions to the same parent can be handled as long as the insertions don't have the same position as well. They're sorted in reverse order so that insertions to greater indices get processed first. This helps to make some AST transformations faster - they don't need multiple tree traversals and updateTree() steps anymore. The SimplifyLoopConditions AST transformation is changed to only use a single traversal. BUG=angleproject:1966 TEST=angle_unittests, angle_end2end_tests, WebGL conformance tests, dEQP-GLES2.functional.shaders.*select_iteration_count* Change-Id: I3183f2644ad58b282926093c77b204fb7e4e9b71 Reviewed-on: https://chromium-review.googlesource.com/506202Reviewed-by:Jamie Madill <jmadill@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
Olli Etuaho authored
It doesn't need to use a traverser, since all function definitions can be found simply by iterating over the children of the root node. BUG=angleproject:2040 TEST=angle_unittests Change-Id: I18a98eff9710485c0cdce73e7fffe124f7d7afb2 Reviewed-on: https://chromium-review.googlesource.com/508791Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
- 18 May, 2017 5 commits
-
-
Kenneth Russell authored
The names were wrong, so the test expectations weren't applying. BUG=722345 Change-Id: Ic64abf08e512dbf3c297ee89a74b614cd4590b58 Reviewed-on: https://chromium-review.googlesource.com/508166Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
-
Jamie Madill authored
The resource manager tracks the allocations and deallocations of all D3D11 resources that have device memory: Buffers and Textures (which are either 2D or 3D). It also tracks the number of active Views (DSV, RTV, and SRV, potentially UAV with ES 3.1). A new smart pointer type will wrap the resource deallocation so that the object notifies the manager when ANGLE is done with the resouce. This allows us to track precisely how much GPU memory we think we're using at any point, and will help prevent resource leaks for these object types. It also makes initialization and releasing much more trivial. The base class for a resource uses a template template parameter so that we can use a unique or shared pointer depending on if the object in question needs unique or shared ownership. For some resources (in our case, SRVs are shared between the TextureStorage11 and RenderTarget11 classes, and Textures are shared in many places) we need to have the ability to have shared ownership. Unique ownership is a little bit more efficient so supporting both can be helpful. In this patch RenderTargetView allocation is moved to use the unique smart pointer. BUG=angleproject:2034 Change-Id: Idb1245c24cd66733b8b5ca524c727350b2d2c745 Reviewed-on: https://chromium-review.googlesource.com/503248 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
-
Geoff Lang authored
BUG=722684 Change-Id: I6f47d92b450a056a2344767bef28e96c4552f98e Reviewed-on: https://chromium-review.googlesource.com/506927Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
-
Olli Etuaho authored
It doesn't need to use a traverser, since all function definitions can be found simply by iterating over the children of the root node. BUG=angleproject:2040 TEST=angle_end2end_tests Change-Id: I380942f90a0e73152f296b98d1fb027762d913b0 Reviewed-on: https://chromium-review.googlesource.com/508689Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
Kenneth Russell authored
BUG=722345 TBR=geofflang@chromium.org Change-Id: Ie4c488b730ed2b51ce8f62d5bf7961dcc8ac0104 Reviewed-on: https://chromium-review.googlesource.com/508102Reviewed-by:
Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
-
- 17 May, 2017 8 commits
-
-
Geoff Lang authored
sRGB textures need to linearize their data before averaging, this worked correctly on the GPU mipmap generation functions but not the CPU ones. BUG=angleproject:2019 TEST=conformance/extensions/ext-sRGB Change-Id: I554dac89b12acf5ebf5b7cab6f6faf0bce5168a6 Reviewed-on: https://chromium-review.googlesource.com/506241 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
This allows us to include <ostream> instead of <iostream> to avoid including a static initializer. BUG=angleproject:2037 Change-Id: Ib7e84a15018fa951bad1c87ffec4bfb0c896749f Reviewed-on: https://chromium-review.googlesource.com/507627Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Corentin Wallez authored
Hopefully this makes the bot green while we investigate whether the bug is in dEQP or clang, and find a fix. BUG=722345 Change-Id: I2813881addb4ebfe23443244d175b4c6db698a7d Reviewed-on: https://chromium-review.googlesource.com/507767Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
-
Olli Etuaho authored
It doesn't need to use a traverser, it's simpler to just iterate over all statements in the global scope. BUG=angleproject:1966 TEST=angle_unittests, WebGL conformance tests Change-Id: I11200f72842db86be2bcdd11934262da183cc3b4 Reviewed-on: https://chromium-review.googlesource.com/504727 Commit-Queue: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
This cleans up the formatting in many places. BUG=None Change-Id: I6c6652ebc042f1f0ffecced53582d09d66b4f384 Reviewed-on: https://chromium-review.googlesource.com/487884Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Xinghua Cao authored
BUG=angleproject:1955 TESTCASE=angle_end2end_tests Change-Id: I69b4df83d67017d39df67753d6d17fc15ececebf Reviewed-on: https://chromium-review.googlesource.com/462067 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Olli Etuaho authored
Constructor arguments don't need to be rounded if the constructor result will be rounded to the same precision. This will make precision emulated shaders slightly faster to execute in some cases. BUG=angleproject:874 TEST=angle_unittests Change-Id: I4220cd2289c97dcf5b7a25a4cbdd18487947c2d2 Reviewed-on: https://chromium-review.googlesource.com/500288Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
Olli Etuaho authored
Share code for finding the main function from the AST between InitializeVariables, DeferGlobalInitializers, EmulateGLFragColorBroadcast and UseInterfaceBlockFields. This makes InitializeVariables simpler in particular, as it doesn't need an AST traverser anymore. BUG=angleproject:2033 TEST=angle_unittests, WebGL conformance tests Change-Id: I14c994bbde58a904f6684d2f0b72bd8004f70902 Reviewed-on: https://chromium-review.googlesource.com/501166Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
- 16 May, 2017 1 commit
-
-
Jiawei-Shao authored
This patch intends to fix a crash issue in the win-clang build of ANGLE by adding the missing currentValueAttrib->binding assignment in StateManager11.cpp::updateCurrentValueAttribs(). In D3D11 all vertex attributes (VertexAttribute and its VertexBinding) should be treated as a whole, so we should always ensure these two parts are availabe. This patch also add ASSERTs before using *translated->attrib and *translated->binding to prevent a TranslatedAttribute object having a null attrib or binding. BUG=chromium:721783, angleproject:1593 Change-Id: Id11d6f1d4c37daabad2265e01ea38eb51046b9cb Reviewed-on: https://chromium-review.googlesource.com/505928Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
-
- 15 May, 2017 3 commits
-
-
Frank Henigman authored
FunctionsEGL::terminatePtr could be null if initialization failed, so check it before use to avoid crashing. Change-Id: Ide9378c8e26749ab9d58c01cb36cd923836cde98 Reviewed-on: https://chromium-review.googlesource.com/506627Reviewed-by:
Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
-
Corentin Wallez authored
The Linux AMD driver optimizes out uniform blocks where WebGL2 and maybe OpenGL ES 3 forbids it. Try to fix this by enabling the workaround that was made for the same problem on OSX. BUG= Change-Id: If3b18ec1f463582d7594221a6f2a08d25207e737 Reviewed-on: https://chromium-review.googlesource.com/506189Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
-
Corentin Wallez authored
BUG=angleproject:2027 Change-Id: I337303c9f673558ed75826e96fc2cd75f6ec1441 Reviewed-on: https://chromium-review.googlesource.com/506070Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
-
- 12 May, 2017 4 commits
-
-
Corentin Wallez authored
This fixes a warning. BUG=angleproject:1668 Change-Id: Idf063be9dde0bfbf5f088d69ef38fd97baa69df3 Reviewed-on: https://chromium-review.googlesource.com/495434 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by:
Frank Henigman <fjhenigman@chromium.org> Reviewed-by:
Yuly Novikov <ynovikov@chromium.org>
-
Shao authored
This patch fixes 2 format issues in the intermediate output of structs and interface blocks in indexing expressions. 1. Adds the missing line feed (LF) so that the next expression can be started in a newline correctly. 2. Remove unnecessary mDepth++ and mDepth-- to avoid redundant indentions. BUG=angleproject:2031 Change-Id: I04e36443a851df4c26ba6b1cbf3a7f8fd6405d3a Reviewed-on: https://chromium-review.googlesource.com/499569Reviewed-by:
Olli Etuaho <oetuaho@nvidia.com> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
Olli Etuaho authored
The code is a lot simpler when the type information is only carried in the TType of the node, instead of being partially duplicated in the enum value. BUG=angleproject:1490 TEST=angle_unittests Change-Id: I956376225ec01e469c7afb7378fa48cc097c0cea Reviewed-on: https://chromium-review.googlesource.com/498768 Commit-Queue: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Olli Etuaho authored
Interface blocks were mistakenly being allowed in some types of unary, binary and ternary expressions, when they should not have been. BUG=angleproject:2030 TEST=angle_unittests Change-Id: Ie75833ee208e1b7fef8f77fa91b90da278bc6498 Reviewed-on: https://chromium-review.googlesource.com/500269Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
- 11 May, 2017 3 commits
-
-
Frank Henigman authored
Add end2end tests that attempt CopyTexImage2D and CopyTexSubImage2D from the default framebuffer. BUG=angleproject:2027 Change-Id: Ic16527a0665317fe7d08d8204d1bd3f6309b0343 Reviewed-on: https://chromium-review.googlesource.com/494266 Commit-Queue: Frank Henigman <fjhenigman@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Eric Engestrom authored
`ust`, `ust2`, `msc`, and `msc2` are unsigned, so their difference is still unsigned. The `>0` assert could never fail. Fix this by simplifying the test to compare the pairs of values directly. Fixes: 5d9f5df0 ("Implementation of eglGetSyncValuesCHROMIUM extension.") Fixes: ee218f27 ("Re-land eglGetSyncValuesCHROMIUM extension.") Signed-off-by:
Eric Engestrom <eric.engestrom@imgtec.com> Change-Id: I0b19d786720f545c846640d48c30a83a1d001396 Reviewed-on: https://chromium-review.googlesource.com/500189Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
jchen10 authored
To get the index value of an uniform or uniform block, the Spec suggested way is to enumerate according to its name. There is no mention that index has any correspondence regarding the order of uniforms in shader source code. BUG=angleproject:1622 BUG=angleproject:1543 Change-Id: I76dbf0ef05f89cd93ea2bdaf93a47f0f5d318f87 Reviewed-on: https://chromium-review.googlesource.com/497976 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-