Log

Author Commit Date CI Message
Jamie Madill ca2ff38b 2018-07-11T09:01:17 Refactor internal format pixel math methods. This removes the use of the ErrorOrResult class from these methods. This will enable more performant Error handling. Also cleans up the ANGLE_TRY_CHECKED_MATH macro to be more general. Bug: angleproject:2713 Change-Id: I349947d320907839ca88ec1f9251e6ddc3858a08 Reviewed-on: https://chromium-review.googlesource.com/1128920 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Geoff Lang 89ef177f 2018-07-10T11:19:43 EGL: Fix binding EGL_NO_SURFACE without surfaceless support. It was possible for ANGLE to call eglMakeCurrent with EGL_NO_SURFACE and a valid context when the client called eglMakeCurrent with EGL_NO_SURFACE and EGL_NO_CONTEXT. Fix this by always binding a surface when the driver has no native surfaceless support. Don't expose the surfaceless extension when it's not possible to support it (unvirtualized contexts and no native surfaceless support). BUG=860800 BUG=angleproject:2464 Change-Id: Id8af9638d4356dbd710c453c9f196b9f25a2bbf9 Reviewed-on: https://chromium-review.googlesource.com/1131555 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Jamie Madill 6cad7736 2018-07-11T09:01:17 Vulkan: Remove vk::ErrorOrResult. The ErrorOrResult pattern doesn't help much. Removing it enables the Error passing refactor in the Vulkan back-end. Bug: angleproject:2713 Change-Id: I4e8277ad856c785bf22b4d37b7ae880b534ef005 Reviewed-on: https://chromium-review.googlesource.com/1128919 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Jamie Madill 84c11c53 2018-07-11T10:12:39 Vulkan: Implement sampler structs as function args. Bug: angleproject:2494 Change-Id: Ia8e374846427b7140ab2565ae5b9b18409a76d96 Reviewed-on: https://chromium-review.googlesource.com/1117323 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Luc Ferron 5c8113d3 2018-07-10T15:03:01 Vulkan/D3D11: Improve blit framebuffer tests and fix bug in D3D11 - Improving the tests revealed a bug in D3D 11 Fast Path rendering. - These changes here are preliminary to implementing the blit for depth/stencil in Vulkan when using the viewport flipping. Bug: angleproject:2673 Bug: angleproject:2719 Change-Id: I6d55084e559d3110c8eeb0e7acb4e6fb09b6c1b5 Reviewed-on: https://chromium-review.googlesource.com/1132125 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Luc Ferron <lucferron@chromium.org>
Jiawei Shao a6a7842f 2018-06-28T08:32:54 ES31: Support atomic functions on D3D11 - Part I This patch is the first one of the implementation of atomic functions in D3D11. There are mainly two differences in the usage of GLSL and HLSL atomic functions: 1. All GLSL atomic functions have return values, which all represent the original value of the shared or ssbo variable; while all HLSL atomic functions don't, and the original value can be stored in the last parameter of the function call. 2. For HLSL atomic functions, the last parameter that stores the original value is optional except for InterlockedExchange and InterlockedCompareExchange. Missing original_value in the call of InterlockedExchange and InterlockedCompareExchange results in a compile error from HLSL compiler. To handle these differences, we plan to implement the translation in two steps: 1. Support direct translations from GLSL atomic functions to HLSL ones. Direct translation can only handle the following two situations: (1) The sentence is a GLSL atomic function call without requesting a return value and it is not atomicExchange or atomicCompSwap: e.g. GLSL: atomicAdd(mem, value); -> HLSL: InterlockedAdd(mem, value); (2) The sentence is a simple assignment expression: its right is a GLSL atomic function call and its left is a declared variable. e.g. GLSL: oldValue = atomicAdd(mem, value); -> HLSL: InterlockedAdd(mem, value, oldValue); 2. Support atomic functions in the situations that don't support direct translations. We will modify the intermediate tree to make direct translation work on all these situations. e.g. atomicExchange(mem, value); -> int oldValue; oldValue = atomicExchange(mem, value); int oldValue = atomicAdd(mem, value); -> int oldValue; oldValue = atomicAdd(mem, value); return atomicAdd(mem, value); -> int temp; temp = atomicAdd(mem, value); return temp; for (i = 0; i < atomicAdd(mem, value); ++i) -> int temp; temp = atomicAdd(mem, value); for (i = 0; i < temp; ++i) { ... temp = atomicAdd(mem, value); } int result = isTrue ? atomicAdd(mem, value) : 0; -> int result; if (isTrue) { result = atomicAdd(mem, value); } else { result = 0; } This patch completes Step 1 which mainly focus on the translation from GLSL atomic functions to HLSL ones. BUG=angleproject:2682 TEST=angle_end2end_tests Change-Id: I3b655b6e286dad4fd97f255f7fe87521c94db30c Reviewed-on: https://chromium-review.googlesource.com/1121835 Commit-Queue: Jiawei Shao <jiawei.shao@intel.com> Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Jamie Madill a2f043d8 2018-07-10T17:21:20 dEQP: Implement platform error handling. Also downgrades several Vulkan UNIMPLEMENTED() to WARN(). Also downgrades a couple D3D-specific errors to warnings. Also downgrades an undefined behaviour integer clear error to warning. Also includes suppressions for failing D3D11 ES 3.1 SSBO tests. Also includes suppressions for failing Android GLES format tests. Also includes suppressions for failing Android Vulkan buffer tests. Bug: angleproject:2552 Bug: angleproject:2567 Bug: angleproject:1951 Bug: angleproject:2405 Change-Id: Ie619085021d42012cd578b669f7ff4252ca41a58 Reviewed-on: https://chromium-review.googlesource.com/1062791 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Frank Henigman 569b9cb9 2018-07-07T21:44:35 Fix run_code_generation.py hash calculation. Open files with mode 'r' instead of 'rb' so the hash calculation produces the same results on Linux and Windows. Recalculate the hashes and proc_table_autogen.cpp which was out of date. BUG=angleproject:2711 Change-Id: I31562c96ce36e6df009c44c565fe9a3f1b5ba6c4 Reviewed-on: https://chromium-review.googlesource.com/1128549 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Omar El Sheikh efaa09fd 2018-06-27T15:40:21 Enabled Vulkan backend on as many tests as possible Bug: angleproject:2694 Change-Id: I299d71e0857065d0f60204977d395793f921deaa Reviewed-on: https://chromium-review.googlesource.com/1117702 Commit-Queue: Omar El Sheikh <theoking@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang cb8a921b 2018-06-28T12:30:36 Vulkan: Support RGB/BGR backbuffers emulated on RGBA/BGRA. BUG=angleproject:2692 BUG=angleproject:2523 BUG=angleproject:2715 BUG=angleproject:2716 Change-Id: I538b385f8b66fb97e176953b0fc4a6299849c005 Reviewed-on: https://chromium-review.googlesource.com/1118713 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Luc Ferron <lucferron@chromium.org>
Jamie Madill b01b4802 2018-07-10T12:43:57 Vulkan: Apply driver uniforms descriptor set. Also modifies the ProgramVk to initialize the Pipeline and Desriptor Set layouts with driver uniforms enabled. Bug: angleproject:2717 Change-Id: I24f7bf6f89b450d1dcb62dcfa7411555ebe3a937 Reviewed-on: https://chromium-review.googlesource.com/1131568 Reviewed-by: Luc Ferron <lucferron@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill c0bb36cb 2018-07-10T11:10:31 Vulkan: Add driver uniforms to shader. Bug: angleproject:2717 Change-Id: I542f3b0f2de21857d7fea0267f07d2d0eec78a8c Reviewed-on: https://chromium-review.googlesource.com/1131567 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Luc Ferron <lucferron@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill b7c4f2b9 2018-07-09T12:01:30 translator: Refactor interface block layout qualifiers. This will make it easier to insert internal uniform layouts in Vulkan. Bug: angleproject:2717 Change-Id: Ic1a76848337cc67a57698913c584d8596bf4f27e Reviewed-on: https://chromium-review.googlesource.com/1127300 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Luc Ferron <lucferron@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Tobin Ehlis 6ed6c71c 2018-07-10T12:02:30 Roll Vulkan repos fwd as of 7/10 Update Vulkan Layers/Loader/Tools/Header to latest versions as of 7/10. The layers were updated to correctly comprehend which device extensions are enabled which should fix a false error being flaged on negative Viewports in ANGLE. Bug: angleproject:2704 Change-Id: Ie51660f539beb249c3b11dc7e0d553ff7cabfde3 Reviewed-on: https://chromium-review.googlesource.com/1131919 Commit-Queue: Tobin Ehlis <tobine@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 69b47390 2018-07-10T12:06:53 Vulkan: Fix last parameter of viewport driver uniform. This was introduced in a prior patch. Bug: angleproject:2717 Change-Id: I8f34377cbb9cbede4237efb1610400a8ed20ae2a Reviewed-on: https://chromium-review.googlesource.com/1131566 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Luc Ferron b70ad524 2018-07-09T16:06:26 Vulkan: Fix all depth/stencil related failures due to Y flip - Fixes all deqp functional_fragment_ops_depth_stencil_* with Y flipping enabled. Bug: angleproject:2673 Change-Id: I94a4225dec8adf9113309e8b8b2c8aa61f6a2bb9 Reviewed-on: https://chromium-review.googlesource.com/1129857 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 30b84854 2018-07-09T09:18:50 SwapchainD3D: Take Display instead of Context. This cleans up another use of the proxy context. Bug: angleproject:2714 Change-Id: Icba5bf76a3e9f811ee571529de16fd8162c76b3a Reviewed-on: https://chromium-review.googlesource.com/1128928 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 7dc43051 2018-07-09T09:18:49 D3D: Move Incomplete Textures to Context9/11. This cleans up another usage of getProxyContext. Bug: angleproject:2714 Change-Id: I5337e30cdd96e282e355c727bb40cd30e049ec1a Reviewed-on: https://chromium-review.googlesource.com/1128926 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Frank Henigman <fjhenigman@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill e8cc4a64 2018-07-09T09:18:49 Surface: Don't use a BindingPointer for BindTexImage. The BindingPointer pattern isn't necessary. Every time we delete a Texture we call ReleaseTexImage internally. There shouldn't be any time that we keep an orphaned Texture is Surface. This cleans up one place where we were using the ProxyContext. Bug: angleproject:2714 Change-Id: I3b0fd2125d02ea7545922ec6da7f487451bed871 Reviewed-on: https://chromium-review.googlesource.com/1128925 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Luc Ferron aa2126c4 2018-07-09T15:36:36 Vulkan: Fix all copyTexImage/copySubTexImage cases with Y flip - Validated by running: -functional_texture_specification_basic_copytexsubimage2d_* -functional_texture_specification_basic_copyteximage2d_* With the flip flag enabled. Bug: angleproject:2673 Change-Id: I5a3041af79f9316256b0650ab7e3fd0e086e46e3 Reviewed-on: https://chromium-review.googlesource.com/1129820 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Luc Ferron 82eda93f 2018-07-09T15:10:22 Vulkan: Fix for framebuffer blit and Y flip - The depth/stencil related tests are now disabled since I found out that the tests are too simple to find issues if there is a flip since they use only a single color and no gradient / checked board. This is left to implement in the Vulkan backend later on. Bug: angleproject:2673 Change-Id: I8f7091d4b9c8c3bec0353ebab28304b6209ea350 Reviewed-on: https://chromium-review.googlesource.com/1129629 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Luc Ferron <lucferron@chromium.org>
Jamie Madill 853f8255 2018-07-09T09:18:50 DisplayImpl: Make waitClient/waitNative non-const. These methods can mutate the display resources. Necessary for getting rid of ProxyContext and for the Vulkan error refactor. Bug: angleproject:2714 Bug: angleproject:2713 Change-Id: Ibffb1a382ecb064daaa7c664f9fc65cbcf927b37 Reviewed-on: https://chromium-review.googlesource.com/1128927 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jacek Caban 63cc351f 2018-06-27T17:35:19 Fix PMurHash.cpp mingw clang 64-bit compilation. Tested with Firefox build, upstream bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1471632 Change-Id: I4b44847dfc69ee26cf2215b0a0b7573becfd369d Reviewed-on: https://chromium-review.googlesource.com/1117187 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Olli Etuaho d8b1c5c5 2018-06-20T12:08:46 Return ImmutableString from ArrayString() This makes the compiler a few kilobytes smaller, and prepares getting rid of TString altogether. BUG=angleproject:2267 TEST=angle_unittests Change-Id: I93a003fe27b99bef72f872fa1066e2e108f934c5 Reviewed-on: https://chromium-review.googlesource.com/1107713 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Omar El Sheikh 26c61b24 2018-06-29T12:50:59 Vulkan: Fix to unset NULL Driver after tests Updated ScopedVkLoaderEnvironment destructor to delete an environment variable that gets set during initialization of the renderer to load the Mock/Null driver for tests that request it. Bug: angleproject:2698 Change-Id: Ibbac795b6315971b303d97a55d24565a403d056c Reviewed-on: https://chromium-review.googlesource.com/1120940 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tobin Ehlis <tobine@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Tobin Ehlis c56adf60 2018-07-03T11:29:11 Roll Vulkan repos fwd as of 7/3 Update Vulkan Layers/Loader/Tools/Header to latest versions as of 7/3. This updates the ICD build to use inputs from the Header repo instead of copies of the file from its own repo. Those copies have been deleted and some of the generation scripts in Tools repo have been renamed. Also put script dependencies from Vulkan-Headers repo into a shared var that's imported by the other repos to minimize repeat code. Bug: angleproject:2704 Change-Id: I98a18be055482dccdad8468115b4045d09342bfb Reviewed-on: https://chromium-review.googlesource.com/1124966 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Tobin Ehlis <tobine@google.com>
Jamie Madill 834a3a10 2018-07-09T13:32:39 Vulkan: Add driver uniforms set. This will be used to specify the applied Vulkan. We will use this to implement OpenGL line rasterization rules. Bug: angleproject:2717 Change-Id: I3395bf620a01c4b84b19a00037d05f148e5523f3 Reviewed-on: https://chromium-review.googlesource.com/1120151 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Luc Ferron <lucferron@chromium.org>
Jamie Madill 534343ab 2018-07-09T16:43:16 Vulkan: Roll SPIRV-Tools and SPIRV-Headers. This fixes a bug in SPIRV-Tools validation. vec3s were not being packed properly. Affected some of the more complex dEQP shader tests. Unblocks better Debug error reporting. Bug: angleproject:2552 Change-Id: I83447813a4ae3347157321a30a91b5dee55ff6c1 Reviewed-on: https://chromium-review.googlesource.com/1129824 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Luc Ferron <lucferron@chromium.org> Reviewed-by: Tobin Ehlis <tobine@google.com>
Jamie Madill e4a6d7a3 2018-07-09T13:32:37 Vulkan: Make DynamicDescriptorPool single pool. This completes a prior refactor. DynamicDescriptorPool couldn't robustly handle multiple pools so only accept one as a parameter. We were already only using one at a time in practice. This removes the need to look up the pool index from the descriptor type which became problematic later on. Bug: angleproject:2717 Change-Id: I7fb92d5ab55bbe1f35b6b9cfcd8981cc1ca358f1 Reviewed-on: https://chromium-review.googlesource.com/1127157 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Luc Ferron <lucferron@chromium.org>
Geoff Lang caa55cd7 2018-07-05T13:19:35 Vulkan: Support EGL_ANGLE_surface_orientation for vertical surface flipping. This is a simpler way of flipping when the client is aware of the extension. This allows Chrome to render with the correct orientation. BUG=angleproject:2709 Change-Id: I52216b765a42930f2be043a07fe441a9f875a14d Reviewed-on: https://chromium-review.googlesource.com/1127342 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Luc Ferron <lucferron@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Jamie Madill 189ad877 2018-07-09T13:32:37 Return an Error from ContextImpl::syncState. This will allow the Vulkan back-end to call Vulkan commands that return VkResult within syncState. Bug: angleproject:2717 Change-Id: I05e1379e71acaac56bcc9493c8561e82da000934 Reviewed-on: https://chromium-review.googlesource.com/1120150 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Luc Ferron <lucferron@chromium.org>
Tobin Ehlis d7890bca 2018-06-29T11:57:22 Skip noop draws in the frontend If a draw does not have enough vertices for its primitive count to produce a primitive then skip it. If an instanced draw has 0 instances or not have enough vertices for its primitive count to produce a primitive then skip it. This means a Point with 0 vertices, a Line w/ 0-1 vertices, or a tri with 0-2 primitives. Updated some redundant code in the D3D11 backend. Draws below the minDrawCount will no longer be passed to the backend so updated the associated state in StateManager11 to only track the case where all primitives should be culled due to GL state settings. BUG=angleproject:2568 TEST=functional_transform_feedback_basic_types_interleaved_lines_lowp_int Change-Id: I9faa767c12004fcdec923ec70a8ee5615d789813 Reviewed-on: https://chromium-review.googlesource.com/1120849 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Luc Ferron 44a3cf49 2018-07-09T09:40:57 Vulkan: Flip on Y, fix for MaxTextureSizeTests - This change fixes the tests that were failing in angle_end2end_tests - MaxTextureSizeTest.* Bug: angleproject:2673 Change-Id: I9c671b8be0e2360a80f6298897ec298c6e998863 Reviewed-on: https://chromium-review.googlesource.com/1128811 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Luc Ferron 1a135adc 2018-07-04T10:35:31 Vulkan: Fix how the viewport is calculated with Y flip - This fixes all ViewportTest.* and MipmapTest.* - Tests left to fix in end2end: - BlitFramebuffer* - MaxTextureSizeTest.* - PointSpritesTest.* Every other test in angle_end2end_tests are working. Bug: angleproject:2673 Change-Id: I162083bc847c15fa5490ab524ad4c22747d232ea Reviewed-on: https://chromium-review.googlesource.com/1126333 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill c2136b67 2018-07-09T10:35:33 Allow constexpr initialization of PackedEnumMap. By making mData public we can use aggregate initialization. The syntax is the same as for initializing a std::array. It might be possible to also use std::map initialization syntax using a list of pairs. That is left for a follow-up. Bug: angleproject:2568 Change-Id: I30a6f280172cb197208d14b1a53b9cc12b7834d8 Reviewed-on: https://chromium-review.googlesource.com/1127181 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tobin Ehlis <tobine@google.com>
Olli Etuaho 8fbd9d96 2018-06-21T15:27:44 Use ImmutableString in ImageFunctionHLSL This code is analoguous to the code in TextureFunctionHLSL and is now implemented in a similar manner. BUG=angleproject:2267 TEST=angle_unittests, angle_end2end_tests Change-Id: Ie3503766217dad4f3848f2d4b2fc3f62b3edce0c Reviewed-on: https://chromium-review.googlesource.com/1110366 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Geoff Lang 7e585118 2018-07-04T15:49:02 Vulkan: Implement eglWaitClient using a finish. In the future this can be implemented with a flush. BUG=angleproject:2707 Change-Id: I1dd4eae9551f7797865e6e17e6caa77f6ec5a9b2 Reviewed-on: https://chromium-review.googlesource.com/1126457 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Luc Ferron <lucferron@chromium.org>
Jamie Madill bea35a63 2018-07-05T11:54:10 Vulkan: Use Scoped resource init helper. In a few places we initialize resource on the stack in the Vulkan back-end. When we do this we should use a RAII wrapper so that if we generate an error and unwind the stack we can auto-release the object. This fixes a bug that was being triggered by an unexpected failure on Present with the Vulkan back-end on Intel. There are several other places in the code that should be modified to use the new wrapper. Bug: angleproject:2690 Change-Id: I49a1c5516756f8b7dba833aca65926aa7b8bd5c6 Reviewed-on: https://chromium-review.googlesource.com/1118610 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 072c3519 2018-07-04T15:50:12 Fix missing return when validation fails in eglWaitNative. BUG=angleproject:2707 Change-Id: Ibd70437e3a40a9a63b78ac9a4546c97611a97ba5 Reviewed-on: https://chromium-review.googlesource.com/1126458 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang b1cc789c 2018-07-05T15:05:21 Finish populating the new_hashes map after finding a dirty input. any_input_dirty would return early when finding a dirty input and not finish filling the new_hashes map. This would require multiple runs of the code generation script to fully generate all the outputs. BUG=angleproject:2695 Change-Id: Ie62190efe2765df432b0a535fb8d33ed2ffa66a7 Reviewed-on: https://chromium-review.googlesource.com/1127439 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 9a257801 2018-07-05T14:31:08 Write relative paths with forward slashes to the code generation hashes. This should avoid generating diffs when running the code generation with different source directories or on different platforms. BUG=angleproject:2695 Change-Id: I67776883bdbeb867a49bea00f16998c04f7857b4 Reviewed-on: https://chromium-review.googlesource.com/1127355 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 5695a5b2 2018-07-05T14:29:30 Allow the run_code_generation.py script to be run from any directory. BUG=angleproject:2695 Change-Id: I9a083bf67b17ca0dc1ee213b75caa4ecece62f00 Reviewed-on: https://chromium-review.googlesource.com/1127354 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang be7e455c 2018-07-05T14:47:39 Vulkan: Regenerate builtin shaders. BUG=angleproject:2691 Change-Id: Iafb1b4828fa0d54974bfb9d11a436ccaa910b942 Reviewed-on: https://chromium-review.googlesource.com/1127356 Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 62edcce8 2018-07-04T12:43:39 Vulkan: Initialize the max pbuffer size members of Config. Pass the VkPhysicalDeviceProperties to GenerateDefaultConfig to initialize the pbuffer size limitations in a platform independent way. BUG=angleproject:2622 Change-Id: Id99bc505a1965cc037c5dcd65af031c1c655d424 Reviewed-on: https://chromium-review.googlesource.com/1126406 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Luc Ferron <lucferron@chromium.org>
Luc Ferron bf6dc379 2018-06-28T15:24:19 Vulkan: Flip viewport on y for the backbuffer only - Hide the implementation behind a feature flag, currently disabled permanently as I'm working on fixing the different failures. - SimpleOperationTest.* passing Bug: angleproject:2673 Change-Id: Ic86520c3cc478d62bebbaeaf4c6b33c439a67b0f Reviewed-on: https://chromium-review.googlesource.com/1119089 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 258e8718 2018-06-21T17:29:19 EGL: Support unvirtualized contexts and unsafe multithreading. -Add a new renderer and context type to own native EGL contexts and handle destruction. -Track the current EGL surface and context per-thread. -Support unvirtualized contexts by creating a new context for every client context. BUG=angleproject:2464 Change-Id: Ib2efa1d88c771b4a78625e0e3546f6ed95678c91 Reviewed-on: https://chromium-review.googlesource.com/1110943 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Geoff Lang 838f304d 2018-06-27T10:43:41 EGL: Skip creation of the dummy pbuffer when surfaceless is supported. BUG=angleproject:2464 Change-Id: If1834cf88aed0ffae12bb584d6936c6c09a296a0 Reviewed-on: https://chromium-review.googlesource.com/1117022 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Luc Ferron a72ebeba 2018-06-28T11:16:58 Vulkan: Fix issue in DynamicBuffer - We weren't keeping track of mSize correctly, causing some very specific index buffer bindings to fail. The size returned when allocating the buffer can be a bit different than the size requested, and that extra space between mSize and the allocated size was not meant to be used, causing errors in the validation layers. Bug: angleproject:2580 Change-Id: I47eb7b8de6f4f657de14385b77ba6a459add599b Reviewed-on: https://chromium-review.googlesource.com/1118607 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Luc Ferron <lucferron@chromium.org>
jchen10 2b06054d 2018-07-03T14:48:13 Vulkan: Insert a barrier after buffer copy According to the spec(section 18.1), all copy commands are treated as transfer operations for the purposes of synchronization barriers. Some tests are flaky on Intel platform without such barriers. Bug: angleproject:2663 Bug: angleproject:2664 Change-Id: Ic8bc9a0eb000670342c0df0449257324f04ad1f8 Reviewed-on: https://chromium-review.googlesource.com/1124103 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jeff Gilbert 92da844e 2018-06-29T19:06:56 More includes missing from sources. Bug: angleproject:2699 Change-Id: I234e0aee2526750a442ad74b5c57f7c536310786 Reviewed-on: https://chromium-review.googlesource.com/1123880 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill a72f400c 2018-06-29T17:05:01 run_code_generation: Compare hashes instead of mtime. Using mtime is fundamentally flawed when working with git. Replace these flaky checks with hash comparisons. The hashes are stored in an autogenerated json file that will be stored in the repository. This makes the run_code_generation script robust against any and all input changes. It also removes the need to track script outputs as dependencies. Bug: angleproject:2697 Change-Id: I60f2a87a8680b1f775ad678b05112f5b16c7dde7 Reviewed-on: https://chromium-review.googlesource.com/1120159 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Oystein Eftevaag 33e72d99 2018-06-29T10:49:38 Removed an assert about addTraceEvent not returning empty handles. There are several codepaths where this is the expected result: * Other threads disabling the category in question. * The TraceBuffer being fill and no new chunks available. * Perfetto being active as the tracing backend. In all cases, the single use of a handle to a TraceEvent is TraceLog::UpdateTraceEventDuration which handles the above cases correctly. BUG=844421 Change-Id: Ieaf3aa5c913cee8c51cfea637907d5bc3b560ceb Reviewed-on: https://chromium-review.googlesource.com/1120841 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 1266d20a 2018-06-29T09:11:34 Vulkan: Add Features class. This class will control optional features in the Vulkan back-end. It allows toggling the feature support from a centralized place. This can be useful for performance or correctness testing. Add a placeholder feature for line segment raster. We can also use a feature for enabling backbuffer flipping. Bug: angleproject:2598 Bug: angleproject:2673 Change-Id: I8ddec2dba2181d5b014267be68aee9d2cb015ccf Reviewed-on: https://chromium-review.googlesource.com/1120149 Reviewed-by: Luc Ferron <lucferron@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Yuly Novikov 6ef24d78 2018-06-29T16:03:34 Update dEQP EGL expectations for Vulkan on Linux. Bug: angleproject:2635 Change-Id: I74641edc405aa158a2acc0ac619343bf316454bd Reviewed-on: https://chromium-review.googlesource.com/1121076 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill 71a151fd 2018-06-26T16:07:42 Vulkan: Use TSymbolTable in ExtractStructSamplers. This will enable more code reuse when handling sampler struct as function arguments. We can add the sampler structs to the symbol table stack when they are function arguments. Bug: angleproject:2494 Change-Id: I9eeb1d3822e34cd43535e1b16a98864545755d22 Reviewed-on: https://chromium-review.googlesource.com/1117322 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Jamie Madill cdf50444 2018-06-26T15:05:42 Add test for sampler struct rewriting indexing. The concern originally was that rewriting sampler structs could lead to incorrect behaviour for indexing. The test attempts to cover this but doesn't repro. It possibly is not an issue. Bug: angleproject:2494 Change-Id: Ibc34b08b5cee3b6ff82d150a64f1768aae64396f Reviewed-on: https://chromium-review.googlesource.com/1117321 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Luc Ferron <lucferron@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Luc Ferron fa5d84be 2018-06-28T10:40:04 Vulkan: Fix offset handling for vertex buffers Bug: angleproject:2580 Change-Id: I22f62a8549e998275224a6b1f9c133cf31ebb5b9 Reviewed-on: https://chromium-review.googlesource.com/1118419 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 475ef575 2018-06-27T15:54:18 Vulkan: Refactor config generation out of platform specific code. Permuatations of configs are now generated in platform-independent code and a DisplayVk callback is used to determine native support. BUG=angleproject:2692 Change-Id: Iad450c1a3275239d6bcbc350e8dd8e37470fa8e0 Reviewed-on: https://chromium-review.googlesource.com/1117563 Reviewed-by: Luc Ferron <lucferron@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Jamie Madill ac1a377d 2018-06-26T15:05:38 Vulkan: Split tree ops into separate files. This makes the design consistent. Added new files for NameEmbeddedStructs and RewriteStructSamplers. Bug: angleproject:2665 Bug: angleproject:2494 Change-Id: If7d22a6ce9a86d51d38f68787006b7a28957861e Reviewed-on: https://chromium-review.googlesource.com/1108086 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Geoff Lang f3062c3e 2018-06-28T13:33:15 Update dEQP EGL expectations for Vulkan on Windows. BUG=angleproject:2635 Change-Id: If2a4893c4099dc4a1b699ba4e4e3ca2c0f946af8 Reviewed-on: https://chromium-review.googlesource.com/1118906 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Courtney Goeltzenleuchter 1ee33552 2018-06-28T10:22:49 Emulate eglSwapBuffersWithDamageKHR when needed When driver does not support the EGL_KHR_swap_buffers_with_damage extension, call regular eglSwapBuffers instead. BUG=angleproject:2464 Change-Id: Ie3a395d37b61ef5ac65b098b312e9ead1c8bc799 Reviewed-on: https://chromium-review.googlesource.com/1117832 Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 1698d7d4 2018-06-27T14:09:58 Vulkan: Roll glslang (June 2018). Includes potential bug fixes. Bug: angleproject:2691 Change-Id: I9a22dbdc96045df36de086f7edf7c914bae1cdbf Reviewed-on: https://chromium-review.googlesource.com/1117320 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Luc Ferron <lucferron@chromium.org> Reviewed-by: Tobin Ehlis <tobine@google.com>
Luc Ferron be30c4fb 2018-06-21T09:43:08 Vulkan: Framebuffer blit support for depth/stencil cases Bug: angleproject:2643 Change-Id: Ib50e4051f5b3965c2a752cf2cd45d3470312cdcf Reviewed-on: https://chromium-review.googlesource.com/1115370 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill a0adaf98 2018-06-27T15:49:35 Vulkan: Work around unused sampler validation. Work around glslang's improved validation by using a valid but very high layout binding. This should be more robust. Tests already passing: dEQP-GLES2.functional.state_query.shader.uniform_value_sampler Bug: angleproject:2691 Bug: angleproject:2612 Bug: angleproject:2600 Change-Id: Ie78ae89f76cc0a42806724b622d7f201241bd041 Reviewed-on: https://chromium-review.googlesource.com/1117477 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Luc Ferron dc66ef9d 2018-06-28T08:18:47 Vulkan: Add simple test to trigger issue of buffer.write tests Bug: angleproject:2580 Change-Id: I08666d1c5fc7ce977e9623a09ef08645b02339f3 Reviewed-on: https://chromium-review.googlesource.com/1117913 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Luc Ferron <lucferron@chromium.org>
Geoff Lang 9e14164d 2018-06-27T11:43:18 VK: Support pbuffer surfaces. TEST=PbufferTest TEST=dEQP-EGL.functional.color_clears.single_context.gles2.rgba8888_pbuffer TEST=dEQP-EGL.functional.color_clears.multi_context.gles2.rgba8888_pbuffer TEST=dEQP-EGL.functional.render.single_context.gles2.rgba8888_pbuffer TEST=dEQP-EGL.functional.render.multi_context.gles2.rgba8888_pbuffer BUG=angleproject:2622 Change-Id: I99f64689c274fbb565b365f4a05b52252528fc38 Reviewed-on: https://chromium-review.googlesource.com/1117030 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 57186360 2018-06-27T13:29:40 Roll SPIRV-Tools and SPIRV-headers (June 2018) Bug: angleproject:2691 Change-Id: I754431c7cf7cdbb5b631e9db90b7c1471b5bf9ee Reviewed-on: https://chromium-review.googlesource.com/1117309 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Luc Ferron <lucferron@chromium.org> Reviewed-by: Tobin Ehlis <tobine@google.com>
Luc Ferron a26de250 2018-06-28T07:24:38 Vulkan: Enable dEQP a passing test in buffer.write Bug: angleproject:2580 Change-Id: I74ab2dec41400781c7236e08f008e2240386c80e Reviewed-on: https://chromium-review.googlesource.com/1117911 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Luc Ferron <lucferron@chromium.org>
Luc Ferron 2f6f1df4 2018-06-28T07:17:46 Vulkan: Enable the remaining dEQP fbo.render tests They were already passing, just forgot to enable them it seems. Bug: angleproject:2597 Change-Id: I10c478f825d2efa7f4b680cd106b213056688319 Reviewed-on: https://chromium-review.googlesource.com/1118014 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Luc Ferron <lucferron@chromium.org>
Luc Ferron 26581113 2018-06-21T09:43:08 Vulkan: Support for framebuffer blit extension - No support for formats that do not support vulkan blit. - The depth/stencil format used in the tests do not support blit, so currently no tests validate the depth/stencil blits. Bug: angleproject:2643 Change-Id: I89a0d5b102396d8254fe272681326615bd6800ed Reviewed-on: https://chromium-review.googlesource.com/1111611 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Luc Ferron <lucferron@chromium.org>
Lingfeng Yang f97641c1 2018-06-21T19:22:45 GLES1: Texture parameters Note: minimum buffer size is now checked for texture parameters in GLES2. - Mipmap generation hint - Crop rect - Update test expectations BUG=angleproject:2306 Change-Id: Ib459b8191111732a1326b44f2226b72ca297325a Reviewed-on: https://chromium-review.googlesource.com/1111575 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Lingfeng Yang <lfy@google.com>
Geoff Lang dcb6e927 2018-06-27T13:18:32 Add initial supressions for dEQP EGL tests on Vulkan. BUG=angleproject:2635 Change-Id: I1e8f3c5c82d01d2b484cd49bd5924776f85d89e2 Reviewed-on: https://chromium-review.googlesource.com/1117261 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
James Darpinian 09303e44 2018-06-22T17:53:57 Treat transform feedback generic binding point specially The transform feedback generic binding point is not part of the transform feedback object and is not used for transform feedback. Only the indexed binding points are used. A buffer that is bound to the generic binding point should be usable for either transform feedback or non-transform-feedback purposes. Bug: 853978 Change-Id: I5b730212c65524188134ac34645328328664f0a4 Reviewed-on: https://chromium-review.googlesource.com/1112841 Commit-Queue: James Darpinian <jdarpinian@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
jchen10 82af620e 2018-06-22T10:59:52 ParallelCompile: Add entry points. Add the extension text, entry points and validations. BUG=chromium:849576 TEST=angle_end2end_tests Change-Id: I4c06ee30e4f4fe9bb1c1fecada747b9c78fed0ea Reviewed-on: https://chromium-review.googlesource.com/1103789 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jie A Chen <jie.a.chen@intel.com>
Yuly Novikov 943a38a5 2018-06-26T18:02:40 Skip ClearTest.ChangeFramebufferAttachmentFromRGBAtoRGB on Mac Nvidia and Intel Desktop GL. Bug: angleproject:2689 Change-Id: Id26ad3bd765f2410e76c79b870baf9c2ea4e2044 Reviewed-on: https://chromium-review.googlesource.com/1115770 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Geoff Lang e0234aeb 2018-06-26T17:06:25 GL: Don't print driver performance warnings. They can add an large ammount of spam to the logs of our test suites and have never been actionable. BUG=768943 Change-Id: Ibee3d7ece97cc03500b10ffa7bcaf3a4d7d51581 Reviewed-on: https://chromium-review.googlesource.com/1115700 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Yuly Novikov 1ff0ee75 2018-06-26T16:55:55 Skip MaxTextureSizeTest.SpecificationTexImage on Win Intel Vulkan Flakily crashes on Win10 FYI Exp Release (Intel HD 630) Bug: angleproject:2690 Change-Id: I1ddc9ba9ccfd25c9fcc85e580d2c88063f622a55 Reviewed-on: https://chromium-review.googlesource.com/1115618 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Geoff Lang 3f332584 2018-06-26T21:00:14 Revert "RendererGL: Limit warning output to 5 per message type." This reverts commit 7c37ca1836402b654dbbf5f00007e09bdf2a7051. Reason for revert: Causes crashes on Android. Original change's description: > RendererGL: Limit warning output to 5 per message type. > > BUG=768943 > > Change-Id: I8ed69c70d1914b56145c52ffe26f13193fb55e9e > Reviewed-on: https://chromium-review.googlesource.com/685278 > Commit-Queue: Geoff Lang <geofflang@chromium.org> > Reviewed-by: Corentin Wallez <cwallez@chromium.org> TBR=geofflang@chromium.org,cwallez@chromium.org Change-Id: I641ac5d508d238e275eaeef4fac4033d9015960d No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 768943 Reviewed-on: https://chromium-review.googlesource.com/1115658 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Frank Henigman 0bb02368 2018-05-27T20:35:11 Vulkan: add SCALED vertex formats to table. Add SCALED formats, which correspond to non-normalized integers, to Vulkan format table. Adjust test expectations accordingly. For now these new formats only work when the native Vulkan supports them. BUG=angleproject:2405 Change-Id: Ia6fdcbec61774536e6396cf713e46f28f49585c1 Reviewed-on: https://chromium-review.googlesource.com/1110710 Commit-Queue: Frank Henigman <fjhenigman@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Luc Ferron 0265e1ec 2018-06-26T14:57:10 Ozone: Skip test failing just on GLES Bug: angleproject:2689 Change-Id: Ide2e954fb2a65b23f2f25da40fd9a6b216c1c7a4 Reviewed-on: https://chromium-review.googlesource.com/1115373 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 60437586 2018-06-15T09:47:04 Vulkan: Fix unused sampler struct uniforms. These were not being parsed correctly. Turns on all uniform_api dEQP tests. Bug: angleproject:2612 Change-Id: I365bbe4cc52bb6a62fc47c53355962af38298b7f Reviewed-on: https://chromium-review.googlesource.com/1101573 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Luc Ferron <lucferron@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 3bb2bbea 2018-06-15T09:47:03 Program: Sampler uniform query in front-end. We have this information stored in the front-end sampler bindings. This solves sampler uniform query across the various back-ends. Turns on a bunch of uniform_api dEQP tests. Bug: angleproject:2612 Change-Id: If8752a26438595ad103598369df360e2f5e12d53 Reviewed-on: https://chromium-review.googlesource.com/1101572 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Luc Ferron <lucferron@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Frank Henigman 8c379f36 2018-06-21T19:55:05 Vulkan: enable some vertex data tests. Enable tests that don't use fixed or unnormalized short/byte vertex data, with some exceptions for Android and AMD. BUG=angleproject:2405 Change-Id: I9e37ebca3a873617f11fee065b7a0ba67f80998c Reviewed-on: https://chromium-review.googlesource.com/1111317 Commit-Queue: Frank Henigman <fjhenigman@chromium.org> Reviewed-by: Luc Ferron <lucferron@chromium.org>
Tobin Ehlis 5ba37427 2018-06-26T10:45:53 Move PlatformMethods constructor to header Move the default constructor for PlatformMethods struct from Platform.cpp into Platform.h. This allows other projects to include Platform.h and use PlatformMethods without having to link against ANGLE Bug: angleproject:2528 Change-Id: Icb4b9e149e78e9ec7be85804d711d8a2216e61c4 Reviewed-on: https://chromium-review.googlesource.com/1115212 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 87637b13 2018-06-15T09:47:02 Vulkan: Remove expectations for passing/missing tests. Doesn't exist: uniform_api.info_query.multiple_nested_structs_arrays.sampler2D_* Already passing: uniform_api.info_query.unused_uniforms.sampler2D_* uniform_api.value.initial.render.basic.samplerCube_* uniform_api.value.assigned.by_pointer.render.basic.samplerCube* uniform_api.value.assigned.by_value.render.basic.samplerCube* Bug: angleproject:2612 Change-Id: I4670d31f0d3b566d35985b73bfa2e78e8951d4f9 Reviewed-on: https://chromium-review.googlesource.com/1101571 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Luc Ferron <lucferron@chromium.org>
Jamie Madill b779b12c 2018-06-20T11:46:43 Add kEmptyImmutableString. We can use this instead of ImmutableString(""). Bug: angleproject:2665 Change-Id: I8b3d5d3075838b9f2caa1627071202e48a5fdc83 Reviewed-on: https://chromium-review.googlesource.com/1108085 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Luc Ferron <lucferron@chromium.org>
Luc Ferron 0bb940a8 2018-06-22T09:59:34 Vulkan: Edge case test and fix for alpha channel masks The contextVk color mask needed to be updated when we were syncing the state of the framebufferVk to make sure the right mask gets applied in the test described in ClearTest.cpp Bug: angleproject:2685 Bug: angleproject:2597 Change-Id: I575028aad4cd495bf4ec1484cc870940dcde92d5 Reviewed-on: https://chromium-review.googlesource.com/1112038 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Luc Ferron af7dc01c 2018-06-26T07:56:49 Context init should set DIRTY_BIT_DRAW_FRAMEBUFFER_BINDING Bug: angleproject:2685 Bug: angleproject:2597 Bug: angleproject:2687 Change-Id: I4cab6b70c3eae26b827cbbd00ecbfa8b4eddcd7c Reviewed-on: https://chromium-review.googlesource.com/1114779 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Luc Ferron <lucferron@chromium.org>
Geoff Lang 9c1b3e2b 2018-06-26T12:59:16 Partially revert "WGL: Support unvirtualized contexts and unsafe multithreading." Caused timeouts on the Skia bots when rolling ANGLE. BUG=angleproject:2686 BUG=angleproject:2464 Change-Id: I311b075522b86410d055e0b742342423eaa7eeb5 Reviewed-on: https://chromium-review.googlesource.com/1115216 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Jamie Madill f54e93d6 2018-06-20T11:46:42 Vulkan: Implement nested sampler structs. Nested structs are handled similarly as to non-nested samplers in structs. They are extracted and named according to the same pattern. Also enables functional.shaders.random.all_features.fragment* The remaining work in the samplers-in-structs implementation is to translate function arguments. Bug: angleproject:2494 Bug: angleproject:2595 Change-Id: If8170feb71137d4036d352b2b0078518647d48a1 Reviewed-on: https://chromium-review.googlesource.com/1101569 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Jamie Madill 10887984 2018-06-20T11:46:41 Vulkan: Sampler structs in arrays. Samplers are extracted from arrays of struct uniforms similarly as with non-arrays. They are named according to the variable name, array element and sampler field name. Nested structs to come later. Bug: angleproject:2494 Change-Id: Ie2f5f7bd1f747e73b3c6b505b2b1043cfe1073b5 Reviewed-on: https://chromium-review.googlesource.com/1101568 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Ian Elliott d07c52e2 2018-06-22T15:42:09 Initial Android implementation of GetSystemInfo Change-Id: Ia44413aa94906b89d4981063600cd3de0edacee8 Reviewed-on: https://chromium-review.googlesource.com/1108454 Commit-Queue: Ian Elliott <ianelliott@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 7c37ca18 2017-09-26T16:56:32 RendererGL: Limit warning output to 5 per message type. BUG=768943 Change-Id: I8ed69c70d1914b56145c52ffe26f13193fb55e9e Reviewed-on: https://chromium-review.googlesource.com/685278 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Jiawei Shao a75aa3b2 2018-06-21T10:38:28 ES31: Support compute shader shared variables in HLSL This patch implements 'shared' variables in compute shader on D3D11 back-ends. GLSL shared variables are translated into 'groupshared' ones in HLSL. Note that although HLSL allows initializing the variables with 'groupshared' qualifier, currently we do not initialize them because: 1. It is very slow to for d3d11 drivers to compile the compute shader if we add the code to initialize a shared variable with large array size. 2. It seems unnecessary to do so and in GLSL it is not allowed to initialize a shared variable in the declaration. (ESSL 3.1, Chapter 4.3.8) BUG=angleproject:2682 TEST=angle_end2end_tests Change-Id: Ica8247e1b98059968612a36e369718ef113a598c Reviewed-on: https://chromium-review.googlesource.com/1109587 Reviewed-by: Jiajia Qin <jiajia.qin@intel.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Yuly Novikov f5fd5c6c 2018-06-22T17:52:32 Remove FormatString for real Forgot to remove it from the header in https://chromium-review.googlesource.com/577922 Bug: angleproject:1644 Change-Id: I89f9c975b3fc3b7161edd2c2907549eaa672c223 Reviewed-on: https://chromium-review.googlesource.com/1112647 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Luc Ferron e9c0b262 2018-06-22T09:50:04 Vulkan: Add drawQuad to a sampler test Bug: angleproject:2675 Change-Id: I3774ca4602e9eea7c191e99a95939043ac0d8777 Reviewed-on: https://chromium-review.googlesource.com/1111901 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Luc Ferron 01048a07 2018-06-22T10:09:19 Vulkan: Cleanup InstancingTest logic and enable tests for Vulkan Bug: angleproject:2647 Change-Id: I3bf78c617a39191e725e0fa73befff4d42ac5962 Reviewed-on: https://chromium-review.googlesource.com/1111903 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Luc Ferron <lucferron@chromium.org>
Geoff Lang fec92a6f 2018-06-22T10:52:01 Temporarily skip MakeCurrentMultiContext test on Windows AMD OpenGL. BUG=angleproject:2464 Change-Id: Iaa4d075af6e92fd603f3dfaab0946daed2af64ab Reviewed-on: https://chromium-review.googlesource.com/1111909 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Jamie Madill e4e2d0c5 2018-06-22T08:25:05 Vulkan: Add RenderTargetVk::getImageForRead. This helper method will also transition the Image to the correct read layout. We will need to revisit the implementation when working on simulatenous read. Bug: angleproject:2539 Change-Id: Id61404460f3ef0dbb054e6ac2dfc0b59adb78402 Reviewed-on: https://chromium-review.googlesource.com/1108378 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Luc Ferron <lucferron@chromium.org>
jchen10 16f391d4 2018-06-22T08:57:40 ParallelCompile: Update gl.xml Updated from https://raw.githubusercontent.com/KhronosGroup/OpenGL-Registry/master/xml/gl.xml. BUG=chromium:849576 Change-Id: I92520d53844f7fff7e68ca49207151d4fa69c79e Reviewed-on: https://chromium-review.googlesource.com/1111469 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>