src


Log

Author Commit Date CI Message
Corentin Wallez b2931601 2017-04-11T15:58:57 Add robust entry point for CompressedTex(Sub)Image BUG=angleproject:1354 Change-Id: I925db827c4ccf4e6f037a058f8f6b960a56047e1 Reviewed-on: https://chromium-review.googlesource.com/474964 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang b36e5393 2017-04-12T15:45:13 D3D: Return an empty string when the translated shader source is empty. TEST=conformance/extensions/webgl-debug-shaders BUG=angleproject:1991 Change-Id: Id210ec43501c4e4f3db2c8a0aec25e1d20b18d33 Reviewed-on: https://chromium-review.googlesource.com/475992 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Yunchao He 33151a53 2017-04-13T09:58:17 Code refactoring: remove unneeded variables BUG=angleproject:1996 Change-Id: If635bf836251f90ec40d791b5f80d43f751aad9b Reviewed-on: https://chromium-review.googlesource.com/476079 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Kai Ninomiya d1bed175 2017-04-12T17:35:54 Reverse the order of array variable initialization This works around a bug on Adreno 3xx in which array varying variables are assigned in the reverse order. BUG=chromium:709317 Change-Id: I86a345747f293ca8a2cb9a281bd1b752e66dcd3a Reviewed-on: https://chromium-review.googlesource.com/475979 Commit-Queue: Kai Ninomiya <kainino@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill c1d770e8 2017-04-13T17:31:24 Refactor remaining GLES 2.0 entry points. This will pave the way for several features, like auto-generation. BUG=angleproject:747 Change-Id: Ic390ac412f4e6b61346629093f185a4c07ea0284 Reviewed-on: https://chromium-review.googlesource.com/474118 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
JiangYizhou 3c68079c 2017-04-05T15:04:36 Update deqp expectations file for default fbo tests. Deqp test case dEQP-GLES31.functional.fbo.no_attachments.maximums.all fails on nvidia driver. BUG=angleproject:1594 TEST=dEQP-GLES31.functional.fbo.no_attachments.* TEST=dEQP-GLES31.functional.fbo.completeness.no_attachments Change-Id: I31db12b10b4fb915135b12912738d9c14de1e585 Reviewed-on: https://chromium-review.googlesource.com/468649 Commit-Queue: Yizhou Jiang <yizhou.jiang@intel.com> Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
jchen10 a9042d3c 2017-03-17T08:50:45 ES31: Add array element transformfeedback This enhances the PackedVarying to be either one element of array, or whole array. Correspondingly the VaryingPacking is expanded to pack it properly. BUG=angleproject:1950 Change-Id: I0529d7ac4367d42b2b433410fbf08351412aada8 Reviewed-on: https://chromium-review.googlesource.com/459115 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez e839078e 2017-04-06T14:34:43 compiler: Prune literal statements when outputting ESSL The ESSL output doesn't have a default precision for floats, this causes float literal statements to not have any precision defined, which is an error. We fix this by removing literal statements as they are dead code anyway. BUG=angleproject:1967 Change-Id: I498f4f8495f854240ee8a2182415bf982c5166a4 Reviewed-on: https://chromium-review.googlesource.com/470268 Reviewed-by: Olli Etuaho <oetuaho@nvidia.com> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Geoff Lang 6e60d6bf 2017-04-12T12:59:04 Don't allow deleting the 0 transform feedback. BUG=709786 Change-Id: I956cae994241a650869cee45c471074d08e79a5d Reviewed-on: https://chromium-review.googlesource.com/475131 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Geoff Lang 67f5ce42 2017-04-12T10:32:36 Fix the texture completeness cache. Two silly mistakes were landed in 9aded1: * The cache was not updating the sampler state it was using to compare against new ones. * The SamplerCompletenessCache entry was being copied and not updated. BUG=709980 Change-Id: I1914ed30e24b9e48c4504da164f013a637a0b6c2 Reviewed-on: https://chromium-review.googlesource.com/475752 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Jamie Madill 1e5499db 2017-04-05T11:22:16 Refactor Signal utils into template classes. This will allow us to pass on extra information to the receiving end, such as the specific texture levels that are dirty. BUG=angleproject:1635 Change-Id: Idb7ca1d625499e50e7712c458b694f6e9bfc0595 Reviewed-on: https://chromium-review.googlesource.com/453382 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Xinghua Cao 2b39659d 2017-03-29T15:36:04 ES31: Implement glDispatchCompute for OpenGL backend This patch refers to https://chromium-review.googlesource.com/c/380639/ BUG=angleproject:1955 TESTCASE=angle_end2end_tests Change-Id: Iafd7a6ba2d71c0b332d9267a1260d9dbd9800c02 Reviewed-on: https://chromium-review.googlesource.com/462089 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Yunchao He <yunchao.he@intel.com> Reviewed-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill e918de22 2017-04-12T10:21:11 Vulkan: Don't finish on swap. This will enable the next frame to render while the previous frame's command buffers are executing and rendering is happening. This should speed up the Vulkan perf test. BUG=angleproject:1898 Change-Id: I0820300d7934ef280cf75628239fe40dc96b8242 Reviewed-on: https://chromium-review.googlesource.com/445799 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 82483b93 2017-04-11T15:33:00 Obey the bufSize and write to the length parameter in glGetSynciv. BUG=angleproject:1985 TEST=conformance2/state/gl-object-get-calls Change-Id: Ic83c408b60d394ff5719beaedc5d4721b7811a47 Reviewed-on: https://chromium-review.googlesource.com/474551 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Geoff Lang 38f2cfb8 2017-04-11T15:23:08 Refactor validation of glGetSynciv. BUG=angleproject:1985 Change-Id: Idf1057e6d8d8c850643e3b2a22be5a881c8a2301 Reviewed-on: https://chromium-review.googlesource.com/474550 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Geoff Lang 58337799 2017-03-21T13:49:57 Correctly initialize the condition of FenceSync objects. The spec says that the initial condition of a FenceSync object should be GL_SYNC_GPU_COMMANDS_COMPLETE. Make sure this is set in case the condition is queried before the fence is set. TEST=conformance2/state/gl-object-get-calls.html BUG=602688 Change-Id: I8c0451fc996c175109541f337191cc1be4b813e3 Reviewed-on: https://chromium-review.googlesource.com/457452 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Geoff Lang 46258e1f 2017-04-10T12:28:34 Blit9: Pass the dest rect to setViewportAndShaderConstants. Using the sourceRect for calculating the viewport and texture coordinates was not enough when the source and destination rectangles were different sizes (generating mipmaps). BUG=709232 Change-Id: I2704ddf6e3da0939ad77d278ab495e53a2d9bc7d Reviewed-on: https://chromium-review.googlesource.com/473266 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
jchen10 eb8abb0a 2017-04-11T08:30:38 Remove unused declaration isValidResourceIndex in Program.h is unused. BUG=angleproject:1920 Change-Id: Ide097348fac7ed97a0e07f3d97d7944ac997f71d Reviewed-on: https://chromium-review.googlesource.com/474229 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Frank Henigman 5ed601b4 2017-04-10T18:50:10 Fix IsOzone() predicate. ANGLE_USE_OZONE is not defined in tests, but USE_OZONE is so use the latter. BUG=angleproject:1423 Change-Id: Ib758fec6a1bb8d5cc66d0994cba2142e6a7f82b0 Reviewed-on: https://chromium-review.googlesource.com/474113 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 20e005b2 2017-04-07T14:19:22 Rename BitSetIterator.h to bitset_utils.h BUG=angleproject:1814 Change-Id: I152ae13b6b7cf0ba72259967f0f124e199b20e07 Reviewed-on: https://chromium-review.googlesource.com/471826 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 03b333b4 2017-04-07T14:54:10 Vulkan: Fix Clang warning and fix build. The data_deps section for angle_vulkan was referencing a variable that didn't exist (no warning for this). Fix the deps which also then exposes the build problem with the layers with Clang in 32-bit. Also fix not propagating the Win32 defines to the layer utils. BUG=chromium:708835 Change-Id: I4a457bfabf1ca735d3f3f3d8b0f0823cfa834b84 Reviewed-on: https://chromium-review.googlesource.com/470087 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 067cdb4a 2017-04-05T13:42:49 Create depth stencils for D3D texture EGL surfaces. BUG=angleproject:1144 Change-Id: I42d80293c06e40197fe100bcac31a5c6bd414edf Reviewed-on: https://chromium-review.googlesource.com/469106 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Jamie Madill fa416b18 2017-04-06T11:34:17 Disable ValidationESTest.DrawElementsWithMaxIndexGivesError. Temporarily until we have a proper fix. BUG=chromium:708835 Change-Id: I9c1d63d8d1f831f2a4a168149b7ff805bc851def Reviewed-on: https://chromium-review.googlesource.com/469967 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Corentin Wallez 6f1c3de9 2017-04-05T16:40:15 gpu_info_util: fix a DeviceInfo leak on Windows BUG=angleproject:1874 Change-Id: I382e306ce0c27a81e0d746fb9922fa12988927d4 Reviewed-on: https://chromium-review.googlesource.com/469230 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Frank Henigman df55f252 2017-04-05T15:32:06 Skip a couple end2end tests on Ozone. Skip the following two end2end tests on Ozone pending investigation: IndexedPointsTestUShort.VertexWithColorUnsignedShortOffsetChangingIndices/ES2_OPENGLES SRGBTextureTest.SRGBDecodeTextureParameter/ES2_OPENGLES BUG=angleproject:1423 Change-Id: Ied5b42903421ae9f388e8563814e3fe28eeb7b3e Reviewed-on: https://chromium-review.googlesource.com/469087 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 72106562 2017-03-24T14:18:50 Vulkan: Only re-create pipeline on state change. This speeds up the simple perf test, but it is a very simple optimization that does not have a cache of pipelines or anything sophisticated. BUG=angleproject:1898 Change-Id: Iec126bc73bf28f8bb33662a2f70670588f010d72 Reviewed-on: https://chromium-review.googlesource.com/444850 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Geoff Lang 5e96d74f 2017-04-05T16:26:14 Allow the OpenGL ES backend to be used with dEQP on Windows. Change-Id: I79e013ca2be57916affb167f5b348cc414d581ba Reviewed-on: https://chromium-review.googlesource.com/469189 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Frank Henigman 6e0d8410 2017-04-05T15:15:10 Add IsOzone(). Add a function to check for the Ozone back end for use in skipping tests. BUG=angleproject:1423 Change-Id: Ida3313e8cce5179422bdca85ba68f9765dfac840 Reviewed-on: https://chromium-review.googlesource.com/469068 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Geoff Lang 9aded17c 2017-04-05T11:07:56 Invalidate completeness caches when enabling extensions. Enabling extensions can cause framebuffers and textures to go from incomplete to complete. No functional changes from the API surface. BUG=angleproject:1523 BUG=angleproject:1958 Change-Id: Iff686e1c292f6cf4921d6fffd7eb98bedaba828b Reviewed-on: https://chromium-review.googlesource.com/468410 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Jamie Madill 60e17eab 2017-04-05T11:01:49 Vulkan: Fix 32-bit Clang build. We were getting a warning: stdcall calling convention ignored on variadic function BUG=None Change-Id: I9165b285dfaf6bc238f946fda2d733292789390d Reviewed-on: https://chromium-review.googlesource.com/468373 Reviewed-by: Geoff Lang <geofflang@chromium.org>
Shao 562c9686 2017-04-04T17:28:43 Clean up legacy code in VertexAttributeTest.cpp This patch intends to clean up some coding style issues in VertexAttributeTest.cpp, which is helpful to implement Vertex Attrib Binding. 1. Use std::string directly instead of macro SHADER_SOURCE 2. Use constexpr on constants 3. Use std::array instead of traditional C-style arrays BUG=angleproject:1593 Change-Id: I5b6f6d4fe0e34e82a9fc38cb54932fbc39e19a80 Reviewed-on: https://chromium-review.googlesource.com/467406 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Olli Etuaho f2209f74 2017-04-01T12:45:55 Clean up function name mangling code Fix a few incorrect comments about mangled names, and refactor generating mangled names from function call nodes. BUG=angleproject:1490 TEST=angle_unittests Change-Id: I3ee68c4c0982f1a9c28d8e87aafa19f19559bbf8 Reviewed-on: https://chromium-review.googlesource.com/465826 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Jamie Madill dd43e6cd 2017-03-24T14:18:49 Pass Context to VertexArray and Framebuffer syncstate. This will enable more Vulkan-friendly idioms like clearing the vulkan pipeline caches correctly on GL state changes immediately because we have access to the ContextVk. BUG=angleproject:1898 Change-Id: I16c848d8abdde8e26a38d384e565cec8548a66d0 Reviewed-on: https://chromium-review.googlesource.com/459079 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Corentin Wallez 2360ed0c 2017-04-04T15:06:09 Disable the EGLSyncControlTest This test is very flaky on Windows bots. TBR=stanisc@chromium.org BUG=angleproject:1402 Change-Id: Iddfc630113c33cb79a96b7882fe8fa0e7fbf17d7 Reviewed-on: https://chromium-review.googlesource.com/468026 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Geoff Lang e93dabaa 2017-03-30T13:54:40 Output the number of columns and rows written for robust ReadPixels. BUG=angleproject:1354 Change-Id: Ib78f74d7b1a449468e2c477955f6795dc5dbc811 Reviewed-on: https://chromium-review.googlesource.com/463786 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Geoff Lang 6b2ea3fe 2017-03-28T11:49:17 Support D3D texture share handles in the OpenGL backend on Windows. BUG=angleproject:1144 Change-Id: Ideb0ed306ae8417f53b813745ced43002d028126 Reviewed-on: https://chromium-review.googlesource.com/461271 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Olli Etuaho 9ec79391 2017-03-31T23:04:23 Use TLValueTrackingTraverser in ValidateLimitations Use TLValueTrackingTraverser to determine whether a loop index is used as an l-value. This replaces custom logic in ValidateLimitations, greatly simplifying the code. Also pass the symbol table to ValidateLimitations as a parameter, which removes the need to store a global pointer to the current ParseContext. BUG=angleproject:1960 TEST=angle_unittests, WebGL conformance tests Change-Id: I122c85c78bbea05833d7c787cd184de568c5c45f Reviewed-on: https://chromium-review.googlesource.com/465606 Commit-Queue: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Shahmeer Esmail b5e884a4 2017-03-09T19:33:33 Clear11 VerticesTransform, RasterizerStates, ScissorRect - Skip clears if an empty scissor rect is set - Use rastStates to apply scissoring instead of recomputing the scissored positions and updating the VB and updating the VB for every clear - Use ComPtrs for VB and RasterizerStates BUG=angleproject:1934 Change-Id: Ib4448d8568b465df5de57607be4985095f6bd014 Reviewed-on: https://chromium-review.googlesource.com/453881 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Yuly Novikov 420ba154 2016-09-20T00:00:53 Update dEQP gles3 tests expectations for Android Mark tests that fail or hang on Nexus 5X as such. BUG=angleproject:1532 TEST=gles3 tests pass on Nexus 5X Change-Id: Id4c31884890bd48595a83be14e8d56342f7fbe59 Reviewed-on: https://chromium-review.googlesource.com/387148 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill 9cb2c262 2017-04-03T10:12:04 Re-land: Roll vulkan-validation-layers. (2/2) https://android.googlesource.com/platform/external/vulkan-validation-layers.git/+log/bcb80d06bbdc09..f47c534fee2f26f This CL re-enables Vulkan with the new build files. In particular, this roll contains a fix for a vs2017 signed/unsigned mismatch warning as error. Re-land fixes build dependencies. BUG=chromium:683729 Change-Id: If2b1bc7250037c33402965eae354ca550ecd36c0 Reviewed-on: https://chromium-review.googlesource.com/466106 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jiajia Qin f546e7df 2017-03-27T14:12:59 ES31: Add GL_SHADER_STORAGE_BUFFER_BINDING binding point The affected APIs are below: getIntegeri_v getInteger64i_v BindBuffer BindBufferBase BindBufferRange BUG=angleproject:1951 TEST=dEQP-GLES31.functional.state_query.integer.shader_storage_buffer_binding_* dEQP-GLES31.functional.state_query.indexed.shader_storage_buffer_* Change-Id: Ief7186b2ebe305f14e620c31841bc244f84429a5 Reviewed-on: https://chromium-review.googlesource.com/459093 Reviewed-by: Yunchao He <yunchao.he@intel.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
jchen10 fd7c3b52 2017-03-21T15:36:03 ES31: Add glGetProgramResourceName API Add API entry and validation checks(GLES 3.1 section 7.3). Add the first 2 interfaces(PROGRAM_INPUT and PROGRAM_OUTPUT) implementation. BUG=angleproject:1920 Change-Id: Ide7d5ad40a611a091c3dffab47fd31da57b69f1d Reviewed-on: https://chromium-review.googlesource.com/457523 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Olli Etuaho ec9232bd 2017-03-27T17:01:37 Store unmangled function names in the AST This makes the code simpler across the board. There are a few cases where mangled names still need to be generated in AST traversers, but they are outweighed by much leaner output code for all function nodes. BUG=angleproject:1490 TEST=angle_unittests, angle_end2end_tests Change-Id: Id3638e0fca6019bbbe6fc5e1b7763870591da2d8 Reviewed-on: https://chromium-review.googlesource.com/461077 Commit-Queue: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Qin Jiajia 495bd776 2017-03-29T12:40:28 Update deqp31 test expectations Remove the following deqp cases from deqp_gles31_test_expectations.txt since they can pass now due to https://chromium-review.googlesource.com/c/430199/4/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.cpp BUG=angleproject:1442 TEST=dEQP-GLES31.functional.state_query.integer.max_compute_work_group_invocations_* dEQP-GLES31.functional.state_query.integer.max_compute_uniform_blocks_* dEQP-GLES31.functional.state_query.integer.max_compute_texture_image_units_* dEQP-GLES31.functional.state_query.integer.max_compute_uniform_components_* dEQP-GLES31.functional.state_query.integer.max_uniform_locations_* dEQP-GLES31.functional.state_query.indexed.max_compute_work_group_count_* dEQP-GLES31.functional.state_query.indexed.max_compute_work_group_size_* Change-Id: I121588cdb5d5b67c5b1d76e8710b2f53f35ede15 Reviewed-on: https://chromium-review.googlesource.com/461732 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Yunchao He <yunchao.he@intel.com> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Olli Etuaho fe48632f 2017-03-21T09:30:54 Prefer identifying functions by using symbol ids The shader translator code is now structured in a way that ensures that all function definition, function prototype and function call nodes store the integer symbol id for the function. This is guaranteed regardless of whether the function node is added while parsing or as a result of an AST transformation. TIntermAggregate nodes, which include function calls and constructors can now only be created by calling one of the TIntermAggregate::Create*() functions to ensure they have all the necessary properties. This makes it possible to keep track of functions using integer ids instead of their mangled name strings when generating the call graph and when using TLValueTrackingTraverser. This commit includes a few other small cleanups to the CallDAG class as well. BUG=angleproject:1490 TEST=angle_unittests, angle_end2end_tests Change-Id: Idd1013506cbe4c3380e20d90524a9cd09b890259 Reviewed-on: https://chromium-review.googlesource.com/459603 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Geoff Lang 76e6565e 2017-03-27T14:58:02 Validate clear attachment formats match color clear types. TEST=conformance2/rendering/clear-func-buffer-type-match.html BUG=angleproject:1954 Change-Id: Iefeb38041608f11781f87aadb8611737ba2ee96f Reviewed-on: https://chromium-review.googlesource.com/461270 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Geoff Lang 005a7016 2017-03-27T13:17:34 Adjust the FBO invalidate attachment enums for emulated default FBOs. BUG=angleproject:1953 Change-Id: I7f325e3b7400e12077cdf9106a83a747a318a299 Reviewed-on: https://chromium-review.googlesource.com/461297 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Geoff Lang 9e1bf10b 2017-03-28T15:10:48 Strip null characters from the shader source when building translated source. Some shaders had trailing null characters that caused the resulting translated source string to not output correctly. BUG=angleproject:1144 Change-Id: I7cd725ee54c9e934fd3cc511de9c2a3c34ac3eec Reviewed-on: https://chromium-review.googlesource.com/461272 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Corentin Wallez 8f77e5d3 2017-03-24T11:58:59 gpu_info_util: Implement GetSystemInfo on Windows BUG=angleproject:1874 Change-Id: I97a02d2c8b1f7ecb530684464fc02f528d34de7c Reviewed-on: https://chromium-review.googlesource.com/458965 Reviewed-by: Austin Kinross <aukinros@microsoft.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Geoff Lang 2d62ab72 2017-03-23T16:54:40 Apply WebGL validation to glVertexAttribIPointer. TEST=deqp/functional/gles3/shaderstatequery.html BUG=angleproject:1523 BUG=chromium:668223 Change-Id: I24230144f8529d84cdbde3d5a8ad9178481550a9 Reviewed-on: https://chromium-review.googlesource.com/458680 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Shao 80957d99 2017-02-20T21:25:59 ES31: Implement Vertex Attrib Binding entry points This patch intends to implement all entry points related to Vertex Attrib Binding. (1) Add entry points and validation code on following APIs: - VertexAttribFormat - VertexAttribIFormat - VertexAttribBinding - BindVertexBuffer - VertexBindingDivisor (2) Add queries on following parameters: - VERTEX_ATTRIB_BINDING - VERTEX_ATTRIB_RELATIVE_OFFSET - VERTEX_BINDING_DIVISOR - VERTEX_BINDING_OFFSET - VERTEX_BINDING_STRIDE - VERTEX_BINDING_BUFFER BUG=angleproject:1593 TEST=angle_end2end_tests TEST=angle_unittests TEST=dEQP-GLES31.functional.state_query.integer.max_vertex_attrib_relative_offset_* TEST=dEQP-GLES31.functional.state_query.integer.max_vertex_attrib_bindings_* TEST=dEQP-GLES31.functional.state_query.integer.max_vertex_attrib_stride_* TEST=dEQP-GLES31.functional.state_query.vertex_attribute_binding.* TEST=dEQP-GLES31.functional.debug.negative_coverage.log.vertex_array.vertex_attrib_pointer TEST=dEQP-GLES31.functional.debug.negative_coverage.get_error.vertex_array.vertex_attrib_format TEST=dEQP-GLES31.functional.debug.negative_coverage.get_error.vertex_array.vertex_attrib_i_format Change-Id: I4b477a82df6aad89b89b088580a06d66963e6666 Reviewed-on: https://chromium-review.googlesource.com/446124 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Qin Jiajia 484dd7b1 2017-03-07T16:39:22 ES31: Implement DrawElementsIndirect D3D part The implementation of DrawElementsIndirect is similar with DrawArraysIndirect except that it needs to apply IndexBuffer. BUG=angleproject:1595 TEST=dEQP-GLES31.functional.draw_indirect.draw_elements_indirect* dEQP-GLES31.functional.draw_indirect.instancing.* dEQP-GLES31.functional.draw_indirect.random.* Change-Id: I5d2c8a7485b18b724fdda6fd964013c941e45b4f Reviewed-on: https://chromium-review.googlesource.com/455520 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Geoff Lang 795e7573 2017-03-28T15:47:21 Revert "Roll vulkan-validation-layers. (2/2)" This reverts commit 2feaa5e0ac6b779e13254c84b41de436f5d14765. Reason for revert: Broke the Chrome Windows builders. Build: https://build.chromium.org/p/chromium/builders/Win/builds/53432 Error: src\third_party\vulkan-validation-layers\src\include\vulkan\vk_layer.h(39): fatal error C1083: Cannot open include file: 'vk_layer_dispatch_table.h': No such file or directory Original change's description: > Roll vulkan-validation-layers. (2/2) > > https://android.googlesource.com/platform/external/vulkan-validation-layers.git/+log/bcb80d06bbdc09..f47c534fee2f26f > > This CL re-enables Vulkan with the new build files. > > In particular, this roll contains a fix for a vs2017 signed/unsigned > mismatch warning as error. > > BUG=chromium:683729 > > Change-Id: Id38e10f97702cac5a51ee194c81972861f15db21 > Reviewed-on: https://chromium-review.googlesource.com/457278 > Commit-Queue: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > TBR=geofflang@chromium.org,jmadill@chromium.org,bungeman@chromium.org,cwallez@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. BUG=chromium:683729 Change-Id: Ic60f22496fc57904132d574a2fb2c1ca4d875b3e Reviewed-on: https://chromium-review.googlesource.com/461999 Reviewed-by: Geoff Lang <geofflang@chromium.org>
Yunchao He 61afff14 2017-03-14T15:34:03 ES31: Add PROGRAM_SEPARABLE to ProgramParameter and GetProgram BUG=angleproject:1939 TEST=angle_end2end_tests Change-Id: I97ad11360f7c015947a2c0cc7d4a47f994726834 Reviewed-on: https://chromium-review.googlesource.com/454264 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Olli Etuaho 48fed633 2017-03-16T12:05:30 Set sampler uniform values from binding qualifiers The usual set uniform call is used to set initial sampler uniform values based on binding layout qualifiers. This is the simplest way to ensure that the uniform values are set correctly in both internal data structures of the Program class and on the different backends. This is done as one of the last steps of program linking. TEST=dEQP-GLES31.functional.uniform_binding.sampler* BUG=angleproject:1442 Change-Id: I2f58c98e175f6a10a90042050f4fcbea77ad97ac Reviewed-on: https://chromium-review.googlesource.com/456597 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang fc72a073 2017-03-24T14:52:39 Update CHROMIUM_copy_texture entry points to the ES3 versions. BUG=angleproject:1932 Change-Id: Ia45f8522320af1d747fbfb57468e8b881b033543 Reviewed-on: https://chromium-review.googlesource.com/459101 Reviewed-by: Geoff Lang <geofflang@chromium.org>
Stanislav Chiknavaryan ee218f27 2017-03-22T15:39:13 Re-land eglGetSyncValuesCHROMIUM extension. This reverts commit 20c97cac2a15144b61ceec7404a9e6249c40f50a and adds a few trivial changes to make it build with the current version of ANGLE code. Please see https://bugs.chromium.org/p/chromium/issues/detail?id=614147 for more details on how this extension will be used. Original description: This change adds implementation of eglGetSyncValuesCHROMIUM extension on D3D11 with Direct Composition. This should work on Windows 8.1 and above. The implementation is based on IDXGISwapChain::GetFrameStatistics. Extension documentation: https://chromium.googlesource.com/chromium/src/gpu/+/master/GLES2/extensions/CHROMIUM/EGL_CHROMIUM_get_sync_values.txt BUG=angleproject:1402 Change-Id: I4b77899f31a4c4cf1fa7f20ab12de5a02ccf74d8 Reviewed-on: https://chromium-review.googlesource.com/459217 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 2feaa5e0 2017-03-24T13:04:21 Roll vulkan-validation-layers. (2/2) https://android.googlesource.com/platform/external/vulkan-validation-layers.git/+log/bcb80d06bbdc09..f47c534fee2f26f This CL re-enables Vulkan with the new build files. In particular, this roll contains a fix for a vs2017 signed/unsigned mismatch warning as error. BUG=chromium:683729 Change-Id: Id38e10f97702cac5a51ee194c81972861f15db21 Reviewed-on: https://chromium-review.googlesource.com/457278 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang aa086d68 2017-03-23T16:47:21 Refactor glVertexAttribIPointer validation. BUG=angleproject:1523 BUG=chromium:668223 Change-Id: I51eca98ad14d8be6f5009149ed6c0daecf569178 Reviewed-on: https://chromium-review.googlesource.com/458106 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Jamie Madill 4063e209 2017-03-23T11:38:22 Roll vulkan-validation-layers. (1/2) https://android.googlesource.com/platform/external/vulkan-validation-layers.git/+log/bcb80d06bbdc09..f47c534fee2f26f Disables Vulkan in ANGLE temporarily - a second CL will follow with the updated build files once ANGLE is rolled into Chrome. In particular, this roll contains a fix for a vs2017 signed/unsigned mismatch warning as error. BUG=chromium:683729 Change-Id: Ib23370d79f1359ab290f08e14a847eed75251660 Reviewed-on: https://chromium-review.googlesource.com/458531 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
jchen10 15015f7f 2017-03-16T13:54:21 ES31: Add glGetProgramResourceIndex API Add API entry and validation checks(GLES 3.1 section 7.3). Add the first 2 interfaces(PROGRAM_INPUT and PROGRAM_OUTPUT) implementation. BUG=angleproject:1920 Change-Id: Ib2dedded9fd79b315e9f38de7c27a5e4ec4c6066 Reviewed-on: https://chromium-review.googlesource.com/453085 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Jamie Madill f651c773 2017-02-21T15:03:51 Vulkan: Enable command queueing. This adds the ability for rendering to happen asynchronously. If objects in-use are deleted as they are being accessed, ownership is transferred to the Renderer and they are deleted when not in use. We determine they're ready for delete using a Fence object. BUG=angleproject:1898 Change-Id: I4fcfd90ad0665d127bf01a10214a604f3407d9e4 Reviewed-on: https://chromium-review.googlesource.com/428353 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Andrei Volykhin a5527071 2017-03-22T16:46:30 Add support for EXT_YUV_target Add new sampler type "__samplerExternal2DY2YEXT" to sample a YUV texture image and output color value without any color conversion, new additional type to specify color space standard formula and built-in functions for yuv to rgb transformation. Change-Id: I1780650fe84cd75191c1ca1e4118e89d585bfd92 Reviewed-on: https://chromium-review.googlesource.com/454697 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Shahmeer Esmail 95f6cedd 2017-03-13T17:40:31 RenderstateCache and Clear11 Optimizations - Unify DepthStencilState and BlendState caches in RenderStateCache with those in Clear11. This will increase cache hit rate and reduce memory usage. - Apply DepthStencilState and BlendState only when required to reduce state sets. BUG=angleproject:1632 Change-Id: I244e3ba189f82814638fa90e2617aa5441024d0f Reviewed-on: https://chromium-review.googlesource.com/453888 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang d90d388c 2017-03-21T10:49:54 Make sure the default framebuffer has enough draw buffer states. Querying the draw buffer states of the default framebuffer would lead to crashes because it only had one state. The spec says that all non-zero attachments default to GL_NONE and makes no mention of special cased errors for querying the default framebuffer. Also fix the validation to check for extensions and ES version when querying draw buffer state. BUG=703508 Change-Id: I7db5443141c65a3f9c638f07ba90f78d76e4e7b4 Reviewed-on: https://chromium-review.googlesource.com/457524 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shao 86904b81 2017-03-21T09:30:59 ES31: Add workaround for illegal MAX_VERTEX_ATTRIB_STRIDE on Linux AMD Query of MAX_VERTEX_ATTRIB_STRIDE on some Linux AMD OpenGL drivers returns 0 even if the context is OpenGL 4.4 and 4.5, which is against SPEC and will block the implementation of ES3.1 feature Vertex Attrib Binding. This patch adds the workaround for this bug by choosing an emulated value (2048) as the value of MAX_VERTEX_ATTRIB_STRIDE on Linux AMD OpenGL drivers. BUG=angleproject:1936 TEST=angle_end2end_tests Change-Id: I831bda6cb94b2489d09735622150d35aa1948274 Reviewed-on: https://chromium-review.googlesource.com/457254 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang e466c551 2017-03-17T15:24:12 Preserve ImageIndex of texture attachments when committing. When calling Framebuffer::commitWebGL1DepthStencilIfConsistent with textures attached to depth or stencil, an invalid ImageIndex would be provided and later cause crashes when trying to index image arrays with a -1 mip level. BUG=angleproject:1708 Change-Id: Iadd159ad740aa79561de823d8812c6b07454e5e5 Reviewed-on: https://chromium-review.googlesource.com/456840 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang d7d526ad 2017-02-21T16:48:43 Allow enabling GL_EXT_texture_filter_anisotropic. BUG=angleproject:1721 Change-Id: I7cbc734915cde7d09165a3fcfe9a6bc0d7149aff Reviewed-on: https://chromium-review.googlesource.com/445959 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Jamie Madill 8aeeed6e 2017-03-15T18:09:26 D3D11: Work around compiler nested sampling bug. We can potentially work around a bug in the HLSL compiler by omitting the const qualifier from some sampling operations. BUG=angleproject:1923 Change-Id: I8a5d119707721e9c19f06be4ad808f87bfcdbee5 Reviewed-on: https://chromium-review.googlesource.com/454938 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Frank Henigman a5eb2941 2017-03-09T17:03:54 Remove unused/unnecessary stuff. Change-Id: Ib409fee5422765cc4124a59a690a93c0fb2de8e7 Reviewed-on: https://chromium-review.googlesource.com/456123 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Jamie Madill e11bf7bd 2017-03-15T13:23:50 Lift uniform packing test suppressions. These were to be lifted in "Fix non-square matrix uniform packing." BUG=angleproject:1923 Change-Id: I6c5cc973f9dff31ffefdfda9fe640b97d28799ad Reviewed-on: https://chromium-review.googlesource.com/455466 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Olli Etuaho <oetuaho@nvidia.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill cc2ed612 2017-03-14T15:59:00 Fix non-square matrix uniform packing. This was broken in two places: the register count was using the non- transposed matrix row count. The block layout encoder was also not set to transpose matrices, which was causing incorrect packing info to be calculated in link. BUG=angleproject:1923 Change-Id: I89094aa116fad4bda15f018498f8637520f12bd4 Reviewed-on: https://chromium-review.googlesource.com/454876 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
jchen10 36e120ef 2017-03-14T14:53:58 Refactor the staticUse checks for attribute and output Remove these needless checks as GetActiveShaderVariables in Shader.cpp has filtered them already. BUG=angleproject:1920 Change-Id: Ife85614a8f636768dd585a827bca81e2f15009c8 Reviewed-on: https://chromium-review.googlesource.com/454129 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Corentin Wallez ded1b5a6 2017-03-09T18:58:48 WebGL Compat: make sure to test the correct error In ForbidsClientSideElementArrayBuffer we test that WebGL Compatibility returns a GL_INVALID_OPERATION but on NVIDIA Shield, the pointer had the top bit set and caused a GL_INVALID_VALUE to be generated instead. Use a intptr_t(1) for indices to test the correct error. BUG=angleproject:1523 Change-Id: I1497694264befa14b2b6df167b4f20fdbb707983 Reviewed-on: https://chromium-review.googlesource.com/452547 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Jiawei-Shao ddb5eb56 2017-03-14T13:36:18 Fix build failure in UniformLinker.cpp on Linux This patch adds the declaration of libANGLE/features.h in UniformLinker.cpp to fix the build failure on Linux when you use gn to build ANGLE alone. BUG=angleproject:1938 Change-Id: I19636df8f81b307e6d2e08fdac286cfb3f705eab Reviewed-on: https://chromium-review.googlesource.com/454083 Reviewed-by: Yunchao He <yunchao.he@intel.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Qin Jiajia fbe49a8f 2016-12-19T14:19:10 ES31: Implement DrawArraysIndirect D3D part There are four buffer types for vertex attribute storage in D3D11: DIRECT STATIC DYNAMIC CURRENT_VALUE When drawing, it will call applyVertexBuffer to bind the right type buffers in D3D11. DIRECT uses the gl buffer directly without any translation. CURRENT_VALUE uses a single value for the attribute. STATIC translates the whole vertex buffer once. So it doesn't need the first, count and instance informations since it always translates the whole buffer. DYNAMIC translates the data every frame. To improve the performance, in implementation, it only translates 'count' vertexes from 'first' location in vertex buffer with one drawing for non-instanced vertices. 'first' and 'count' are got from draw parameter list. And for the translated vertex buffer, when drawing, the first vertex location is 0. From above analysis, we can see that if all attribute storages are non-dynamic, we can directly use the indirect buffer to draw. But for dynamic storages, we have to calculate the first, count, and instances from indirect buffer and apply them to translate the dynamic type buffers. Meanwhile, we have to set the first to 0 (see above description)when drawing. DrawArrysIndirect implementation is like below: 1. Check whether all vertex attributes are non-dynamic 2. If yes, applyVertexBuffer and DrawInstancedIndirect 3. If no, 1) calculate first, count, and instances from indirect buffer. 2) applyVertexBuffer with these parameters. 4) Use DrawInstanced instead of DrawInstancedIndirect. BUG=angleproject:1595 TEST=dEQP-GLES31.functional.draw_indirect.draw_arrays_indirect* Change-Id: I36431f416443279d51de523b07ce60727914cbbf Reviewed-on: https://chromium-review.googlesource.com/446690 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Shahmeer Esmail fe34780f 2017-03-13T17:07:08 RenderStateCache BlendState Hash Fix Fix hash function for blendState cache BUG=angleproject:1937 Change-Id: I0acd7dfcfb933b2b7ff0c1dc6854c7623ec57b3b Reviewed-on: https://chromium-review.googlesource.com/453887 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahmeer Esmail e5cdca7e 2017-03-13T16:45:56 RenderStateCache memory usage Reduce RenderStateCache cache sizes from 4k to 2k. Saves 64kb of memory. Change-Id: I9e92bbdf095f1e66cf9b84ba81899a8af59d6d86 Reviewed-on: https://chromium-review.googlesource.com/453886 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Yuly Novikov c1f8d61a 2017-03-10T14:13:06 Disable VertexAttributeTestES31.MaxVertexAttribStride on Linux AMD GL Due to AMD driver bug. BUG=angleproject:1593 Change-Id: Ic1fee717ffb55c67d3c4d0a43848d73ed6794732 Reviewed-on: https://chromium-review.googlesource.com/452940 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Shao 7a0b3044 2017-03-10T10:03:33 Reland "ES31: Add test on large strides" In OpenGL 4.3 there is no limit on the maximum value of stride. This patch choose an emulated value for OpenGL 4.3 to fix the fyi failure on Linux AMD. BUG=angleproject:1593 Change-Id: I83cecc2ed1a3734dc8b8df3edb48ecc16039ba6e Reviewed-on: https://chromium-review.googlesource.com/452746 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Olli Etuaho b78707c8 2017-03-09T15:03:11 Move default-block uniform linking to a separate file The code is easier to understand when it's encapsulated better. This change is pure refactoring with no functional changes. BUG=angleproject:1442 TEST=angle_end2end_tests Change-Id: I6128fd72c65ca7a87af596cda4866c74c2a66c48 Reviewed-on: https://chromium-review.googlesource.com/452502 Commit-Queue: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Jamie Madill e14951e6 2017-03-09T18:55:16 Implement robust buffer initialization. This uses the most simple implementation: on BufferData calls without explicit data arguments, it will initialize the buffer data store to zero. This could be improved by deferring the init until needed, and skipping it if the buffer store is cleared through other API calls, but it is not a regression from current Chromium implementation. BUG=angleproject:1635 Change-Id: I2fb1594851c5050dc2578736c3f74761555da267 Reviewed-on: https://chromium-review.googlesource.com/450921 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Geoff Lang 0bb791ed 2017-03-09T23:44:40 Revert "ES31: Add test on large strides" This is failing on Linux AMD: https://luci-logdog.appspot.com/v/?s=chromium%2Fbb%2Fchromium.gpu.fyi%2FLinux_Release__AMD_R7_240_%2F1729%2F%2B%2Frecipes%2Fsteps%2Fangle_end2end_tests%2F0%2Fstdout ../../third_party/angle/src/tests/gl_tests/VertexAttributeTest.cpp:684: Failure Expected: (maxStride) >= (2048), actual: 0 vs 2048 This reverts commit 0ba963ef27d1d656986f2f4382391dd5da8c8104. Reason for revert: <INSERT REASONING HERE> Original change's description: > ES31: Add test on large strides > > ES3.1 requires the implementation should define MAX_VERTEX_ATTRIB_STRIDE, > which should be emulated when we use D3D11 backends. > > This patch adds tests to verify this value required in ES3.1 are > supported to be used directly in glVertexAttribPointer for rendering. > > BUG=angleproject:1593 > > TEST=angle_end2end_tests > > Change-Id: I1ac206e4f6c972b5748552177c787c0adcb66786 > Reviewed-on: https://chromium-review.googlesource.com/441308 > Commit-Queue: Yuly Novikov <ynovikov@chromium.org> > Reviewed-by: Yuly Novikov <ynovikov@chromium.org> > TBR=ynovikov@chromium.org,geofflang@chromium.org,jmadill@chromium.org,cwallez@chromium.org,yunchao.he@intel.com,qiankun.miao@intel.com,jiawei.shao@intel.com,yang.gu@intel.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=angleproject:1593 Change-Id: I036da9d6d5633bcc055cc8cfbfde9a15ae67f59c Reviewed-on: https://chromium-review.googlesource.com/452743 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Corentin Wallez 6445ddf8 2017-03-08T19:00:32 end2end_tests: Adds more skips for new tests and testers BUG=angleproject:1924 Change-Id: I3ca25545632c9884eb1a8dba5e8e402b14324f80 Reviewed-on: https://chromium-review.googlesource.com/451877 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Olli Etuaho 6ca2b65c 2017-02-19T18:05:10 Implement location layout qualifier for uniforms This is a complete implementation of the uniform location layout qualifier. Uniform location set in the shader is plumbed to shader linking, which does several link-time checks for conflicts and recursively applies the location to struct members. Validate that location is consistent as specified in the table in section 9.2.1 of the ESSL 3.10.4 spec. The location set in the shader overrides the one set via the CHROMIUM_bind_uniform_location API. Location conflicts must be checked even if the uniforms are not statically used. Because of this unused uniforms are now recorded during uniform linking. After linking checks are done, unused uniforms are pruned from the program state. Location is validated against the maximum number of uniform locations at compile time as specified in section 4.4.3 of the ESSL 3.10.4 spec. All dEQP uniform location tests don't yet pass due to unrelated bugs. BUG=angleproject:1442 TEST=angle_end2end_tests, dEQP-GLES31.functional.uniform_location.* Change-Id: I1f968e971f521fbc804b01e1a7c2b4d14f24d20f Reviewed-on: https://chromium-review.googlesource.com/447942 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Shao 0ba963ef 2017-02-14T22:03:09 ES31: Add test on large strides ES3.1 requires the implementation should define MAX_VERTEX_ATTRIB_STRIDE, which should be emulated when we use D3D11 backends. This patch adds tests to verify this value required in ES3.1 are supported to be used directly in glVertexAttribPointer for rendering. BUG=angleproject:1593 TEST=angle_end2end_tests Change-Id: I1ac206e4f6c972b5748552177c787c0adcb66786 Reviewed-on: https://chromium-review.googlesource.com/441308 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Corentin Wallez fe9306a8 2017-02-01T17:41:05 WebGLCompatibility: Add test for "negative" offset in DrawElements BUG=angleproject:1523 BUG=chromium:668223 Change-Id: I2d21c15b53fa204b3cb2b0be849cfe91ca63046b Reviewed-on: https://chromium-review.googlesource.com/435884 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Jamie Madill e16a4519 2017-03-07T20:46:40 D3D11 FL9_3: Fix bug in R32F vertex format emulation. We would allow direct storage when this format is emulated. Noticed this when making a test which used a single float vertex format. BUG=angleproject:1635 Change-Id: Ia2164b0f311b27f24b6aa7760eb9f9a3834c6044 Reviewed-on: https://chromium-review.googlesource.com/451578 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill e08a1d36 2017-03-07T17:24:06 Plumb robust resource init extensions. This also cleans up a few minor glitches in the extension texts, and renames the EGL extension for consistency. It incidentally fixes a bug in our EGL init where we were checking the wrong client versions for KHR_create_context. It also implements a new feature for tests which allow them to defer Context creation until the test body. This allows tests to check for EGL extension available before trying to create a context with certain extensions. BUG=angleproject:1635 Change-Id: I9311991332c357e36214082b16f2a4a57bfa8865 Reviewed-on: https://chromium-review.googlesource.com/450920 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Frank Henigman 146e8a1c 2017-03-02T23:22:37 WebGL validation of constant color & alpha blend. In WebGL, generate INVALID_OPERATION if constant color and constant alpha are used together as source and destination blend functions. BUG=angleproject:1817 Change-Id: I9b2d05ab5017c013bb89c13256efbd80198de91b Reviewed-on: https://chromium-review.googlesource.com/448940 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Geoff Lang d61396b4 2017-03-06T14:49:46 Reduce the number of iterations of SwizzleTest. KHR_debug from the GL drivers was generating a lot of spam. BUG=angleproject:1925 Change-Id: I89568ea2bec3afb629f86c25d9e80aad1dbe79f8 Reviewed-on: https://chromium-review.googlesource.com/450857 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Olli Etuaho c9da71ff 2017-03-06T16:28:54 Fix translating dynamic indexing of swizzle to HLSL This was broken due to a simple omission in deep copying swizzle AST nodes. It was found that several if not most OpenGL drivers also have some issue related to this, so the end2end test is suppressed on many OpenGL platforms. Intel Windows driver seems to be behaving correctly. BUG=angleproject:1921 TEST=angle_end2end_tests Change-Id: Ieefcedc2f2e36c3d8b607c28e449b696b8ad6892 Reviewed-on: https://chromium-review.googlesource.com/449717 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Jamie Madill 9f9b1d2d 2017-03-06T18:25:22 Make ScratchBuffer its own type. This helper tool in Renderer11 can be useful in other back-ends, or even in the front end. BUG=angleproject:1635 Change-Id: I18ec19a891a9bdfa7b80dea1b8e308abf206906b Reviewed-on: https://chromium-review.googlesource.com/450919 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill ef964d48 2017-03-06T18:25:22 Buffer: Minor error macro cleanups. Refactoring patch only. BUG=angleproject:1635 Change-Id: I9b86fc77f8f62a0f67f9fc73debdc8fb5e379bcc Reviewed-on: https://chromium-review.googlesource.com/450918 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Yuly Novikov 817232ef 2017-02-22T18:36:10 Validate invariance of built-in variables when linking According to ESSL 1.00.17 paragraph 4.6.4 BUG=angleproject:1876 Change-Id: I61e142c31dce11eec28fe240a9bc9ce2c632daf6 Reviewed-on: https://chromium-review.googlesource.com/446870 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
He Yunchao 010e4dbd 2017-03-03T14:22:06 Code refactoring for getters and setters. The entry point should call into Context at first for getters and setters. BUG=angleproject:1922 Change-Id: Ibc8f726298cf334a6dafd6402e39c4dcd7e6d333 Reviewed-on: https://chromium-review.googlesource.com/450028 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Minmin Gong 390208b5 2017-02-28T18:03:06 Implements ETC lossy decode for ETC2 formats. This is the 2nd payload of GL_ANGLE_lossy_etc_decode feature. In this change, RGB8, SRGB8, RGB8A1, and SRGB8A1 formats in ETC2 family can be converted to BC1. BUG=angleproject:1285 Change-Id: I96fe2f07c62716a31d37f20a202b6cabbb4ebbd2 Reviewed-on: https://chromium-review.googlesource.com/447846 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
JiangYizhou 461d9a30 2017-01-04T16:37:26 ES31:Check framebuffer status for multisample and default params This patch implements FRAMEBUFFER_INCOMPLETE_MULTISAMPLE checking for checkFramebufferStatus, and also modify conditions of FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENTS when setting default parameters to fbo. BUG=angleproject:1594 TEST=angle_end2end_tests --gtest_filter=FramebufferTest_ES31* TEST=dEQP-GLES31.functional.texture.multisample.negative.fbo_attach_different_fixed_state_tex* Change-Id: I86954056d3a5d89dca517b267bd16e17b70e5652 Reviewed-on: https://chromium-review.googlesource.com/437991 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Bruce Dawson 09e7c0a4 2017-03-01T16:38:32 Avoid redundant INSERT_PROC_ADDRESS calls PVS-Studio pointed out that seven GL functions were being initialized twice. This isn't critical but is slightly inefficient. R=jmadill@chromium.org BUG=697659 Change-Id: I199bd06ae1136bc3b8efd519787d89f4447f326d Reviewed-on: https://chromium-review.googlesource.com/448639 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Olli Etuaho 547cbd46 2017-02-27T11:54:00 Validate uniform binding at link time GLSL ES Spec 3.10.4, section 4.4.5 has the rules for linking uniforms with binding layout qualifiers. If a binding layout qualifier for a uniform variable is specified in both vertex and fragment shaders, the qualifiers must match. BUG=angleproject:1893 TEST=dEQP-GLES31.functional.layout_binding.*binding_contradictory* Change-Id: I0ae6a1a8967df818be8136510c22daee848b9da7 Reviewed-on: https://chromium-review.googlesource.com/447557 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>