src


Log

Author Commit Date CI Message
Rafael Cintron 05a449a7 2018-06-20T18:08:04 Replace reinterpret_cast with safer or no cast When casting types to one another in C++, the weaker the cast, the better. This change replaces instances of reinterpret_cast with static_cast or no cast where it safe and correct to do so. BUG=angleproject:2683 Change-Id: I99c9033614a65282ae1d78cf0f4b80fabd75877a Reviewed-on: https://chromium-review.googlesource.com/1109396 Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Luc Ferron 5fd3693e 2018-06-19T14:55:50 Vulkan: Mask the alpha channel for draw when needed When the angleFormat we have has no alpha channel, but the actual texture underneath has one, we shouldn't be drawing over the alpha channel, so we apply a mask on it when we're in this situation. Bug: angleproject:2597 Change-Id: Ia7110709e6ee32bb61988d08f5049e4e80e7e24e Reviewed-on: https://chromium-review.googlesource.com/1106759 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Olli Etuaho 1a3bbaa8 2018-01-25T11:41:31 Use ImmutableString instead of TString in QualifierTypes This avoids unnecessary pool allocations when generating errors. Most of the returned strings are static. BUG=angleproject:2267 TEST=angle_unittests Change-Id: Ia9b26898d499985d61e629fddde7aded4714eddf Reviewed-on: https://chromium-review.googlesource.com/885818 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Jamie Madill e033999e 2018-06-20T11:46:40 Vulkan: Add struct sampler parsing. Vulkan requires all uniforms to be declared in a block. Uniform blocks can't have store samplers. Thus we can't use structs in samplers with Vulkan GLSL. To work around this limitation we extract samplers from structs and move them into standalone types. The samplers are named according to the variable and struct fields. Arrays of structs and nested structs to come later. Bug: angleproject:2494 Change-Id: I83a94ab082c6ce7ee68ec1290751ecee18820683 Reviewed-on: https://chromium-review.googlesource.com/1101567 Reviewed-by: Olli Etuaho <oetuaho@nvidia.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 4da0d315 2018-06-20T11:46:38 Vulkan: Handle embedded struct uniforms. Also known as nameless structs. Uniform structs without a struct name would not be parsed correctly. This fixes the bug by adding a tree transformation. The transformation gives an internally scoped name to the embedded struct. Bug: angleproject:2665 Change-Id: I43e4dad7d9ad64a40e382066bb136e4f8f719797 Reviewed-on: https://chromium-review.googlesource.com/1101566 Reviewed-by: Olli Etuaho <oetuaho@nvidia.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Luc Ferron 3237f759 2018-06-20T14:45:43 Vulkan: Fix issue when a sampler2D was not used in FS or VS Bug: angleproject:2675 Change-Id: Idbf2590a763fd7b81d2bcc5850180a1bb931360e Reviewed-on: https://chromium-review.googlesource.com/1108490 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Luc Ferron <lucferron@chromium.org>
Geoff Lang d11efaec 2018-06-20T11:43:41 Release the current context's surface before making the next context current. We were calling context->releaseSurface on a context that was no longer current, this somtimes caused incorrect framebuffers to be deleted. BUG=angleproject:2464 Change-Id: I6859b5739a509c1343901f8c0eef1fdd1598cea1 Reviewed-on: https://chromium-review.googlesource.com/1108087 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Jamie Madill fddac3a3 2018-06-20T15:21:31 Vulkan: Remove obsolete TODO. Bug: angleproject:2397 Change-Id: I847772aa5ce1c27f7fd232d50d39c15f10135900 Reviewed-on: https://chromium-review.googlesource.com/1108515 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Luc Ferron 397ca26a 2018-06-20T14:51:07 GLES: Add skip for failing test Bug: angleproject:2681 Change-Id: I728e57cee4c56da049a27c2d86a8899c44cf4917 Reviewed-on: https://chromium-review.googlesource.com/1108494 Reviewed-by: Frank Henigman <fjhenigman@chromium.org> Commit-Queue: Luc Ferron <lucferron@chromium.org>
Frank Henigman 2ad498eb 2018-06-20T13:19:01 Vulkan: get vertex formats from format table. Use the Vulkan format table to look up the Vulkan format for vertex data. This will let us support more vertex formats by adding them to the table. It also eliminates one usage of gl::VertexFormatType. No functional change. BUG=angleproject:2405 BUG=angleproject:2531 Change-Id: I73eb69ccac50d427de3e7d5479f92bb17c49aed3 Reviewed-on: https://chromium-review.googlesource.com/1051028 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Luc Ferron <lucferron@chromium.org> Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Lingfeng Yang 9c4c0926 2018-06-13T09:29:00 Reland "GLES1: Point rasterization (partial implementation)" This is a reland of 4004ae0e033a0169de3cb53c0a036833ad47178a Fix: Put the missing early-out in ValidatePointParameterCommon Original change's description: > GLES1: Point rasterization (partial implementation) > > - Not included: Smooth points > > - GL_OES_point_sprite > - Update test expectations. Note: due to different random sampling, > edge cases were hit in UserClip. Disabling that test for now. > > BUG=angleproject:2306 > > Change-Id: If8367bc3321804b3299d3bc381d6a8e236754baa > Reviewed-on: https://chromium-review.googlesource.com/1101910 > Reviewed-by: Corentin Wallez <cwallez@chromium.org> > Commit-Queue: Lingfeng Yang <lfy@google.com> Bug: angleproject:2306 Change-Id: Id8e71352a77ff0ce71cb604965effbfb8aca613e Reviewed-on: https://chromium-review.googlesource.com/1108458 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Lingfeng Yang <lfy@google.com>
Jamie Madill 3fb64c6a 2018-06-20T11:46:39 Vulkan: Fix counting for shader texture bindings. Vulkan prefers to use a single binding for each texture array. Previously we were reserving binding space for array elements. Doesn't immediately fix any tests but allows more tests to pass in subsequent CLs. Bug: angleproject:2494 Change-Id: I238d4e6f491bfa6daf04dde24f8111c8418cd59c Reviewed-on: https://chromium-review.googlesource.com/1101570 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Luc Ferron <lucferron@chromium.org> Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Frank Henigman a58d69e9 2018-06-20T18:07:11 Revert "GLES1: Point rasterization (partial implementation)" This reverts commit 4004ae0e033a0169de3cb53c0a036833ad47178a. Crash in PointParameterTest.NegativeEnum/ES1_OPENGL. https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/Mac%20FYI%20GPU%20ASAN%20Release/1178 angle_end2end_tests on Intel GPU on Mac on Mac-10.12.6 angle_end2end_tests on ATI GPU on Mac Retina on Mac-10.12.6 Original change's description: > GLES1: Point rasterization (partial implementation) > > - Not included: Smooth points > > - GL_OES_point_sprite > - Update test expectations. Note: due to different random sampling, > edge cases were hit in UserClip. Disabling that test for now. > > BUG=angleproject:2306 > > Change-Id: If8367bc3321804b3299d3bc381d6a8e236754baa > Reviewed-on: https://chromium-review.googlesource.com/1101910 > Reviewed-by: Corentin Wallez <cwallez@chromium.org> > Commit-Queue: Lingfeng Yang <lfy@google.com> TBR=geofflang@chromium.org,jmadill@chromium.org,cwallez@chromium.org,lfy@google.com Change-Id: I776ce0506d349382b3af035c962aa2c3f6826b99 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: angleproject:2306 Bug: angleproject:2680 Reviewed-on: https://chromium-review.googlesource.com/1108457 Reviewed-by: Frank Henigman <fjhenigman@chromium.org> Reviewed-by: Lingfeng Yang <lfy@google.com> Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Olli Etuaho 72e3589c 2018-06-20T11:43:08 Refactor debug output of types Instead of passing around strings from TType::getCompleteString(), add a stream operator to InfoSinkBase that takes a TType. This makes the compiler executable a few kilobytes smaller and will help with getting rid of TString altogether. BUG=angleproject:2267 TEST=angle_unittests Change-Id: I31a6693b40a28824b3959e19ad3c0a2ce0f0a35f Reviewed-on: https://chromium-review.googlesource.com/1107712 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Luc Ferron 66c2f4af 2018-06-19T10:27:57 Vulkan: Add test and fix clear on RGB8 with color masks Fixes the behavior of clearWithDraw to keep the alpha channel if we should not be clearing it. Bug: angleproject:2667 Change-Id: Id49c1d2ca30ecb5b5bdd8abe00825a6210cfacf6 Reviewed-on: https://chromium-review.googlesource.com/1106052 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Luc Ferron <lucferron@chromium.org>
Jiawei Shao a914f7ff 2018-06-08T10:07:41 Use ShaderMap in Statemanager11 - Part II This patch is the last patch of storing shader resources into ShaderMap in Statemanager11. This patch also splits several large functions into smaller one to make the code structure clearer. BUG=angleproject:2169 Change-Id: Id6d89976de0376b2479bd11d7551fc6f5b521c13 Reviewed-on: https://chromium-review.googlesource.com/1092511 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Lingfeng Yang 4004ae0e 2018-06-13T09:29:00 GLES1: Point rasterization (partial implementation) - Not included: Smooth points - GL_OES_point_sprite - Update test expectations. Note: due to different random sampling, edge cases were hit in UserClip. Disabling that test for now. BUG=angleproject:2306 Change-Id: If8367bc3321804b3299d3bc381d6a8e236754baa Reviewed-on: https://chromium-review.googlesource.com/1101910 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Lingfeng Yang <lfy@google.com>
Jamie Madill 953182ce 2018-06-19T14:56:50 D3D11: Suppress basic line XFB dEQP tests. These appear to be somewhat flaky on Windows. Bug: angleproject:2676 Change-Id: I62a6ccce9a6c7f1dcaacc7d09c7e01b69a7652bb Reviewed-on: https://chromium-review.googlesource.com/1106654 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Geoff Lang 41b453a4 2018-06-11T14:46:00 WGL: Track current context per thread. BUG=angleproject:2464 Change-Id: I5cce1f52dc3636478e3e2893f5323345b7f83501 Reviewed-on: https://chromium-review.googlesource.com/1097458 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Geoff Lang 1c3a94aa 2018-05-07T15:23:42 WGL: Update the Renderer to own the native GL context. Adds a RendererWGL which owns the native WGL GL context. Adds a ContextWGL which owns the RendererWGL and communicates the native WGL context back to DisplayWGL for making current. BUG=angleproject:2464 Change-Id: Ideb11c164da2c304f860c544a56450d0ad8fafac Reviewed-on: https://chromium-review.googlesource.com/1038131 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Luc Ferron d3ab3078 2018-06-19T09:55:04 Vulkan: Enable some more fbo.render dEQP tests Sometime we have a clear call with clearDepth+clearStencil but no attachment to clear. This was triggering the assert instead of just skipping the clear. Bug: angleproject:2597 Change-Id: I2d7750db919afe47cf02155f7c4afd0b02318bb1 Reviewed-on: https://chromium-review.googlesource.com/1106039 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Luc Ferron c94ba1d5 2018-06-18T11:26:28 Vulkan: Enable a bunch of texture related tests Also adds a small bugfix in PixelBuffer::stageSubresourceUpdateFromFramebuffer where we weren't using the right format for the pack pixels params. The format should be unsized so that the fastcopyfunc / colorwritefunc / colorreadfunc are found correctly if needed when packing pixels. Bug: angleproject:2653 Bug: angleproject:2501 Change-Id: Ie4aacc623ddc9583360ab0c99be19d3db2bdbf44 Reviewed-on: https://chromium-review.googlesource.com/1104395 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Luc Ferron 339b95ef 2018-06-12T10:21:52 Vulkan: Support RGB5A1 correctly Bug: angleproject:2649 Bug: angleproject:2597 Change-Id: I2fd7185463d92737454e383fbfb7992e8d68fe68 Reviewed-on: https://chromium-review.googlesource.com/1097221 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Brandon Jones 2a018158 2018-06-08T15:59:26 Change Validation For Indexed Draw Without ELEMENT_ARRAY_BUFFER Changed WebGL Validation to return INVALID_OPERATION any time an indexed draw call is made without a bound ELEMENT_ARRAY_BUFFER. Spec was changed to no longer require count > 0 in order to cause error. Make same spec change to GL_ANGLE_client_arrays extension. BUG:angleproject:2639 Change-Id: I23963f357119d081890aa5387b2863e1d42b92a5 Reviewed-on: https://chromium-review.googlesource.com/1093984 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Luc Ferron 7df52383 2018-06-18T14:38:23 Angle: Fix angle::Format's pixelBytes The X channel wasn't taken into account when calculing that pixel_bytes field, leading to some inconsistencies. Bug: angleproject:2597 Change-Id: I135e806518ec633d48c1535a48f305bd4d757887 Reviewed-on: https://chromium-review.googlesource.com/1104960 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Luc Ferron <lucferron@chromium.org>
Geoff Lang 2dabb4a3 2018-06-01T17:18:41 Make a context current when destroying it. The destructors of objects in a context assume that the context is current during destruction. If another context is current at this time, they can delete objects from other contexts. BUG=angleproject:2464 Change-Id: I813d092cc7f33a39c814edae5baa433733b4590c Reviewed-on: https://chromium-review.googlesource.com/1083371 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Frank Henigman 388f991c 2018-06-15T17:18:09 Vulkan: fix third_party path. run_code_generation.py stopped working, likely as a result of the big Vulkan repo reorganization. I fixed a path, regenerated everything (by temporarily hacking the script so it thought everything was dirty), and nothing changed except one comment. BUG=angleproject:2558 Change-Id: I5ac4c040ac1ec207098172303cc2f2507cccdecb Reviewed-on: https://chromium-review.googlesource.com/1103281 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tobin Ehlis <tobine@google.com>
Jamie Madill f5557acc 2018-06-15T09:46:58 translator: Store symbol type in TField. This allows us to keep a separate symbol type for each field in a struct. This can allow us to assign internal names to struct types. It could also allow us to add internal fields to user defined stucts. Bug: angleproject:2665 Change-Id: I6a129107d9db66c54b98b07684c3ead5801712ba Reviewed-on: https://chromium-review.googlesource.com/1101565 Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Luc Ferron 6ed167a9 2018-06-13T13:45:55 Vulkan: Implement conversion to uint16 for drawElements with ubytes Bug: angleproject:2646 Bug: angleproject:2659 Change-Id: If3c7a2b77d6acd18c8ca2522a427a43e10ed6db2 Reviewed-on: https://chromium-review.googlesource.com/1099420 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Luc Ferron c252d757 2018-06-14T09:32:40 Vulkan: Fill in glslang resources with our caps This allows us to enable these tests: dEQP-GLES2.functional.shaders.fragdata.valid_static_index Bug: angleproject:2594 Change-Id: I2c9a10063500d96d1c4bfb761f4b45590114b7ef Reviewed-on: https://chromium-review.googlesource.com/1100957 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Luc Ferron <lucferron@chromium.org>
Luc Ferron f6fd48fd 2018-06-18T08:11:27 Vulkan: Get uniform for array of matrices fix Bug: angleproject:2666 Change-Id: Ib50b0dd89abbd1d8d6c829a5ecf6438acc970da3 Reviewed-on: https://chromium-review.googlesource.com/1104305 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Luc Ferron <lucferron@chromium.org>
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>
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>
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>
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>
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>
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>
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>