- 11 Oct, 2018 1 commit
-
-
Olli Etuaho authored
After validation, the enums are simply forwarded to the native drivers. The BPTC formats are supported on both OpenGL and D3D. The included test coverage covers the API quite well, but only has basic coverage for correct decoding of texture data. More coverage for texture data could be added later. BUG=angleproject:2869 TEST=angle_end2end_tests Change-Id: I3de37972dcf13c6fa3fc1bc429a2627523a4a082 Reviewed-on: https://chromium-review.googlesource.com/c/1261675 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
- 10 Oct, 2018 6 commits
-
-
Jamie Madill authored
This gives the same or slightly better performance in the ProgramDraw perf test. Also only set the Program object as dirty when there are dirty bits set in the Program itself. Bug: angleproject:2877 Change-Id: I07b428b40d3e3c24e0a42c970524756b6dc3a30e Reviewed-on: https://chromium-review.googlesource.com/c/1271475Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
This method is only called in one place. Inlining reduces the need to make a jump and push/pop variables from the stack. It also adds a specialized error handler for validation errors. This reduces the amount of code generated for errors. The prior method generates a lot of code when dealing with string streams. Improves performance of the binding performance test. Bug: angleproject:2763 Change-Id: I52af7046b398072975bf5bda583efac9a9b9a8cb Reviewed-on: https://chromium-review.googlesource.com/c/1270219Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Yuly Novikov <ynovikov@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
Also don't return errors from the object release methods. Not returning errors reduces the amount of code generated. Also we shouldn't be exiting early from destructor type functions. Increases object binding performance. Bug: angleproject:2877 Change-Id: Ieb8120d885b946915e355419825e1f52f31d7b49 Reviewed-on: https://chromium-review.googlesource.com/c/1270218Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Shahbaz Youssefi authored
//build/config/gcc:rpath_for_built_shared_libraries was supposed to be used to add . to rpath (which affected only release. I didn't investigate how it was affecting debug). This resulted in libVkICD_mock_icd.so not being found and vulkan_null tests being ignored. Change-Id: I71fb8578f873e4bed602b2c3dcf6d93240dcf30e Reviewed-on: https://chromium-review.googlesource.com/c/1272496Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
-
Jamie Madill authored
This can be used to mask out inappropriate local dirty bits. Bug: angleproject:2763 Change-Id: Ie46e464df0dc719c963ff9f7066d42eb5a028262 Reviewed-on: https://chromium-review.googlesource.com/c/1264062 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Yuly Novikov <ynovikov@google.com>
-
Jiawei Shao authored
The following dEQP cases can pass with https://chromium-review.googlesource.com/c/1207216: dEQP-GLES31.functional.texture.gather.basic.2d_array.rgba8.texture_swizzle.* dEQP-GLES31.functional.texture.gather.offset.implementation_offset.2d_array.rgba8.texture_swizzle.* Bug: angleproject:2826 Test: dEQP-GLES31.functional.texture.gather.basic.2d_array.rgba8.texture_swizzle.* dEQP-GLES31.functional.texture.gather.offset.implementation_offset.2d_array.rgba8.texture_swizzle.* Change-Id: Iaf6c4ca5abff1a7ae97d47a0d323bead38a7d8c1 Reviewed-on: https://chromium-review.googlesource.com/c/1267659Reviewed-by:
Jiajia Qin <jiajia.qin@intel.com> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
-
- 09 Oct, 2018 9 commits
-
-
Jamie Madill authored
This switch can be cached in a very fast packed map. The map contents only change if different extensions are exposed. This reduces the number of instructions we hit in ValidateBindTexture. Bug: angleproject:2763 Change-Id: I6ba8a4124d85e4c193d0dee3e03e50713d51b1f4 Reviewed-on: https://chromium-review.googlesource.com/c/1262739 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Yuly Novikov <ynovikov@google.com>
-
Jamie Madill authored
Bug: angleproject:2763 Change-Id: Ib8193e7ff5ee7763b92f4775fb7e9adaa51c9305 Reviewed-on: https://chromium-review.googlesource.com/c/1262738 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Yuly Novikov <ynovikov@google.com>
-
Qin Jiajia authored
The old implementation missed considering compute program would also enter into applyActiveAttribLocationsMask. However, there was no bindVertexArray before updateAttribEnabled which resulted the previous VAO state was modified in unknown. And that's why ComputeBoids example wouldn't work correctly. This change adds a checking to not enter propagateProgramToVAO if it's a compute program since compute shader doesn't have vertex attributes. And an ASSERT is added to make sure that the right VAO is bound when updateAttribEnabled is called in applyActiveAttribLocationsMask. Bug: angleproject:2810 Change-Id: I6e77853498a527ef3b755bbb1da5826a9134b164 Reviewed-on: https://chromium-review.googlesource.com/c/1226227Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
-
Jamie Madill authored
This covers most of the hot paths used in draw calls. Gives in the order of a 5% reduction in draw call overhead. Bug: angleproject:2491 Change-Id: I2d53afb1163eaceed61fb9cd9ce6c1267c85c0fa Reviewed-on: https://chromium-review.googlesource.com/c/1258149Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
Replace these with ANGLE_CHECK_*_ALLOC and ANGLE_CHECK_*_MATH depending on the specific error type. Bug: angleproject:2491 Change-Id: Ic4395101fe701c563ae2b92aa2c55c93b934a7de Reviewed-on: https://chromium-review.googlesource.com/c/1262737Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Frank Henigman <fjhenigman@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Courtney Goeltzenleuchter authored
To minimize system impact, have feature configuration utility live in it's own library. Bug=angleproject:2418 Change-Id: Ic8e3862965e515ded7e1a6078a7b9f8b92878818 Reviewed-on: https://chromium-review.googlesource.com/c/1269822Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Yuly Novikov <ynovikov@google.com> Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
-
Shahbaz Youssefi authored
Begin and end queries insert an execution barrier in the command graph to ensure the commands around them are not reordered w.r.t to the query. Also, these commands cannot be recorded in separate secondary command buffers. Therefore, special-function nodes are created to perform the begin and end query calls on the final primary command buffer. Bug: angleproject:2855 Change-Id: Ie216dfdd6a2009deaaf744fd15d2db6899dd93e9 Reviewed-on: https://chromium-review.googlesource.com/c/1259762Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
-
Jamie Madill authored
Some of these are targeting our workaround for a mac bug. The bug was that the driver was somehow modifying output attachments that the program wasn't writing to. A new test shows a bug where we wouldn't re-sync the state properly after a clear. Also adds more pretty printing for GLColor. Bug: angleproject:2872 Change-Id: I5485893b5f1b269c5407678db27978a789f7acc6 Reviewed-on: https://chromium-review.googlesource.com/c/1269255 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Shahbaz Youssefi <syoussefi@chromium.org>
-
Courtney Goeltzenleuchter authored
To match behavior of ALOGV in Android system code, disable output in release builds. Bug=angleproject:2418 Change-Id: I657ec366249f9d5defe9b05fe298099c47389580 Reviewed-on: https://chromium-review.googlesource.com/c/1269819Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Ian Elliott <ianelliott@google.com> Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
-
- 08 Oct, 2018 4 commits
-
-
Courtney Goeltzenleuchter authored
If the Vulkan backend is available, use it on Android. This way ANGLE built for the ANGLE apk always uses Vulkan. ANGLE built for use in Chrome keeps GL. At least for now. Bug=angleproject:2418 Change-Id: Ic7796c74821a44b856a596d31b3de09e7ca47ede Reviewed-on: https://chromium-review.googlesource.com/c/1265504Reviewed-by:
Ian Elliott <ianelliott@google.com> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Yuly Novikov <ynovikov@google.com> Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
-
Olli Etuaho authored
Some dead code and duplicate data are cleaned up from the compiler. Several parameters can be accessed directly from ShBuiltInResources instead of creating a copy in TCompiler. This also encapsulates some TCompiler member functions as private and changes the remaining unprefixed TCompiler member variable names to start with the m prefix. BUG=angleproject:2068 TEST=angle_unittests Change-Id: I6690aaf538b17e0f45460660272a21f82f1808a0 Reviewed-on: https://chromium-review.googlesource.com/c/1267503Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
Qin Jiajia authored
When EOpIndexDirect/EOpIndexIndirect/EOpIndexDirectStruct/TIntermSwizzle appear in [] in ssbo access chain, we should transfer the process of them to OutputHLSL. For example: instance.v[gl_GlobalInvocationID.x] = data; // becomes float_Store(dx_instance, 0 + 16 * gl_GlobalInvocationID.x, _data); instance.v[s.index[0].x] = data; // becomes float_Store(dx_instance, 0 + 16 * _s.index[0].x, _data); Bug: angleproject:1951 Change-Id: I333e238400a10a799a6294f8759cf9c4ef2451c8 Reviewed-on: https://chromium-review.googlesource.com/c/1250661Reviewed-by:Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
-
Jiawei Shao authored
This patch implements translating textureGather[Offset] into HLSL when the sampler is a shadow sampler. The related HLSL function should be GatherCmp(). According to the definition of textureGatherOffset(): ([ESSL 3.1] Chapter 8.9.3 Page 138) - gvec4 textureGatherOffset(gsampler2D sampler, vec2 P, ivec2 offset, [,int comp]) - vec4 textureGatherOffset(sampler2DShadow sampler, vec2 P, float refZ, ivec2 offset) We need to add parameter "refZ" before "offset" when the sampler is a shadow sampler. Bug: angleproject:2826 Test: dEQP-GLES31.functional.texture.gather.basic.2d.depth32f.* dEQP-GLES31.functional.texture.gather.basic.2d_array.depth32f.* dEQP-GLES31.functional.texture.gather.basic.cube.depth32f.* dEQP-GLES31.functional.texture.gather.offset.min_required_offset.2d.depth32f.* dEQP-GLES31.functional.texture.gather.offset.min_required_offset.2d_array.depth32f.* dEQP-GLES31.functional.texture.gather.offset.implementation_offset.2d.depth32f.* dEQP-GLES31.functional.texture.gather.offset.implementation_offset.2d_array.depth32f.* Change-Id: I9a7d095dd3cfa41aaefd14d012ed1f309abfc6d5 Reviewed-on: https://chromium-review.googlesource.com/c/1244081 Commit-Queue: Jiawei Shao <jiawei.shao@intel.com> Reviewed-by:Jiajia Qin <jiajia.qin@intel.com> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
-
- 05 Oct, 2018 9 commits
-
-
Yuly Novikov authored
Bug: angleproject:2567 Change-Id: Ia7dfa54f7201866b9d7c0ce5d9cccae06c785542 Reviewed-on: https://chromium-review.googlesource.com/c/1265500Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Yuly Novikov <ynovikov@google.com> Commit-Queue: Yuly Novikov <ynovikov@google.com>
-
Olli Etuaho authored
The default framebuffer is initialized with just one drawbuffer slot so the number of drawbuffers needs to be validated before checking if a buffer is attached. BUG=angleproject:2831 TEST=angle_end2end_tests Change-Id: I960c39357853d1cd4575b06a992cff33223ab3df Reviewed-on: https://chromium-review.googlesource.com/c/1264518 Commit-Queue: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Geoff Lang authored
Example failure: https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/Mac%20FYI%20Experimental%20Retina%20Release%20(NVIDIA)/2115 BUG=angleproject:1085 Change-Id: Ifc07282b7ca586bd6346831e08cee963c9eaab54 Reviewed-on: https://chromium-review.googlesource.com/c/1263903Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
-
Jamie Madill authored
Adds explicit error handling to a few scoped state handler classes. Otherwise mostly mechanical refactoring. Bug: angleproject:2753 Change-Id: I2bf969a68f45880902b6e7902297c1340a76a1c4 Reviewed-on: https://chromium-review.googlesource.com/c/1255647Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Shahbaz Youssefi authored
Using x = {}; before filling out each field, we can be sure any missing field is 0 initialized. This in turn helps us not have to specify certain fields that are generally unused (at the moment), such as pNext. Bug: angleproject:2860 Change-Id: Ia1fa2db3ecfb316673a02ac0c5e13e47e055a19f Reviewed-on: https://chromium-review.googlesource.com/c/1259764Reviewed-by:Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
-
Olli Etuaho authored
Correctly sized void arrays can be needed after parsing has recovered from an error and the code is trying to evaluate the constant value of a node. Since now we just have a generic EOpConstruct op instead of different ops for different types, we can simply remove the special handling for void arrays in CreateZeroNode to create the arrays in the correct size. BUG=chromium:890581 TEST=angle_unittests Change-Id: I48d96c9ef1d695cd8583a845fd4bd24a7aaf535c Reviewed-on: https://chromium-review.googlesource.com/c/1264515Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
Jamie Madill authored
Bug: angleproject:2491 Change-Id: Ief728b9c50ee2e1925a9b286c52c8ccda6b14fd2 Reviewed-on: https://chromium-review.googlesource.com/c/1255646 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Yuly Novikov <ynovikov@google.com> Reviewed-by:
Frank Henigman <fjhenigman@chromium.org>
-
Jamie Madill authored
Instead of returning a small struct from LinkProgram calls we use angle::Result. Linking can have 3 cases: - the link was successful -> angle::Result::Continue - the link failed -> angle::Result::Incomplete - there was an internal error -> angle::Result::Stop Note that any unexpected Incomplete is still an error. Each function that accepts Incomplete must check explicitly. This is the last user of ErrorOrResult. Bug: angleproject:2491 Change-Id: Idba23be27efe4b561720a4bdd8fe486b40779497 Reviewed-on: https://chromium-review.googlesource.com/c/1255645 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Yuly Novikov <ynovikov@google.com>
-
Olli Etuaho authored
This adds GLES3 API support for EXT_blend_func_extended. The patch includes the API entrypoints, validation and also implementation on the desktop GL backend. Instead of having built-in fragment color variables, ESSL 3.00 has custom output variables, which can now be bound to either primary or secondary output color locations. The "index" set to a custom output variable determines whether it's used a primary or secondary blending source color. The shader layout qualifier takes precedence over the bind call. This is not specified in the EXT spec, but is specified in desktop OpenGL specs. BUG=angleproject:1085 TEST=angle_end2end_tests Change-Id: Ia24e8e5dadcc165e5e8fbd7c653c7fab6217db88 Reviewed-on: https://chromium-review.googlesource.com/c/1249361 Commit-Queue: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
- 04 Oct, 2018 6 commits
-
-
Jamie Madill authored
This saves a lot of extra work when updating a Texture. Bug: angleproject:2763 Change-Id: I87e310ef4f847713123bd24711e1166949ff95d2 Reviewed-on: https://chromium-review.googlesource.com/c/1254043Reviewed-by:
Yuly Novikov <ynovikov@google.com> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
Instead of deferring this work, we can process it immediately. We have access to the information we need in the prior and current states so can optimize the update more effectively. Bug: angleproject:2763 Change-Id: I77482b0ea490fddf403ccc4a4f32665301fd6e7a Reviewed-on: https://chromium-review.googlesource.com/c/1254042Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Frank Henigman authored
BUG=angleproject:2867 Change-Id: Ie14848bb464eea7f84d0ce523dff2cddf7a185d4 Reviewed-on: https://chromium-review.googlesource.com/c/1260256Reviewed-by:
Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
-
Shahbaz Youssefi authored
An incorrect validation is preventing work on queries: https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/269 Bug: angleproject:2855 Change-Id: I0454b74f714e69efcfa56e42ff751ffffacaf78c Reviewed-on: https://chromium-review.googlesource.com/c/1258085Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
-
Brandon Jones authored
In CL #1207216, the #include in blit11 and shader file name had capitilization mismatches, which caused a clang error. This fixes the issue. Bug: angleproject:2762 Change-Id: I4760843beedaabfb83228e40289efaa6a767dec3 Reviewed-on: https://chromium-review.googlesource.com/c/1262017 Commit-Queue: Brandon1 Jones <brandon1.jones@intel.com> Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Brandon Jones authored
Adds copyTexture3DANGLE and copySubTexture3DANGLE that adds copy operations on volumetric textures. Bug: angleproject:2762 Test: angle_end2end_tests Change-Id: I0076989c2b7ed69abfc73143c325065bdb06a360 Reviewed-on: https://chromium-review.googlesource.com/c/1207216 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
- 03 Oct, 2018 5 commits
-
-
Ian Elliott authored
DEBUG was useful for developing and turning on the code, but it's too verbose to be used with the Android Q release. Bug: angleproject:2794 Change-Id: I092567c25414cbba7f36ab94e191b1dcfe39fbcb Reviewed-on: https://chromium-review.googlesource.com/c/1260102 Commit-Queue: Ian Elliott <ianelliott@google.com> Reviewed-by:
Courtney Goeltzenleuchter <courtneygo@google.com>
-
Jamie Madill authored
Only gl::LinkResult remains. Bug: angleproject:2753 Change-Id: I5e9c68c11453e8ab9db4908451957d7b3db0b110 Reviewed-on: https://chromium-review.googlesource.com/c/1254044Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Frank Henigman <fjhenigman@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
This hides the logic for manipulating the current layout and barriers into the image helper. This will make it easier to implement implicit pipeline barriers. It allows us to remove the updateLayout() hack. Bug: angleproject:2828 Change-Id: I3e59872e66064e6b105c1f398b4212fb3a6be1a7 Reviewed-on: https://chromium-review.googlesource.com/1255506 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Shahbaz Youssefi <syoussefi@chromium.org>
-
Jamie Madill authored
This makes the vk::CommandBuffer class closer to an auto-generated wrapper class. Bug: angleproject:2828 Change-Id: I91ba03914a60d5612707dd240fcda25b86cf2c46 Reviewed-on: https://chromium-review.googlesource.com/1255505 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Shahbaz Youssefi <syoussefi@chromium.org>
-
Jamie Madill authored
This is needed to pass dEQP conformance. Several of the harder dEQP tests around this behaviour are excluded from the mustpass list. This is presumably because the behaviours weren't implemented portably. Nevertheless we need to support conformant behaviour for GLES 2.0 Contexts for the most simple uses. This also leaves the error behaviour intact for WebGL specs. Bug: angleproject:1335 Change-Id: Ia80b4f71475efa928488ee6c2ee35c566d4602d4 Reviewed-on: https://chromium-review.googlesource.com/c/1242013Reviewed-by:
Olli Etuaho <oetuaho@nvidia.com> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-