Log

Author Commit Date CI Message
Jamie Madill 50cf2be0 2018-06-15T09:46:57 Reformat some style in touched files. This was triggered by running the code generation script. Bug: angleproject:2665 Change-Id: Id639c78eb618182ee1859678590cf0f559b572c2 Reviewed-on: https://chromium-review.googlesource.com/1101564 Reviewed-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Luc Ferron <lucferron@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Luc Ferron 57707e5f 2018-06-14T14:50:36 Vulkan: Fix a state notification change that was wrong That state change should really be in the frontend and not in each backend. Bug: angleproject:2594 Change-Id: I9d9396563ce42a41587b954892d6b4c6002c5072 Reviewed-on: https://chromium-review.googlesource.com/1101252 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jiawei Shao 0661eb89 2018-06-13T10:51:54 Fix compile error in iterating ShaderBitSet This patch fixes a compile error when we do iteration on ShaderBitSet. Now we can directly get a ShaderType variable in a range-for iteration on a ShaderBitSet. BUG=angleproject:2169 Change-Id: I23e38f2ebd1c72145a2e54be374f7dcd9f5fb9e2 Reviewed-on: https://chromium-review.googlesource.com/1100312 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jiajia Qin <jiajia.qin@intel.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Xinghua Cao 06a22620 2018-05-18T16:48:41 ES31: Use indices to access image variables in built-in image functions In order to implement glBindImageTexture to bind a layer of 3D/2DArray/Cube texture, use indices to access image variables when translating built-in image functions. There is a conflict when transferring image2D/iimage2D/uimage2D variables to an user defined function. For example, layout(r32ui, binding = 0) readonly uniform highp uimage2D uImage_1; layout(r32ui, binding = 1) readonly uniform highp uimage2D uImage_2; uvec4 lod_fun(uimage2D img, ivec2 p) { return imageLoad(img, p); } void main() { uvec4 value_1 = lod_fun(uImage_1, ivec2(gl_LocalInvocationID.xy)); uvec4 value_2 = lod_fun(uImage_2, ivec2(gl_LocalInvocationID.xy)); } If uImage_1 binds to a 2D texture, and uImage_2 binds to a layer of 3D texture, uImage_1 will be translated to Texture2D type, and uImage_2 will be translated to Texture3D type, "img" type of lod_fun will be translated Texture2D, so uImage_2 cannot be transferred to lod_fun as a parameter. Indices without Texture/RWTexture information could handle this situation easily. BUG=angleproject:1987 TEST=angle_end2end_tests.ComputeShaderTest.* Change-Id: I7647395f0042f613c5d6e9eeb49392ab6252e21e Reviewed-on: https://chromium-review.googlesource.com/1065797 Commit-Queue: Xinghua Cao <xinghua.cao@intel.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Geoff Lang 9491e5eb 2018-06-14T12:48:06 Generate framebuffer IDs used in DXGISwapChainWindowSurfaceWGL. The DXGI surface was attempting to bind renderbuffers to the default framebuffer instead of a generated one. BUG=852399 Change-Id: Ibca6699e73e84735c64f2e3ee6b7684bfcbe1bfc Reviewed-on: https://chromium-review.googlesource.com/1101240 Commit-Queue: Geoff Lang <geofflang@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Geoff Lang 75359664 2018-04-11T01:42:27 Implement EGL_KHR_debug. BUG=angleproject:1618 Change-Id: I790944b49badc910b6c72266469fcb8e86ac4252 Reviewed-on: https://chromium-review.googlesource.com/1019387 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Luc Ferron 448da49c 2018-06-14T10:49:40 Vulkan Intel: Flaky test suppression Bug: angleproject:2664 Change-Id: Id6f563fae520cec47d9b5d34da79b08d649863c3 Reviewed-on: https://chromium-review.googlesource.com/1101062 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Luc Ferron <lucferron@chromium.org>
Luc Ferron 49aacad5 2018-06-12T08:33:59 Vulkan: Support the indices offset in drawElements calls Also fixes an issue in buffer copy synchronization. Bug: angleproject:2645 Change-Id: Ibca7052daaf1e6fe37913c8a8216ec33c66426b6 Reviewed-on: https://chromium-review.googlesource.com/1096911 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Luc Ferron <lucferron@chromium.org>
Luc Ferron f6e160fa 2018-06-12T10:13:57 Vulkan: Don't use swizzle state when its not needed Enables a bunch of dEQP tests in the functional.fbo.render.* namespace. Bug: angleproject:2597 Change-Id: I1a06b335d5daf2987df52c460903081860887ce9 Reviewed-on: https://chromium-review.googlesource.com/1097596 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill d668be9c 2018-06-13T16:54:06 Vulkan: Use push constants in PipelineLayoutCache. This removes the internal pipeline layout for the masked clear shaders. Instead use the PipelineLayoutCache. Bug: angleproject:2462 Change-Id: I8f8365b866098ece3e964fd12447dfdea55c20ba Reviewed-on: https://chromium-review.googlesource.com/1090758 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Jamie Madill 4cc753e0 2018-06-13T13:25:33 Vulkan: Implement sampler arrays. Bug: angleproject:2462 Change-Id: If9c9cb69624d6f9f0895f6883e1eed19a27e6cb4 Reviewed-on: https://chromium-review.googlesource.com/1089809 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Jamie Madill 8ed634c0 2018-06-13T13:25:33 Vulkan: Fix qualifier replacement for sampler arrays. The uniform name by default has the array subscript [0] appended. In the shader code it uses no subscript. Fix this by parsing out the subscript in the glslang wrapper subsitution step. This is a preliminary fix. More work on descriptor set layouts and pipeline layouts will be necessary to support sampler arrays. Bug: angleproject:2462 Change-Id: I57d6304f33822d588c7cb192607380c2f3ba20f5 Reviewed-on: https://chromium-review.googlesource.com/1089808 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Luc Ferron <lucferron@chromium.org> Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Jamie Madill 9b168d02 2018-06-13T13:25:32 Vulkan: Store Pipeline/DS Layouts in ProgramVk. We can keep a shared reference to the Pipeline and Descriptor Set layouts in the Program. This ensures they are not in use when they are deleted. Note that they are allowed to be deleted as long as no command buffers are currently recording with them. If the Program is deleted then there should be no further commands using these layouts. Bug: angleproject:2462 Change-Id: I75161b3ce1ee8eae33dd6becee79b4262b844cdd Reviewed-on: https://chromium-review.googlesource.com/1089807 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Jamie Madill c7918ceb 2018-06-13T13:25:31 Vulkan: Add PipelineLayout and DescriptorSetLayout caches. This will be necessary to support more than one PipelineLayout per instance of ANGLE. Sampler array handling requires different layouts for different sampler uses. Bug: angleproject:2462 Change-Id: I1d8b4919eed1a589002ad1898b05186f420061c7 Reviewed-on: https://chromium-review.googlesource.com/1089806 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Luc Ferron <lucferron@chromium.org>
Tobin Ehlis b971f499 2018-05-24T10:56:17 Migrating ANGLE to split LVL repos Separated the Vulkan Validation Layers, Loader, Tools and Headers into separate dirs to map to the new separate repo structure. Bug: angleproject:2558 Change-Id: I422038f7dd7efe8c5b7a49dc5074de5caf40edfa Reviewed-on: https://chromium-review.googlesource.com/1071880 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Luc Ferron ad2ae93e 2018-06-11T15:31:17 Vulkan: Clamp the point size range to have a min value of 1.0 Bug: angleproject:2658 Change-Id: I32ff9aa27b064d9977eea0b83b18c52c4e42e38d Reviewed-on: https://chromium-review.googlesource.com/1096054 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Olli Etuaho 93279812 2018-06-13T11:22:15 Remove unnecessary checks when traversing nodes All children of binary and ternary nodes are guaranteed to be non-null. We don't need to check for their existence when traversing the tree. BUG=angleproject:2662 TEST=angle_unittests Change-Id: I5575058e7213d0c4b4554ca616b4298e535842d6 Reviewed-on: https://chromium-review.googlesource.com/1098670 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Olli Etuaho f462ac1b 2018-06-13T10:22:43 Remove TIntermRaw It's not used anywhere and removing it will make changing traversal code a bit simpler. BUG=angleproject:2662 TEST=angle_unittests Change-Id: I4a430a09ceb538c8b0e5d1bb0a95f3fd7657c276 Reviewed-on: https://chromium-review.googlesource.com/1098671 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Luc Ferron 3e313805 2018-06-11T14:44:33 Vulkan: Line loop edge case with ubyte indices Bug: angleproject:2637 Change-Id: I2cec129ed1aa0e55e0dbf1d353caa65a51c528a3 Reviewed-on: https://chromium-review.googlesource.com/1096017 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Yuly Novikov 9c0e3063 2018-04-23T16:31:28 Fix several of PointSpritesTest PointWithoutAttributesCompliance, PointCoordRegressionTest, PointSpriteAlternatingDrawTypes were failing on Nexus 5X Vulkan, because pointSizeRange is [1,1] there, and the tests assume they can use point sizes larger than 1. Fix the tests to check whether the point size they want to use is available. Note: PointWithoutAttributesCompliance and PointSpriteAlternatingDrawTypes can actually work with size 1, though they need to calculate center pixel more accurately. However, looks like there is a bug in Nexus 5X driver, and no pixels are rendered. The tests do pass on Pixel 2. Bug: angleproject:2447 Change-Id: I511574b1b11f2516c10209b85f86b3e7052e6686 Reviewed-on: https://chromium-review.googlesource.com/1026979 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 7ce4a151 2018-06-12T10:19:49 Add support for uint8_t and uint16_t bitsets. These pack very well in some structs. Support is required so the templates work as expected. Also packs the Shader map into 8 bits. This includes a workaround for an unusual warning generated by MSVC. Bug: angleproject:2462 Change-Id: I804d1b9370b3951343718385210dec7d37700d73 Reviewed-on: https://chromium-review.googlesource.com/1091135 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Jamie Madill aaca96ee 2018-06-12T10:19:48 Vulkan: Minor style fixes. Makes some methods const or static. Fixes parameter names. explicit single argument constructors. Other small style fixes. Bug: angleproject:2462 Change-Id: Ie2bf96603e9eda81d6f2aa788867978de10e9992 Reviewed-on: https://chromium-review.googlesource.com/1089805 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Luc Ferron <lucferron@chromium.org> Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Luc Ferron e18b8147 2018-06-07T11:53:19 Vulkan: Fix point coord management The gl_PointCoord.y coordinate needs to be flipped around the X axis in Vulkan to have correct results. Bug: angleproject:2457 Change-Id: I0d87ad28366623c2be0867c610cc35678a4af43f Reviewed-on: https://chromium-review.googlesource.com/1090824 Reviewed-by: Luc Ferron <lucferron@chromium.org> Reviewed-by: Olli Etuaho <oetuaho@nvidia.com> Commit-Queue: Luc Ferron <lucferron@chromium.org>
Jiawei Shao a8802477 2018-05-28T11:17:47 ES31: Implement FramebufferTextureEXT on OpenGL back-ends This patch intends to implement FramebufferTextureEXT on OpenGL back-ends. 1. Support layered framebuffer attachments. 2. Add new framebuffer completeness rules on layered framebuffer attachments. 3. Support FRAMEBUFFER_ATTACHMENT_LAYERED_EXT as a valid <pname> parameter of GetFramebufferAttachmentParameteriv. Note that for an entire level of a cube map: 1. It has no TextureTarget because TEXTURE_CUBE is not a valid target for TexImage*D. 2. It corresponds to 6 ImageDescs (that represents its faces) in class Texture, so when the cube map is cube complete, we return the ImageDesc of its first face, meanwhile we do not allow querying ImageDesc if it is not cube complete. BUG=angleproject:1941 TEST=angle_end2end_tests dEQP-GLES31.functional.geometry_shading.query.framebuffer_attachment_layers dEQP-GLES31.functional.geometry_shading.query.framebuffer_incomplete_layer_targets dEQP-GLES31.functional.geometry_shading.layered.* dEQP-GLES31.functional.geometry_shading.instanced.invocation_per_layer_* dEQP-GLES31.functional.geometry_shading.instanced.multiple_layers_per_invocation_* Change-Id: I44393b513ec8f1a682fd1c47d3eaa6f3b3fae877 Reviewed-on: https://chromium-review.googlesource.com/1075811 Commit-Queue: Jiawei Shao <jiawei.shao@intel.com> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Junliang Yan d73a6111 2018-06-11T16:24:14 PPC: Fix ppc build error Change-Id: I83b39e1f4c429326a98694198411cf64a7361edb Reviewed-on: https://chromium-review.googlesource.com/1096074 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Luc Ferron af883628 2018-06-08T15:57:31 Vulkan: enable as many end2end tests as possible Bug: angleproject:2615 Change-Id: I918cc18984b2e5b22b5e13398355a2fd60e4eb00 Reviewed-on: https://chromium-review.googlesource.com/1093564 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Lingfeng Yang 6c60641d 2018-06-08T14:39:29 GLES1: Multitexture pipeline - Update test expectations BUG=angleproject:2306 Change-Id: I4a0376db1d095d7b14e00a5779631dcf2a6c427c Reviewed-on: https://chromium-review.googlesource.com/1093795 Commit-Queue: Lingfeng Yang <lfy@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Luc Ferron 071fc3f9 2018-06-11T12:51:35 Fix build on Windows using Visual Studio This is a follow-up of this change: https://chromium-review.googlesource.com/c/angle/angle/+/1092101 Just to fix a warning that prevents building in Visual Studio successfully. Bug: angleproject:2306 Change-Id: Ib87d5cb349019fb6b2d7f75b46552146d41787de Reviewed-on: https://chromium-review.googlesource.com/1095480 Reviewed-by: Lingfeng Yang <lfy@google.com> Commit-Queue: Luc Ferron <lucferron@chromium.org>
Yuly Novikov f15f886c 2018-06-04T18:59:41 Differentiate texture and renderbuffer framebuffer attachment capabilities ANGLE used to describe the abitily to attach textures and renderbuffers of a specific format to a framebuffer using a single notion of "renderable". However, for some formats, only one can be supported, but not the other. Split TextureCaps::renderable into textureAttachment and renderbuffer. Also, split InternalFormat::renderSupport into textureAttachmentSupport and renderbufferSupport. The only functional change is in a few places which now explicitly check for texture or renderbuffer attachement support. Information in format support tables was duplicated for the two capabilities, so behavior should remain the same. It should be corrected in future CLs. Note: additional information in those tables may need to be added in order to properly support GenerateMipmap and TexStorage2DMultisample, this is beyond the scope of this CL. Bug: angleproject:2567 Change-Id: I18bce4100525be35709d8bbf4de08ec812aab502 Reviewed-on: https://chromium-review.googlesource.com/1086491 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Luc Ferron e17b5ba5 2018-06-04T14:28:58 Vulkan: Keep unused uniforms list to fix glslang issues We we're unable to cleanup the unused uniforms if we did not keep a list of them while parsing them in ProgramLinkResource. Now that we keep a history of them, we're able to clean them up and fix a few dEQP tests. Bug: angleproject:2582 Bug: angleproject:2585 Bug: angleproject:2587 Bug: angleproject:2589 Bug: angleproject:2590 Bug: angleproject:2593 Change-Id: Ic1f9151e356a3d05e83f1031cc7b187b370284e5 Reviewed-on: https://chromium-review.googlesource.com/1085644 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Lingfeng Yang 45b5a875 2018-06-07T11:33:25 GLES1: Texture environment API BUG=angleproject:2306 Change-Id: Ibb168d5c9f7aa96a48c96ffbe96ecead2276975e Reviewed-on: https://chromium-review.googlesource.com/1092101 Commit-Queue: Lingfeng Yang <lfy@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Frank Henigman c950a572 2018-05-03T14:49:56 Vertex format support in AttributeLayoutTest. Make it easy to test with different vertex data formats. Add test cases for all formats. BUG=angleproject:2405 Change-Id: I147643a0912e97588588e67946ac326ed449cf07 Reviewed-on: https://chromium-review.googlesource.com/1053564 Commit-Queue: Frank Henigman <fjhenigman@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tom Anderson a4a3c19a 2018-06-07T11:05:40 Remove manual references to exe_and_shlib_deps After [1], a manual dependency on exe_and_shlib_deps is no longer necessary since it's automatically added. This CL removes all remaining manual references to exe_and_shlib_deps. [1] https://chromium.googlesource.com/chromium/src.git/+/d7ed1f0a9c28c932fddc834ca5de44f28266c7f5 BUG=chromium:845700 Change-Id: I66bcead6586050bf952c4aa1f4d3f726c88d2277 Reviewed-on: https://chromium-review.googlesource.com/1091231 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Geoff Lang 5da6690f 2018-06-05T12:24:06 Hold RendererGL objects with a shared_ptr. To support both virtualized and unvirtualized contexts, the RendererGL object represents the native context. Update ContexGL and the various DisplayGLs to hold RendererGL with a shared_ptr so that deletion of the renderer happens at the correct time. Update RendererGL to take ownership of FunctionsGL. BUG=angleproject:2464 Change-Id: Id040a8053973d73936c0a7ff0ab5edb1a3f16dc6 Reviewed-on: https://chromium-review.googlesource.com/1085851 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Olli Etuaho c3907efa 2018-06-08T13:03:15 Always use custom float parsing in GLSL We now always use custom parsing code for parsing floats in GLSL shaders. Previously this code was only used in corner cases that stringstream parsing did not handle according to the GLSL spec. This is slightly faster in compiler perftests, and results in a smaller binary as well. Some new test cases are added to make sure that the custom float parsing behaves correctly. BUG=chromium:849245 TEST=angle_unittests, angle_perftests Change-Id: I2a88ec6a8b427016e34519d72bc98216947a4c64 Reviewed-on: https://chromium-review.googlesource.com/1092697 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Qin Jiajia 4b06c1e9 2018-06-07T13:42:36 Add a test to expose boolean uniform bug on Intel windows This test is ported from webgl conformance test WebglConformance_conformance2_glsl3_short_circuiting_in_loop_condition. Since HLSL and ESSL have different rules to process short-circuit evaluation, this patch will use the final flattened shader so that the translated HLSL is almost same with the current ES shader. BUG=843369 TEST=angle_end2end_tests Change-Id: Ibc742f8ac4592a83c4c7dad37a64a5563eb58bd5 Reviewed-on: https://chromium-review.googlesource.com/1090328 Commit-Queue: Jiajia Qin <jiajia.qin@intel.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jiawei Shao 81970bc3 2018-06-06T11:11:56 Use ShaderMap in DynamicHLSL and StateManager11 - Part I This patch is the first one of using ShaderMap in both DynamicHLSL and StateManager11 to make the code cleaner and more straightforward. BUG=angleproject:2169 Change-Id: I2b206d0250f5ced071cc1c3632367b16e5e02dfb Reviewed-on: https://chromium-review.googlesource.com/1089473 Reviewed-by: Jiajia Qin <jiajia.qin@intel.com> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Geoff Lang e1a057e8 2018-06-07T15:09:00 Fully format some files. Change-Id: Id6ea245849696d4c6d7eabc6860c0ac424dd8013 Reviewed-on: https://chromium-review.googlesource.com/1091309 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Lingfeng Yang 74be296b 2018-06-07T09:13:38 GLES1: Texture environments setup - Revise entry point definitions to use packed enums BUG=angleproject:2306 Change-Id: I06ad95f475d1dbaf07ec24ff2544503c4a44e826 Reviewed-on: https://chromium-review.googlesource.com/1090996 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Lingfeng Yang <lfy@google.com>
Luc Ferron ea17575d 2018-06-07T10:18:29 Vulkan: enable invariance dEQP tests Change-Id: I911e3e8460be2205119bb53ebbe8f56677e9e4c6 Reviewed-on: https://chromium-review.googlesource.com/1090760 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Luc Ferron <lucferron@chromium.org>
Geoff Lang 2bd1fabf 2018-06-06T10:30:19 Update dEQP expectations after June 2018 roll. BUG=angleproject:2629 BUG=angleproject:2349 BUG=angleproject:2327 BUG=angleproject:2328 BUG=angleproject:2630 BUG=angleproject:2631 BUG=angleproject:2349 Change-Id: Ie0752dd07ec8ee151e56c1d4362c47249b7393fc Reviewed-on: https://chromium-review.googlesource.com/1088876 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Qin Jiajia f7af13c4 2018-06-06T14:14:54 Fix the divide by zero exception in BindBufferRange This bug is caught because we haven't implemented caps.shaderStorageBufferOffsetAlignment on D3D backend. So the default value is 0. This change will set its value for D3D11 backend. BUG=angleproject:2625 TEST=angle_deqp_gles31_tests Change-Id: I03c045c08903e4da41659133e7dbd9c4133186cc Reviewed-on: https://chromium-review.googlesource.com/1088192 Reviewed-by: Yunchao He <yunchao.he@intel.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Yunchao He 096a6c8c 2018-02-27T23:48:21 ES31: copy to a texture with RGB9_E5 internalformat is invalid. BUG=angleproject:2378 TEST=dEQP-GLES31.functional.debug.negative_coverage.get_error.texture.copytexsubimage2d_texture_internalformat Change-Id: I4ad0ec6636c0312a3ecfeb47df3297e4bf399c35 Reviewed-on: https://chromium-review.googlesource.com/938328 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yunchao He <yunchao.he@intel.com>
Junliang Yan 02113469 2018-06-05T14:31:56 PPC/s390: Fix GN error on PPC and s390 R=cwallez@chroimium.org, fjhenigman@chromium.org, geofflang@chromium.org, jmadill@chromium.org, ynovikov@chromium.org Change-Id: Iae4cfeb4db83c777d3c9a0a4c115c583113c5b70 Reviewed-on: https://chromium-review.googlesource.com/1087567 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill d1978037 2018-06-05T14:37:00 Roll dEQP (June 2018). Quite a substantial update. Includes ANGLE-related fixes contributed by Google and Intel. Also includes some test suppressions for ES 3.1 D3D11. Bug: angleproject:2617 Bug: angleproject:2619 Bug: angleproject:2625 Change-Id: Iea90036996b1a49278443e5d88dbe7ace32de6d4 Reviewed-on: https://chromium-review.googlesource.com/1087179 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Lingfeng Yang 7ba3f425 2018-06-01T09:43:04 GLES1: Fog API and rendering - Update test expectations BUG=angleproject:2306 Change-Id: Ic5aa5f052bcbe9c5adaf0eb0c6c06df66fd1720c Reviewed-on: https://chromium-review.googlesource.com/1082978 Commit-Queue: Lingfeng Yang <lfy@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Lingfeng Yang 060088a5 2018-05-30T20:40:57 GLES1: Clip plane API and rendering - Add unit tests for the API - Update test expectations + Pass through point size from the vertex array to the shader, required for new tests to pass. BUG=angleproject:2306 Change-Id: Ib19436c1f4cb12873adea94f734c821363f9e27d Reviewed-on: https://chromium-review.googlesource.com/1079993 Commit-Queue: Lingfeng Yang <lfy@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Luc Ferron fba1f61d 2018-06-04T14:37:17 Vulkan: No-op on ProgramVk::Validate implementation Also enable the dEQP test that was blocked on that UNIMPLEMENTED call. Bug: angleproject:2600 Change-Id: Iae1280d6e4f52c5b8e66c9f7fbaa9b2730c4eb0e Reviewed-on: https://chromium-review.googlesource.com/1085693 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Luc Ferron <lucferron@chromium.org>
Luc Ferron e9465a61 2018-06-04T10:41:52 Vulkan: Fix wrong read ptr location when updating uniform block Fixes these dEQP tests: dEQP-GLES2.functional.state_query.shader.uniform_value_array dEQP-GLES2.functional.shaders.indexing.uniform_array.vec2_* dEQP-GLES2.functional.shaders.indexing.uniform_array.vec3_* dEQP-GLES2.functional.shaders.struct.uniform.nested_struct_array* dEQP-GLES2.functional.shaders.struct.uniform.loop_nested_struct_array* dEQP-GLES2.functional.shaders.struct.uniform.dynamic_loop_nested_struct_array* dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.multiple_nested_structs_arrays.* dEQP-GLES2.functional.uniform_api.value.assigned.basic_array_assign_partial.multiple_basic_array.* dEQP-GLES2.functional.uniform_api.value.assigned.basic_array_assign_full.multiple_basic_array.* dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.multiple_basic_array.vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.multiple_basic dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.basic_array_first_elem_without_brackets dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.multiple_basic.vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.multiple_basic.fragment dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.multiple_basic.both dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.multiple_basic_array.* dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.multiple_nested_structs_arrays.* dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.struct_in_array.bool_* dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.basic_struct.bool_* dEQP-GLES2.functional.uniform_api.info_query.unused_uniforms.* dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.multiple_basic.vertex dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.multiple_basic.fragment dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.multiple_basic.both dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.multiple_basic_array.* dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.multiple_nested_structs_arrays.* dEQP-GLES2.functional.uniform_api.value.initial.render.basic_struct.* dEQP-GLES2.functional.uniform_api.value.initial.render.struct_in_array.* dEQP-GLES2.functional.uniform_api.value.initial.render.array_in_struct.* dEQP-GLES2.functional.uniform_api.value.initial.render.multiple_basic_array.* dEQP-GLES2.functional.uniform_api.value.initial.render.multiple_nested_structs_arrays.* dEQP-GLES2.functional.uniform_api.value.initial.render.nested_structs_arrays.* dEQP-GLES2.functional.uniform_api.value.assigned.unused_uniforms* Bug: angleproject:2586 Change-Id: I51f619832424131b7c1eeff9589259b14cf4f358 Reviewed-on: https://chromium-review.googlesource.com/1085369 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Luc Ferron <lucferron@chromium.org>
Frank Henigman 16fdde13 2018-06-02T15:38:21 Move vertex data copy functions out of D3D. Move the vertex buffer copying and conversion functions from the D3D back end so the Vulkan back end can use them. No functional change. BUG=angleproject:2405 Change-Id: If3c04a6c0dc37c78c1779d8b5d3cece263e8a031 Reviewed-on: https://chromium-review.googlesource.com/1083817 Commit-Queue: Frank Henigman <fjhenigman@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 33f11fbc 2018-05-07T13:42:47 Initialize gl::Context state on the first call to MakeCurrent. The constructor of gl::Context creates a bunch of zero and helper objects but it is not current at this time. If the backend if not using virtualized contexts this causes the created objects to be created on the wrong native context. BUG=angleproject:2464 Change-Id: I9718df87d0afeb08729920363d362d5f891061ed Reviewed-on: https://chromium-review.googlesource.com/1048114 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Luc Ferron <lucferron@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Luc Ferron c8fbff3d 2018-06-04T10:30:48 Vulkan: Update uniforms bugfix and enable dEQP tests with it If a uniform was already marked as dirty, and the call to setMatrixUniform wasn't updating the data, the flag was flipped to false, causing the descriptor set never to be initialized. This enables these tests: dEQP-GLES2.functional.shaders.conversions.scalar_to_matrix.* Bug: angleproject:2583 Change-Id: I0bcb95cc66951e0ed347af5d874178c403a1c08a Reviewed-on: https://chromium-review.googlesource.com/1085228 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Luc Ferron <lucferron@chromium.org>
Luc Ferron 48cdc2e8 2018-05-31T09:58:34 Vulkan: Implement setUniform for matrices correctly This fixes all these tests: dEQP-GLES2.functional.shaders.functions.datatypes.float_mat* dEQP-GLES2.functional.shaders.functions.datatypes.mat* dEQP-GLES2.functional.shaders.linkage.varying_type_mat* dEQP-GLES2.functional.shaders.matrix.* dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.mat2_* dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.mat3_* dEQP-GLES2.functional.shaders.conversions.matrix_to_matrix.* dEQP-GLES2.functional.shaders.conversions.matrix_combine.* dEQP-GLES2.functional.shaders.random.scalar_conversion* Bug:angleproject:2581 Bug:angleproject:2583 Bug:angleproject:2584 Bug:angleproject:2588 Change-Id: Ib8c03397f0229432292c51f4a6332f954fc8fa12 Reviewed-on: https://chromium-review.googlesource.com/1080392 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jeff Gilbert 79216620 2018-05-29T19:19:54 Use stringstream with locale override. Add test for compiling float literals in locales with comma decimal separators. Handle inexplicable test setlocale failure on Android,Linux. (Require success on other platforms) Skip setting the locale on Android, which is always C locale in C++, but for some reason std::locale::classic isn't implemented as a no-op. Bug: angleproject:2607 Test: angle_unittests Change-Id: I7c97cb56c01335db46f532fb8af3f9a4f2a30564 Reviewed-on: https://chromium-review.googlesource.com/1077789 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Edward Lemur 47463d85 2018-06-01T17:03:40 Use revision variables in DEPS. Bug: 782846 Change-Id: I915b8e97d6420019051b3fa77ae843a4942e7802 Reviewed-on: https://chromium-review.googlesource.com/1083316 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
Geoff Lang 4fb8a8bd 2018-06-01T16:47:57 Move the EGL-based initial state to the gl::State constructor. This is a small refactor to allow State::initialize to be called without needing the EGL context creation attributes. BUG=angleproject:2464 Change-Id: Ifa167cc83f652435ecc00a0a73e4c6c4a3295430 Reviewed-on: https://chromium-review.googlesource.com/1083312 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Luc Ferron 2f3f4141 2018-05-30T08:27:19 Vulkan: Fix texture completeness issues The fix is to skip updates that are queued that are not valid for the current image description. We keep these around in case they are used in a later usage of the same texture but we issue a warning telling the user that memory will be used indefinitely until they use that data. Bug: angleproject:2596 Change-Id: I8c20fffbd473ae8e2e9d2123a49b675b824a9bf6 Reviewed-on: https://chromium-review.googlesource.com/1078913 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Luc Ferron <lucferron@chromium.org>
Edward Lemur 8ae09b0e 2018-06-01T14:18:28 Make DEPS file compatible with Chromium. Rename 'root' to 'angle_root' and add conditions to not sync dependencies when building with Chromium. Bug: 782846 Change-Id: I250609ad0b5b8cad606075baf6dd6ca4e968a5b6 Reviewed-on: https://chromium-review.googlesource.com/1082922 Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 6b600645 2018-05-31T14:53:31 D3D11: Micro-optimize StateManager11::updateState. This inlines several accessors. Bug: angleproject:2574 Change-Id: I61d223dd2a8f08e5331ccefde02e6ce55f5a607d Reviewed-on: https://chromium-review.googlesource.com/1067118 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 4166f014 2018-05-31T14:53:30 D3D11: Optimize Renderer11::drawArrays. Uses inlining and more efficient computation re-use to streamline this function. Bug: angleproject:2575 Change-Id: Ib13e32811f56ec9a010ed66f298d4235e5c6807d Reviewed-on: https://chromium-review.googlesource.com/1067120 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Geoff Lang bf7b95db 2018-05-01T16:48:21 Create a default framebuffer per surface/context pair on MakeCurrent. Sharing a gl::Framebuffer object between multiple contexts causes problems if contexts are not virtualized because the native framebuffer objects are not shared between these contexts. The FramebufferImpl created should be the glue that binds a specific context to a specific surface. Update the SurfaceImpl implementations to re-create the framebuffer object before passing it to FramebufferGL. No backing resources will be re-created. BUG=angleproject:2464 Change-Id: Id0b13a221c22b71517b25cb5b1ef2392ad2ecdd6 Reviewed-on: https://chromium-review.googlesource.com/1039985 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Frank Henigman <fjhenigman@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Edward Lemur cbab2750 2018-05-31T18:49:31 DEPS.chromium: Sync dEQP to ANGLE (not Chromium) third_party. Bug: 782846 Change-Id: I88af578dfd27fb69751138d9b263a148da9ecf23 Reviewed-on: https://chromium-review.googlesource.com/1081113 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Lingfeng Yang a0cfa873 2018-05-30T21:12:17 GLES1: Shade model API + add sample BUG=angleproject:2306 Change-Id: Ie0c391618ec2b771cc99b96db02b9008a86272b9 Reviewed-on: https://chromium-review.googlesource.com/1079992 Commit-Queue: Lingfeng Yang <lfy@google.com> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Lingfeng Yang 32749b94 2018-05-30T19:24:18 GLES1: Alpha test - Update test expectations BUG=angleproject:2306 Change-Id: Ib49900c7c4d6b808ebfab9483d42d3fd98644f9e Reviewed-on: https://chromium-review.googlesource.com/1079991 Commit-Queue: Lingfeng Yang <lfy@google.com> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Jiawei Shao 0c4e08e9 2018-05-08T11:00:36 Use ShaderMap in Caps - Part II This patch is the last one in the series of putting resource limits on each shader stage into ShaderMap. With this patch, all such values are organized in the corresponding ShaderMap. This patch also cleans up all the related code by using this new type of data structure. BUG=angleproject:2169 Change-Id: I440643fe44ab63acf7da0a1611643beed1ba66d1 Reviewed-on: https://chromium-review.googlesource.com/1077748 Commit-Queue: Jiawei Shao <jiawei.shao@intel.com> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Jiawei Shao 6a455206 2018-05-31T14:20:36 Use IsCubeMapFaceTarget on texture targets This patch introduces IsCubeMapFaceTarget() to determine if a teture target belongs to cube map. BUG=angleproject:2169 Change-Id: I3968ee267887665835f3eb3eda281c054e5d4375 Reviewed-on: https://chromium-review.googlesource.com/1080450 Reviewed-by: Jiajia Qin <jiajia.qin@intel.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Luc Ferron 46bcea50 2018-05-31T09:48:36 D3D,Vulkan: Prep work to share useful functions from D3D - Refactor and move some functions used by D3D that are not really renderer specific to be used by the Vulkan implementation to support setting matx uniforms. Bug: angleproject:2581 Change-Id: Ib37ddf4fc62bb8ecb3629893a24969e1f515795b Reviewed-on: https://chromium-review.googlesource.com/1079845 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Xinghua Cao 77a2b4c3 2018-05-21T17:28:29 Validate the total invocations within a work group If the total number of invocations within a work group is greater than MAX_COMPUTE_WORK_GROUP_INVOCATIONS, a compile-time error will occur. BUG=angleproject:2572 TEST=dEQP.GLES31/functional_debug_negative_coverage_callbacks_compute_invalid_maximum_work_group_sizes dEQP.GLES31/functional_debug_negative_coverage_log_compute_invalid_maximum_work_group_sizes dEQP.GLES31/functional_debug_negative_coverage_get_error_compute_invalid_maximum_work_group_sizes Change-Id: I8218b618d1b347df2c85cfc67ba82ae91d756e05 Reviewed-on: https://chromium-review.googlesource.com/1066076 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Geoff Lang 1da46774 2018-05-14T14:30:30 Add support for EGL_ANDROID_presentation_time. BUG=angleproject:2506 Change-Id: I46b3c6ac7f259eabfdd8ea5799da6ef563ff81ee Reviewed-on: https://chromium-review.googlesource.com/1057997 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Luc Ferron 78ee3423 2018-05-30T11:34:19 Vulkan: varyings of type Matrix/Struct can't use components. - This is not yet fixing all issues for these tests but it does get us further in the execution of the test case. Bug: angleproject:2581 Change-Id: I96510e013ccc87fd21bce6823e1278ed9ff60739 Reviewed-on: https://chromium-review.googlesource.com/1079267 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Luc Ferron <lucferron@chromium.org>
Jamie Madill 2274b652 2018-05-31T10:56:08 StateManager11: Cache impl objects. Also requires putting the Framebuffer ID in the shared state object. Bug: angleproject:2575 Change-Id: I68e3af839a85798e01050560a67624a165d3ed2c Reviewed-on: https://chromium-review.googlesource.com/1067119 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
jchen10 683d65f8 2018-05-31T13:32:00 Fix a trivial parentheses compile warning Unable to compile with gcc 7.2.0 ubuntu 17.10. Bug: angleproject:2318 Change-Id: I91a5d73e56d308c7bda45778f5222884f3c202d0 Reviewed-on: https://chromium-review.googlesource.com/1079997 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Luc Ferron 05cd6dfc 2018-05-24T15:51:29 Vulkan: generateMipmaps with vkCmdBlitImage when possible Bug: angleproject:2502 Change-Id: Ib32a128a453749c59d751e996017a8a6e2a9972e Reviewed-on: https://chromium-review.googlesource.com/1072550 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Luc Ferron <lucferron@chromium.org>
Jamie Madill 86ce210a 2018-05-22T11:54:42 Vulkan: Clean up onResourceChanged. Merge this with the internal method to generate a new command graph node. Call onResourceChanged internally in beginWriteResource. Bug: angleproject:2539 Change-Id: Ie33f886c5df7e15ff0b5d690a63fa664b1e964d4 Reviewed-on: https://chromium-review.googlesource.com/1069292 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Luc Ferron <lucferron@chromium.org> Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Jamie Madill c57ee259 2018-05-30T19:53:48 Vulkan: Clean up object releasing APIs. This cleans up the confusing releaseResource/releaseObject pair in the RendererVk class. It also makes getQueueSerial private in ResourceVk but keeps a public isResourceInUse API for external use. Bug: angleproject:2539 Change-Id: I6b4f24db16e36130a85ef03fc2c3b26d8d9e1fba Reviewed-on: https://chromium-review.googlesource.com/1069291 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Jamie Madill d014c9e6 2018-05-18T15:15:59 Vulkan: Mark some Resource APIs are protected. This clarifies what is supposed to be called from outside the class to what should be called internally. The read/write dependency management is accessible publically. The command buffer access however is private and should be only used within the class. Bug: angleproject:2539 Change-Id: Ic25b589d4009de62633d13546be596ecafd0b175 Reviewed-on: https://chromium-review.googlesource.com/1066555 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Luc Ferron <lucferron@chromium.org> Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Jamie Madill 5dca651f 2018-05-30T10:53:51 Vulkan: Make Resource's updateSerial private. This simplifies the API from the calling resource classes. This method is called internally instead. beginWriteResource and appendWriteResource both call updateSerial internally. Additionally this removes hasStartedRenderPass and instead returns a boolean from appendToStartedRenderPass indicating success. Bug: angleproject:2539 Change-Id: Idcf72e6a80dde90e83dabc64644051bb536c6b12 Reviewed-on: https://chromium-review.googlesource.com/1066554 Reviewed-by: Frank Henigman <fjhenigman@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Yuly Novikov dc0daf8b 2018-05-29T21:35:35 Add Android Vulkan trybots to ANGLE CQ Bug: chromium:839893 Change-Id: I418d054ca149fb2360606aeee31787f27bec1efa Reviewed-on: https://chromium-review.googlesource.com/1077760 Reviewed-by: Luc Ferron <lucferron@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Frank Henigman 95fb2a17 2018-05-27T20:17:05 Add vertex formats and lookup function. Add an angle::Format for each ES2 vertex data format. Add function GetVertexFormatID() to get the angle::Format for a vertex attribute. These will be used later to support vertex formats in Vulkan (by mapping angle::Format to Vulkan format) and to eliminate the redundant enum gl::VertexFormatType. No functional change. BUG=angleproject:2405 BUG=angleproject:2531 Change-Id: I871ae23ce9fba57d90c554376e84b03f8514f7fc Reviewed-on: https://chromium-review.googlesource.com/1044874 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Jamie Madill 4fef7738 2018-05-29T15:21:41 Add perf test for Error/Result class. This is a performance test that stresses the Error class. It also is used in tests for the new Result class. Bug: angleproject:2575 Change-Id: Ie23c2a1ea74108d2ba72bf26f1db04e14f7eda64 Reviewed-on: https://chromium-review.googlesource.com/1077129 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Luc Ferron c20b950e 2018-05-24T09:30:17 Vulkan: Fix clear of specific mip level was clearing all mip levels Bug: angleproject:2502 Change-Id: Iffa012dce14584318c4dfd3d9b3a304291c9cebf Reviewed-on: https://chromium-review.googlesource.com/1070666 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Luc Ferron 574a6f25 2018-05-28T10:21:18 Vulkan: Fix edge case in DynamicBuffer causing wrong allocations - on a very specific scenario when the next buffer to allocate was fitting exactly in the allocated size. The condition was wrong and needed to be >= instead of >. Bug: angleproject:2562 Change-Id: Ide36bc3baadafdc1ffa40416b46998dc455caecf Reviewed-on: https://chromium-review.googlesource.com/1075293 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Luc Ferron 22695bf5 2018-05-22T15:52:08 Vulkan: Support cube mimaps generation Bug: angleproject:2502 Change-Id: I953d99d04608cec04aad824b8b38f388ed1e4c2b Reviewed-on: https://chromium-review.googlesource.com/1069544 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Luc Ferron c5181706 2018-05-17T09:44:42 Vulkan: generateMipmaps for 2D textures - This implements cpu-only mipmaps generation. To do in the next CLs: - Cube textures support - GPU faster path with vkCmdBlitImage - Find the bug with clearing of level 0 mips. - Investigate the intel linux specific bug. Bug: angleproject:2502 Change-Id: Iecd73cb45ebc9c79ce6291c4529eb27330b51e2c Reviewed-on: https://chromium-review.googlesource.com/1064194 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Luc Ferron 0ed2aa23 2018-05-29T18:42:28 Vulkan: Fix expectations for android vulkan failures Bug: angleproject:2557 Change-Id: I0efd2f7ed47e1848e49fb853dc7a06b3a44082bc Reviewed-on: https://chromium-review.googlesource.com/1077567 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Luc Ferron <lucferron@chromium.org>
Jamie Madill 8c361c7f 2018-05-18T14:36:06 Vulkan: Remove one API from CommandGraphResource. 'checkResourceInUseAndRefreshDeps' can be implemented using other APIs. This simplifies the API surface in CommandGraphResource. Bug: angleproject:2539 Change-Id: I55350ab352c50961736327a867e8403d3b38506b Reviewed-on: https://chromium-review.googlesource.com/1052070 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Luc Ferron <lucferron@chromium.org> Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Luc Ferron 95cce74a 2018-05-29T16:10:14 Vulkan: Add expectations for failing tests on Android Bug: angleproject:2557 Change-Id: Ibf8abee5c292da460bf33485ab4699b5d70d51c7 Reviewed-on: https://chromium-review.googlesource.com/1077054 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill a5e06071 2018-05-18T14:36:05 Vulkan: Move the CommandGraphNode class to the cpp. This totally hides the details of the CommandGraphNode implementation from the rest of the back-end. This continues the simplification of the graph/resource APIs. Refactoring change only. Bug: angleproject:2539 Change-Id: I7e0f286c387599624cfdff6c8972a8e082fe05d3 Reviewed-on: https://chromium-review.googlesource.com/1052069 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Luc Ferron <lucferron@chromium.org> Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Yuly Novikov b4a3f65f 2018-05-28T21:18:55 Fix nativegl::InsertFormatMapping Bug: angleproject:2567 Change-Id: I0f01499855213ef8d4bb772698ad4386e6317d2f Reviewed-on: https://chromium-review.googlesource.com/1075847 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Luc Ferron 387b3b36 2018-05-28T10:11:57 Vulkan: Fix a line loop edge case causing validation errors Bug: angleproject:2563 Change-Id: I6e908fbd3e5725dc3f355f8b0561f2177b61dff6 Reviewed-on: https://chromium-review.googlesource.com/1075291 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 316c6065 2018-05-29T10:49:45 Vulkan: Call GraphResource instead of GraphNode. We don't need to use the CommandGraphNode class directly. This CL consolidates our code so we never call the GraphNodes class directly. Instead we call operations on GraphResource. This should simplify the interaction with APIs from the various graph and dependency management classes in the Vulkan back-end. A new concept of 'starting' vs 'appending' commands is introduced. Appending tries to avoid starting new command buffers when possible. Should not change how the graphs are constructed, and mostly be a refactoring change. There may be minor behaviour changes to some commands. Bug: angleproject:2539 Change-Id: Ia971e5cacb1164b9b3b22fa4a0a55b954d81f10e Reviewed-on: https://chromium-review.googlesource.com/1052068 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Geoff Lang b26ab825 2018-05-29T11:19:00 Return a program binary size of 0 when the program is not linked. From the GLES3 spec: "... When a program object's LINK_STATUS is FALSE, its program binary length is zero ..." Querying the size was generating errors in the GL backend. BUG=angleproject:2569 Change-Id: I1be511040331abaec2bba98502d8aa88fb4bd19c Reviewed-on: https://chromium-review.googlesource.com/1076317 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang c2014bce 2018-05-28T16:09:04 Expose eglCreatePlatformWindowSurfaceEXT and eglCreatePlatformPixmapSurfaceEXT These entry points are part of EGL_EXT_platform_base but were never returned by eglGetProcAddress. BUG=angleproject:2603 Change-Id: I4782df67fa8625a9af29a18df02af7b5fa73d75e Reviewed-on: https://chromium-review.googlesource.com/1075469 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Geoff Lang 3f1eba94 2018-05-10T15:53:22 Support EGL_KHR_swap_buffers_with_damage in the EGL backend. Update the EXT extension to KHR in ANGLE. BUG=angleproject:2544 Change-Id: Ia647191c3e762d658b0f7e28a34a9ce2cc545f48 Reviewed-on: https://chromium-review.googlesource.com/1054415 Reviewed-by: Luc Ferron <lucferron@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Luc Ferron 1e91374e 2018-05-25T12:37:50 Vulkan: Enable every dEQP tests that are passing - Also created bugs for each failing expectation to follow-up on. - This CLs enable 8572 dEQP tests for Vulkan. Bug: angleproject:2557 Change-Id: I7fba622994a5b0d884ba965bcbc2f807fefee9b4 Reviewed-on: https://chromium-review.googlesource.com/1073657 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Luc Ferron <lucferron@chromium.org>
Jamie Madill bcf467f2 2018-05-23T09:46:00 Vulkan: Encapsulate RenderTargetVk. This makes the members private and adds more functionality. This moves more responsibility out of vk::CommandGraphNode and also makes the RenderPass init in the CommandGraphNode class better encapsulated. Bug: angleproject:2539 Change-Id: Ia16f3f39cf011548c6473805b8b28e284808e856 Reviewed-on: https://chromium-review.googlesource.com/1040279 Reviewed-by: Luc Ferron <lucferron@chromium.org> Reviewed-by: Frank Henigman <fjhenigman@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Geoff Lang 29523298 2018-05-28T15:01:43 Update dEQP EGL expectations for Mac. BUG=angleproject:2546 Change-Id: I9485c701c6960f8abb60e763ad8b099933eaee81 Reviewed-on: https://chromium-review.googlesource.com/1075728 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Lingfeng Yang 1478afaf 2018-05-17T10:43:34 GLES1: Lighting and materials (renderer) - Update test expectations - Add gles1 sample app that shows simple lighting. BUG=angleproject:2306 Change-Id: I545dcf860374abd9d628b0d554153cb634098f6d Reviewed-on: https://chromium-review.googlesource.com/1065501 Commit-Queue: Lingfeng Yang <lfy@google.com> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Lingfeng Yang d0febe7a 2018-05-17T22:36:52 Reland "GLES1: Entry points for lighting and materials" This is a reland of 4a09c1a245c406e402b3996b7ed33798b897e60f Entry points have been autogenerated again. Original change's description: > GLES1: Entry points for lighting and materials > > - glLight*/glMaterial and their queries > - Use new packed enums in these entry points, except for lightmodel > which stays GLenum to be consistent with other generic glGet's > - State.cpp: New glGet* queries related to light model and > light/normal rescale enablement > - GLES1State.cpp: Functions to get/set lighting/material state > - Validation for lighting/materials > > + Add a few convenience methods to random_utils for sampling > non-negative floats and a sampler for random booleans > > BUG=angleproject:2306 > > Change-Id: If7ba0c0a0dc75f88fbaa986b904f1ea96ee6512e > Reviewed-on: https://chromium-review.googlesource.com/1065502 > Commit-Queue: Lingfeng Yang <lfy@google.com> > Reviewed-by: Geoff Lang <geofflang@chromium.org> Bug: angleproject:2306 Change-Id: I434273acd5200dd9f4925e239a032cc8db31a434 Reviewed-on: https://chromium-review.googlesource.com/1072849 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Lingfeng Yang <lfy@google.com>
Jiawei Shao d0a7d10f 2018-05-07T12:40:20 ES3.1: Set unordered access view related resource limits on D3D11 This patch sets the implementation-dependent resources limits related to unordered access views (images, shader storage blocks, atomic counter buffers and fragment shader outputs) on D3D11 back-ends. For pixel shaders, the render targets and unordered access views share the same resource slots when being written out, so we plan to allocate these slots as follows: - As there are 8 slots for UAVs and RTVs in feature level 11_0, currently we assign 1 slot for atomic counter buffer and 7 slots that are shared among images, shader storage blocks and fragment shader outputs. - As there are 64 slots for UAVs and RTVs in feature level 11_1, currently we assign 4 slots for atomic counter buffers and 60 slots that are shared among images, shader storage blocks and fragment shader outputs. We also limit the maximum number of draw buffers to 7 if we create ES 3.1 context on D3D11 feature level is 11_0 because the value of combined shader output resources is 7. This patch also labels several dEQP cases from "FAIL" to "SKIP" because since the resource limits on ssbos, atomic counter buffers and images in rendering pipeline are set in D3D11 back-ends, the GLSL programs in these cases can pass all the related link checks, thus these cases will crash due to reaching the unimplemented parts when they are running on ANGLE D3D11 back-ends. BUG=angleproject:2345 TEST=dEQP-GLES31.functional.state_query.integer.max_compute_atomic_counter_buffers_* dEQP-GLES31.functional.state_query.integer.max_compute_shader_storage_blocks_* dEQP-GLES31.functional.state_query.integer.max_atomic_counter_buffer_bindings_* dEQP-GLES31.functional.state_query.integer.max_combined_atomic_counter_buffers_* dEQP-GLES31.functional.state_query.integer.max_image_units_* dEQP-GLES31.functional.state_query.integer.max_combined_image_uniforms_* dEQP-GLES31.functional.state_query.integer.max_shader_storage_buffer_bindings_* dEQP-GLES31.functional.state_query.integer.max_combined_shader_storage_blocks_* dEQP-GLES31.functional.state_query.integer.max_combined_shader_output_resources_* Change-Id: I56a4e6c60d4f6f5bd6f238ae8ce425fb5072a4a3 Reviewed-on: https://chromium-review.googlesource.com/1046372 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>