Log

Author Commit Date CI Message
Jamie Madill 0cbfa586 2018-02-15T14:45:41 Vulkan: Implement basic Renderbuffer attachments. Creating an ImageView for color Renderbuffers allows us to render to them in a RenderPass. We will also need additional functionality to support depth/stencil Renderbuffers. Bug: angleproject:2347 Change-Id: I5d4f7d8242ad4fbca38cb08c0cf6b43edca57c8f Reviewed-on: https://chromium-review.googlesource.com/922456 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Frank Henigman <fjhenigman@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Olli Etuaho e80825ef 2018-02-16T10:24:53 Simplify built-in function node initialization Built-ins with no math op associated with them now have the op code EOpCallBuiltInFunction set. This makes initializing built-in function nodes simpler, since they can always get the op code from the function symbol. We also no longer look for functions in inner scopes, only from the global scope and from built-in functions. BUG=angleproject:2267 TEST=angle_unittests Change-Id: I55a2642f34bb3c8b8f13183c95fa509ec3b9cfdb Reviewed-on: https://chromium-review.googlesource.com/923724 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Frank Henigman 17448956 2017-01-05T15:48:26 Vulkan: vertex attributes in client memory. Support vertex data stored in client memory passed to glVertexAttribPointer. Only GL_FLOAT data is supported at this time. Includes a simple test. BUG=angleproject:1683 Change-Id: I3bc0cdefe02b02c046b0e85822019a0f1762235e Reviewed-on: https://chromium-review.googlesource.com/425137 Commit-Queue: Frank Henigman <fjhenigman@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Nico Weber b66de58f 2018-02-15T14:02:33 Mark third-party code in ANGLE as no_chromium_code. That way, we don't have to explicitly disable Wimplicit-fallthrough for these targets, and when we add new warnings to chromium_code in the future, these targets won't need any special attention. Like https://chromium-review.googlesource.com/c/chromium/src/+/905222 Bug: 807632 Change-Id: I3a605dd3ef9ed7d8cfe9e36964c3433040bfc330 Reviewed-on: https://chromium-review.googlesource.com/922503 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Nico Weber <thakis@chromium.org>
Jamie Madill d7ebfb92 2018-02-15T16:34:29 Add missing is_fuchsia to system_utils selection. This fixes a build break because of 046fa0efc44d3ac5d. See: https://crrev.com/c/898591 Bug: angleproject:2333 Change-Id: I6a4cb60dd2d2958ea71aaa27f1429233c2787fb4 Reviewed-on: https://chromium-review.googlesource.com/922878 Reviewed-by: Scott Graham <scottmg@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill f618c9e5 2018-02-15T14:45:40 Vulkan: Add depth/stencil surfaces. This change lets us create egl::Surfaces from a D24S8 config. This is a bit hacky, because the spec only mandates 24 -or- 32 bit depth support, but not both or either individually. Will need follow-up work for proper EGL config setup. A single depth buffer is allocated for the entire set of swapchain images and is used with each. This also might be a problem if we're rendering to multiple frames at the same time. We'll likely have to revisit this in the future as well. This adds a new RenderTargetVk to the SurfaceVk class which points to the Depth/Stencil image. Since ImageViews must refer to either the depth or stencil, but not both, we'll need to address this when we get to implementing depth/stencil texture reads in shaders. Bug: angleproject:2357 Change-Id: Ibed0eed7e1d0efb272758dbfc79fa2c5aa93997f Reviewed-on: https://chromium-review.googlesource.com/919761 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Olli Etuaho b92f92a7 2018-02-15T19:14:59 Clean up dead insertion of unmangled symbols Unmangled names of built-ins are not inserted to the symbol table in a normal way, so the function to do that is not needed. BUG=angleproject:2267 TEST=compile ANGLE Change-Id: I68bae9a1f762ecc69ab31f04458a38c941b9d74c Reviewed-on: https://chromium-review.googlesource.com/922202 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Nico Weber b5db2b49 2018-02-12T15:31:56 Enable -Wimplicit-fallthrough for ANGLE. Also teach MSVC that ANGLE_CRASH() can't return. Also fix instances of the warning in build configurations where UNREACHABLE() can return (e.g. release without dcheck_always_on or debug). If the UNREACHABLE()s are truly unreachable, this change has no behavior change. Bug: chromium:810767 Change-Id: I68f3587cf3e268c3ef634dce7ae3d70399859d0f Reviewed-on: https://chromium-review.googlesource.com/914842 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nico Weber <thakis@chromium.org> Commit-Queue: Nico Weber <thakis@chromium.org>
Lingfeng Yang 4edce336 2018-02-14T19:01:31 GLES1: macOS: Add rpath to libGLESv1_CM.dylib This is to fix error messages when running GLES1 samples (and probably other apps) from different directories than the same one as where libGLESv1_CM.dylib is located. BUG=angleproject:2306 Change-Id: I24ab33eb1bc805c1e64efab9a0acbfcf10480d94 Reviewed-on: https://chromium-review.googlesource.com/920926 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Lingfeng Yang <lfy@google.com>
shinchiro 0bc6024a 2018-02-09T22:03:49 Fix mingw compile. Adjust a compile guard around posix_memalign. Bug: angleproject:2163 Change-Id: I1d2dca24b8a2b8e549df411b1611e9fe0ac9082d Reviewed-on: https://chromium-review.googlesource.com/920748 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Lingfeng Yang 710aa5c7 2018-02-08T10:57:55 GLES1: Mat4 transform library GLES1 has functions like glFrustum / glTranslatef which are baked 4x4 matrix operations. The purpose of this CL is to add those operations as library functions in ANGLE, to make it convenient later on. This is inspired by GLM and tested against GLM-generated numbers. BUG=angleproject:2306 Change-Id: I3b428a115a935ee4f0d00585ad38745a38cc128c Reviewed-on: https://chromium-review.googlesource.com/909578 Commit-Queue: Lingfeng Yang <lfy@google.com> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Yuly Novikov f3803d4f 2018-02-14T18:29:27 Fix standalone Linux build Need to include gtest before X11 to avoid defines conflict BUG=angleproject:2348 Change-Id: If758c53fb5ef010506f13165186110f00c099e07 Reviewed-on: https://chromium-review.googlesource.com/919687 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Geoff Lang 809b13ed 2017-11-07T15:33:46 StateManagerGL: Use dirty bits for framebuffer bindings. BUG=angleproject:2188 Change-Id: Icbe78f645b693a5b2ef555feffda0f618209e867 Reviewed-on: https://chromium-review.googlesource.com/757092 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Luc Ferron <lucferron@chromium.org>
Jamie Madill f4d693c0 2018-02-14T16:38:16 Vulkan: Cache clear color in ContextVk. This makes the current clear color a bit more accessible than using the current GL state clear color directly. It is stored in the Context using the Vulkan clear color struct. This also cleans up the attachment clear values in FramebufferVk and paves the way for depth/stencil clear when support for depth/stencil exists. Bug: angleproject:2357 Change-Id: I0553e4447249325115625a44e9f4b1623c7cb0bc Reviewed-on: https://chromium-review.googlesource.com/919550 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill 57fbfd80 2018-02-14T12:45:34 Vulkan: Pass RendererVk to Allocate helpers. Passing the Renderer pointer instead of the Context pointer makes these methods a bit easier to work with from the "EGL" sections of the code. This is a refactoring-only change to aid the Depth/Stencil implementation. Bug: angleproject:2357 Change-Id: Icbcc72a1daff4edd947a21672744498781cfc064 Reviewed-on: https://chromium-review.googlesource.com/919523 Reviewed-by: Luc Ferron <lucferron@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 12eb3d74 2018-02-14T12:34:45 Vulkan: Implement basic Renderbuffer creation. Bug: angleproject:2347 Change-Id: I56edfde2dbc020d5c792cc4f107aa4b9d6b71840 Reviewed-on: https://chromium-review.googlesource.com/905895 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Luc Ferron <lucferron@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Luc Ferron ee305913 2018-02-14T13:50:38 AngleWrangle: Suppress newly introduced flakyness Flakyness noticed there: https://ci.chromium.org/buildbot/tryserver.chromium.angle/mac_angle_rel_ng/ https://ci.chromium.org/buildbot/chromium.gpu.fyi/Mac%20FYI%20Release%20%28Intel%29/ Introduced in: https://chromium-review.googlesource.com/c/angle/angle/+/913108 Change-Id: I9cbd76c0472d023005ded9f957b304a4a769c619 Reviewed-on: https://chromium-review.googlesource.com/919547 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Luc Ferron 0aa1ffe3 2018-02-08T13:42:36 Vulkan: Autogen mandatory texture caps * This commit includes a JS file to execute on the spec and generate the JSON output of all the mandatory texture caps. Bug: angleproject:2348 Change-Id: I57e969915bdd0e7104e00a73fd3743ff1ecf0a6d Reviewed-on: https://chromium-review.googlesource.com/911615 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 8170eab7 2017-09-21T13:59:04 D3D: Implement robust resource init for Surfaces. BUG=angleproject:2107 BUG=angleproject:2317 Change-Id: I22260e1093dc6c09e4627c62a95ca4088c99e951 Reviewed-on: https://chromium-review.googlesource.com/678480 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Jamie Madill 26403533 2018-02-14T14:19:13 Revert "Vulkan: Add glslang validator to build." This reverts commit 560bfbcb7860267888db2e8933c187710f4e1512. Reason for revert: Appears to be causing a compile error on the ANGLE roll. https://chromium-review.googlesource.com/c/chromium/src/+/914429 https://ci.chromium.org/p/chromium/builders/luci.chromium.try/linux_chromium_compile_dbg_ng/11598 /b/swarming/w/ir/cache/builder/linux/src/out/Debug/../../third_party/llvm-build/Release+Asserts/bin/ld.lld: error: undefined symbol: std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::compare(unsigned long, unsigned long, char const*) const >>> referenced by StandAlone.cpp Original change's description: > Vulkan: Add glslang validator to build. > > This binary will be used to generate internal shaders for > clearing/blit/etc. > > Bug: angleproject:2339 > Change-Id: I13db7d7a4f5a0155798c9b9a6d2972dd69a680ef > Reviewed-on: https://chromium-review.googlesource.com/904683 > Commit-Queue: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Geoff Lang <geofflang@chromium.org> TBR=ynovikov@chromium.org,geofflang@chromium.org,jmadill@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: angleproject:2339 Change-Id: I7bcedf27831648d4c659294d12cab50f6ef9f33f Reviewed-on: https://chromium-review.googlesource.com/919141 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Luc Ferron <lucferron@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Yunchao He 9550c603 2018-02-13T14:47:05 Code refactoring for end2end tests. This change: 1) uses the new style ANGLE_SKIP_TEST_IF to skip tests. 2) replaces compile-time definition for OSX to skip tests by run-time function IsOSX() to skip tests, in order to align with ANGLE_SKIP_TEST_IF. 3) fixes a couple of typos. BUG=angleproject:2005 Change-Id: I5af77d82257536b9eb79e26afa502f5b91ff6d31 Reviewed-on: https://chromium-review.googlesource.com/915861 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Luc Ferron 2900c3be 2018-02-09T16:02:41 Vulkan: Add culling rasterization states tests and invert front face Bug: angleproject:2352 Change-Id: I0ac83f3173d22a2ee8bc98d2fd7bfa1875d46b8c Reviewed-on: https://chromium-review.googlesource.com/912358 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Luc Ferron <lucferron@chromium.org>
Luc Ferron d50537a7 2018-02-07T17:02:08 Vulkan: Texture caps map We are generating the caps map using various bits from the results of vkGetPhysicalDeviceFormatProperties. This contains all the information required to fill out "renderable", "texturable" and "filterable". Later we'll need to read from vkGetPhysicalDeviceImageFormatProperties as well to get the sampleCounts. The tests for now are not very meaningful since they use the same logic as the caps code to build the expected results, however as soon as we'll add the hard-coded list of mandatory texture caps, the test will be a good validator that we are not breaking anything. We only check the optimal set of flags since it is the most restrictive set. isTexturable = flags contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT isFilterable = flags contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT isRenderable = flags contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT OR VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT Bug: angleproject:2348 Change-Id: I9da0712190d2678d7e377d6fcd4ca83d23eefd38 Reviewed-on: https://chromium-review.googlesource.com/908712 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Olli Etuaho defe3937 2018-02-13T11:56:09 Store invariant varying names as ImmutableString This gets rid of a few extra ImmutableString to std::string conversions which makes the code clearer. There doesn't seem to be any significant effect on performance. BUG=angleproject:2267 TEST=angle_unittests Change-Id: I36ebbc8a4130ab8f9d6194feca83ec5dcbc95f78 Reviewed-on: https://chromium-review.googlesource.com/916141 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Olli Etuaho bf107be4 2018-02-08T18:43:03 Don't search for nonexistent brackets in InitializeVariables Array brackets are not included in ShaderVariable::name, so they don't need to be pruned from there either when using the name to look up the variable. BUG=angleproject:2267 TEST=angle_unittests --gtest_filter=*InitOutput*Array* Change-Id: I2b80a88c1d67f7f0dde12880bcfb35fb6d861cd0 Reviewed-on: https://chromium-review.googlesource.com/909109 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Tobin Ehlis d9ed9c1a 2018-02-12T14:50:10 Put Vulkan mock ICD json file in separate dir Create "icd" subdir in angledata directory where the Vulkan mock ICD json file is stored. This prevents potential loader conflicts with the layer json files. This change means that when running with the mock ICD a user will need to set their VK_ICD_FILENAMES env variable to now point to "<build_out_dir>/angledata/icd/VkICD_mock_icd.json" and make sure that the built mock icd library resides in the system's shared object search path. Bug: angleproject:2159 Change-Id: I802bb61a06a2f370bb1fa7a28d9c3548e5f94ecf Reviewed-on: https://chromium-review.googlesource.com/914819 Commit-Queue: Tobin Ehlis <tobine@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Olli Etuaho 7b17fa18 2018-01-29T11:12:57 Add a constexpr constructor for TVariable BUG=angleproject:2267 TEST=angle_unittests Change-Id: I9b7e01801caa7235ac5e2d4212ea92e38c1f774d Reviewed-on: https://chromium-review.googlesource.com/908752 Commit-Queue: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Geoff Lang 34a06269 2018-02-12T16:30:43 Remove usage of ANGLE_FALLTHROUGH in EmulatePrecision.cpp BUG=chromium:810767 Change-Id: Ic0dafc9038b14093fdb799fe382ba8275195c0cc Reviewed-on: https://chromium-review.googlesource.com/914804 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Jamie Madill b79f0351 2018-02-12T13:13:53 Add test for scissored clear. This simple test will be used to debug the Vulkan back-end's basic scissored clear functionality. Bug: angleproject:2356 Change-Id: I4bed68740ac57b3cc61f2dfe9164081b05bc31b3 Reviewed-on: https://chromium-review.googlesource.com/914230 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Brandon Jones f0d3b901 2018-02-08T08:57:14 Enable Multisample Sources in copyImageInternal For D3D11 This enables the copyTexImage2D and copyTexSubImage2D to handle multisampled source through through the blit path. We attempt to use a cached texture as an intermediate to resolve to, or create a new texture if there's a mismatch. The resolved texture is sent through blit11::copyTexture as normal. BUG:angleproject:2316 Change-Id: Ie3490b45b1a368300ee13fe5a0b35dc3920364ff Reviewed-on: https://chromium-review.googlesource.com/911889 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Jamie Madill 560bfbcb 2018-02-12T10:08:25 Vulkan: Add glslang validator to build. This binary will be used to generate internal shaders for clearing/blit/etc. Bug: angleproject:2339 Change-Id: I13db7d7a4f5a0155798c9b9a6d2972dd69a680ef Reviewed-on: https://chromium-review.googlesource.com/904683 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jiawei Shao 4ed05da2 2018-02-02T14:26:15 ES31: Add link validation on geometry shader itself This patch intends to support program link validation on geometry shader itself. A link error should occur when linking a program with a geometry shader that lacks input primitive or output primitive or the declaration of 'max_vertices'. This patch also adds the support of linking a program with geometry shader in angle_end2end_tests. BUG=angleproject:1941 TEST=angle_end2end_tests dEQP-GLES31.functional.shaders.linkage.es31.geometry.varying.rules.unspecified_* Change-Id: I25fb08514753102f5dd3ab86211c05d2ca4fd185 Reviewed-on: https://chromium-review.googlesource.com/898842 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 30414789 2018-02-12T15:16:02 Revert "GLES1: Link against angle_util_static instead of angle_util." This reverts commit da91c9a6d86c9ecd21c6ac724cf9576d7ee310d2. Reason for revert: Causes undefined behaviour in linker. Original change's description: > GLES1: Link against angle_util_static instead of angle_util. > > Attempting to work around missing .so on linux bots. > > BUG=angleproject:2303 > > Change-Id: I7fabad308afd420987369b460c13c00781113605 > Reviewed-on: https://chromium-review.googlesource.com/909028 > Reviewed-by: Geoff Lang <geofflang@chromium.org> > Commit-Queue: Geoff Lang <geofflang@chromium.org> TBR=geofflang@chromium.org,lfy@google.com # Not skipping CQ checks because original CL landed > 1 day ago. Bug: angleproject:2303 Change-Id: I8d3f3d9bd618d9604cec0f02424f788cab25b3f9 Reviewed-on: https://chromium-review.googlesource.com/913550 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Lingfeng Yang <lfy@google.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>
jchen10 046fa0ef 2018-02-02T14:51:36 Vulkan: Prepend layer path to VK_LAYER_PATH Directly setting this variable overwrites old value, as might be unexpected. Instead the path can be prepended to it, so that old value can still work. This is needed in order to use additional debugging layers, like the "api_dump" layer. See https://github.com/LunarG/VulkanTools for more. BUG=angleproject:2333 Change-Id: I5338a5b928ffa792cc9b6db5b69713320b5b0842 Reviewed-on: https://chromium-review.googlesource.com/898591 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Yunchao He 2f23f35a 2018-02-11T22:11:37 Clean up end2end tests for Intel OSX. BUG=angleproject:2205 BUG=angleproject:2041 BUG=angleproject:2155 Change-Id: I26bcbb63e147787cd342ec80a86d60cf230be4c9 Reviewed-on: https://chromium-review.googlesource.com/913108 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Olli Etuaho e5fe7aad 2018-01-29T12:06:11 Store builtin symbols as const pointers To do this we need two types of symbol table levels: A level for built-ins and a level for user-defined symbols. User-defined symbols are non-const because function symbols created based on function prototypes are changed when the function definition is parsed. On the other hand, we want to make built-in symbols constexpr, so we should only handle them through const pointers. This also gets rid of extra empty precision stack levels. Only one level is needed to store predefined precisions. BUG=angleproject:2267 TEST=angle_unittests Change-Id: I9f14b24c2cfce272f22c16e7a8dfb653b849cbeb Reviewed-on: https://chromium-review.googlesource.com/892879 Commit-Queue: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Yuly Novikov 8f27b050 2018-02-08T16:18:37 Update Android build instructions Build flags to enable Vulkan backend and some small updates. BUG=angleproject:2314 Change-Id: Ia99cc5a4b326a4cab115652cb12b3fb61033eeee Reviewed-on: https://chromium-review.googlesource.com/909723 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Yuly Novikov 6108b766 2018-02-08T18:17:43 Remove angle::Library and its usages No longer needed after https://chromium-review.googlesource.com/513519 Loading libGLESv2 interferes with API tracing tools BUG=angleproject:1892,angleproject:2343 Change-Id: I2ccbc99377d75d107fd644301402c52466dded21 Reviewed-on: https://chromium-review.googlesource.com/910094 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Nico Weber 41b072b6 2018-02-09T10:01:32 Prepare for -Wimplicit-fallthrough in ANGLE. Disable the warning for flex-generated output, which contains lots of intentional fallthrough. Fixes a bug where GL_SAMPLE_ALPHA_TO_ONE_EXT would fall through to GL_COVERAGE_MODULATION_CHROMIUM and hence behave like that. Fixes a bug in the D3D9 state management where invalidating DIRTY_BIT_POLYGON_OFFSET would also invalidate the stencil bits. One somewhat common incorrect pattern in ANGLE is nested switch statements that look like so: switch (a) { case a1: switch (b) { case b1: ... break; } case a2: ... } The assumption here seems to be that the breakk exits the outer case (here a1), while it in fact only exits the inner switch, so that we fall through to a2. In most places, I fixed this by adding an explicit `break` after the inner switch. This fixes a bug wher GL_PATH_JOIN_STYLE_CHROMIUM would fall through to GL_PATH_MITER_LIMIT_CHROMIUM in validation (but since the join style enum is always > 0, this happened to not have an effect in practice). This also fixes 87 bugs in GetLoadFunctionsMap() where invalid values would previously return an unrelated function map instead of the empty load function map. Bug: chromium:810767 Change-Id: Ib51388c73fbfc229160e2c10f8fb9364cc7c996c Reviewed-on: https://chromium-review.googlesource.com/911529 Commit-Queue: Nico Weber <thakis@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 61773640 2018-02-09T10:12:21 Skip PostSubBuffer calls that have zero size. BUG=810411 Change-Id: I8770b69fe4ab8a8f9bacd141c89e7f83f67f15fb Reviewed-on: https://chromium-review.googlesource.com/911589 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Luc Ferron f8be756e 2018-02-06T15:59:11 Vulkan: Implement blend states and add a simple test for it Bug: angleproject:2346 Change-Id: I462a2cb29ceda5563f48b4a3cc1d0aa20f4a49fc Reviewed-on: https://chromium-review.googlesource.com/907169 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 3e520b6f 2018-02-08T16:26:30 OpenGL: Disable forwarding debug groups and messages all the way to the driver. Because of virtualized contexts, the debug groups are not always popped in the same order that they are pushed leading to inconsistant state and sometimes GL_STACK_OVERFLOW errors from the driver. BUG=angleproject:2354 Change-Id: I0a001002149184dd882c3b17e8451bcd694608ba Reviewed-on: https://chromium-review.googlesource.com/909794 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Geoff Lang ed04619a 2018-02-08T14:57:14 Fix typo in bug link. BUG=angleproject:2205 Change-Id: I7ff1c3d0bb380c73c07dad0a30a4a4a19c17e397 Reviewed-on: https://chromium-review.googlesource.com/909577 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Geoff Lang bb514004 2017-04-28T14:08:38 Request RGBA8 configs by default for gtest dEQP. Previously, dEQP would just use the first config returned which was RGBA4 which is not very representitive of what our users would request. BUG=angleproject:2337 BUG=angleproject:1095 BUG=angleproject:2222 Change-Id: I5c9defc7ce1feaa49407557b88d9bb6b98571771 Reviewed-on: https://chromium-review.googlesource.com/490726 Reviewed-by: Luc Ferron <lucferron@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Geoff Lang 06b95582 2018-02-08T13:48:44 Re-supress VerifyMax*UniformVectors on Ozone Intel. BUG=angleproject:2205 Change-Id: Icff414dc7a521205fd3e39af4652b0fdef1cb900 Reviewed-on: https://chromium-review.googlesource.com/909291 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Geoff Lang da91c9a6 2018-02-08T11:46:39 GLES1: Link against angle_util_static instead of angle_util. Attempting to work around missing .so on linux bots. BUG=angleproject:2303 Change-Id: I7fabad308afd420987369b460c13c00781113605 Reviewed-on: https://chromium-review.googlesource.com/909028 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Jamie Madill e051ea72 2018-02-08T12:04:06 Vulkan: Update .gitignore with repo change. This was missing from a prior commit which moved the Vulkan DEPS. Bug: angleproject:2339 Change-Id: I16c2918af9396b5b935993d08d8f2ff925f3cb01 Reviewed-on: https://chromium-review.googlesource.com/909228 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Yuly Novikov bac02d76 2018-02-07T20:36:07 Vulkan: Fix data_deps on layers Was broken by https://chromium-review.googlesource.com/900096 BUG=angleproject:2339 Change-Id: I3c28a38619d83e7dcbb2349565517feb1758976c Reviewed-on: https://chromium-review.googlesource.com/907959 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Yunchao He 8e5ba8bb 2018-02-05T17:52:27 Clean up end2end tests for Intel Linux platform. Removed tests can pass on Intel Linux Desktop (Intel KabyLake, Ubuntu 17.04) with system default mesa and latest upstream mesa. BUG=angleproject:2205 BUG=chromium:680631 Change-Id: Ie3f0f34b9708a7dab81f66d9ec83a469658deee7 Reviewed-on: https://chromium-review.googlesource.com/901382 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
JiangYizhou 5420cb2a 2018-01-24T10:09:22 Suppress Intel specific deqp test cases Test deqp cases on Windows D3D and Linux on Intel HD 630. Add failed or crashed test cases to expectation files. BUG=801323 BUG=angleproject:2349 Change-Id: I495874f5e1841f6c7ce0f59224ed0da9465546ce Reviewed-on: https://chromium-review.googlesource.com/900708 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 0e65454d 2018-02-07T14:50:06 Vulkan: Fix circular dependency with resource updates. The old implementation would try to keep recording draw commands to the same framebuffer write operation even if the vertex array buffer data changed. This would lead to a broken dependency graph. Fix this by forcing any current render operations to create a new node in this case, giving a correct command graph. Old design: - render (creates a CommandBufferNode A) - update buffer (creates a CommandBufferNode B which happens after A) - render (to CommandBuffer A, and gives a circular dependency with B) New design - render (CommandBufferNode A) - update buffer (CommandBufferNode B, happens after A) - render (CommandBufferNode C, happens after B) This also renames some methods to try to clarify them. Bug: angleproject:2350 Change-Id: I6559bed4ed3f58f68771662422c5bef6a505282b Reviewed-on: https://chromium-review.googlesource.com/907416 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Frank Henigman <fjhenigman@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Geoff Lang 469708e7 2018-02-07T16:54:15 Add expectations for gles1 conformance tests. Mark all tests as failing until they are running on the bots. BUG=angleproject:2303 Change-Id: If9dfccd4a433ab039a1993c8e5a351b55532a0c8 Reviewed-on: https://chromium-review.googlesource.com/907630 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Lingfeng Yang <lfy@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill a1134ba8 2018-02-07T15:24:47 Vulkan: Relocate third-party libraries. (2/2) This makes the BUILD.gn source lists a lot simpler, since they no longer need to use a special path variable, but instead can use the correct relative paths. This will lead to further simplifications so we can hopefully upstream the Vulkan tools BUILD.gn files. Second part updates the build files and removes the old repositories. Bug: angleproject:2339 Change-Id: I37f5b42a0854ca49448ecbbb32c19c24df57f452 Reviewed-on: https://chromium-review.googlesource.com/905894 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Luc Ferron 00155d58 2018-02-06T10:48:47 Vulkan: Implement scissor test and add a simple test for it Bug: angleproject:2338 Change-Id: I699189fcd41feca1656c8553fdf4c1078421524d Reviewed-on: https://chromium-review.googlesource.com/904861 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tobin Ehlis b9d1daa0 2018-01-04T08:30:26 Add Vulkan mock_icd to the build Bug: angleproject:2159 Add Vulkan mock_icd from validation layer source to the standard Vulkan build. This can act as a NULL driver for Vulkan. Once the mock is built set VK_ICD_FILENAMES env variable to "<build_out_dir>/angledata/VkICD_mock_icd.json" to point loader to the mock driver and make sure the built mock icd library resides in the system's shared object search path. Change-Id: Iea86325cf076df75fa82a4974c8a3a6249cdf8e0 Reviewed-on: https://chromium-review.googlesource.com/850892 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill fd66b81e 2018-02-06T16:08:14 Vulkan: Relocate third-party libraries. (1/2) This makes the BUILD.gn source lists a lot simpler, since they no longer need to use a special path variable, but instead can use the correct relative paths. This will lead to further simplifications so we can hopefully upstream the Vulkan tools BUILD.gn files. First part duplicates the repositories in the new locations. Bug: angleproject:2339 Change-Id: I98d4711b6f0451372476c8089af2d044bf1f65d6 Reviewed-on: https://chromium-review.googlesource.com/902422 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Olli Etuaho b4cc49fb 2018-01-25T14:37:06 Use only ImmutableString in TextureFunctionHLSL BUG=angleproject:2267 TEST=angle_unittests, angle_end2end_tests Change-Id: I344ca0098762fcf665365c79d1f8fb04cb1b03f6 Reviewed-on: https://chromium-review.googlesource.com/887067 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Olli Etuaho 29bda815 2018-01-26T17:37:36 Move symbol table initialization to SymbolTable.cpp This is needed in order to make symbol table symbols statically allocated. BUG=angleproject:2267 TEST=angle_unittests Change-Id: Ia2d44fb30d49dc5d5c67643fe01280c89127a3c3 Reviewed-on: https://chromium-review.googlesource.com/889299 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Jamie Madill 57dd97aa 2018-02-06T17:10:49 Vulkan: Add helper for allocating image memory. Also refactors some memory index searching code that was duplicated. This will lead the way to having more code reuse for our Renderbuffers implementation in Vulkan, and for other types of Texture. Bug: angleproject:2347 Change-Id: I49cbd77328c01f945d66f92e6ec4ba7c552abeff Reviewed-on: https://chromium-review.googlesource.com/904684 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Olli Etuaho fbb1c792 2018-01-19T16:26:59 Store symbol names as a ImmutableString This will enable compile-time initialization of built-in symbols as well as reducing copying strings. Most of the code that deals with names is changed to use ImmutableString where it makes sense to avoid conversions. The lexer/parser now allocate const char pointers into pool memory instead of allocating TStrings. These are then converted to ImmutableString upon entering TParseContext. BUG=angleproject:2267 TEST=angle_unittests, angle_end2end_tests Change-Id: I244d6271ea1ecf7150d4f89dfa388a7745a1150c Reviewed-on: https://chromium-review.googlesource.com/881561 Commit-Queue: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Rahul Jain d775684a 2017-12-22T16:06:09 Added Documentation for running dEQP tests Old targets do not accept --deqp-case=<test> As they are written using google test To run individual dEQP test we need to use *_no_gtest targets angle_deqp_egl_no_gtest angle_deqp_gles2_no_gtest angle_deqp_gles31_no_gtest angle_deqp_gles3_no_gtest above targets accept -deqp-case=<test> wildcard Bug: angleproject:1944 Change-Id: I307a60c0cc41c446013bda42ccf0f909000f1ec8 Reviewed-on: https://chromium-review.googlesource.com/842284 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill b62a1c2a 2018-02-06T09:54:02 Vulkan: Reorganize BUILD.gn files. This moves the SPIRV-Tools and glslang and Validation layers build files into the root of the dep folder. Requires an upstream Chrome change to allow for a different path to execute scrips in GN. Also removes the vulkan_support subdirectory. Bug: angleproject:2339 Change-Id: I457b5b05547c092a1e7fef6dd0aaadd8068e2143 Reviewed-on: https://chromium-review.googlesource.com/900096 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Luc Ferron ceb7190b 2018-02-05T15:18:47 Vulkan: Fix bug in reuse of vertex input bindings Fix bug that used previously used vertex bindings. Now we use the current program mask to only initialize the vulkan pipeline with the active vertex input bindings. + adjust dEQP expectations Bug: angleproject:2334 Change-Id: Ie6176eee99f87dc7a95f664d28e8312b9cb274bc Reviewed-on: https://chromium-review.googlesource.com/902434 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Luc Ferron <lucferron@chromium.org>
Wez ca5c1059 2018-02-05T19:21:11 Replace a POSIX API call not supported by Fuchsia. Bug: chromium:809201 Change-Id: Iafc2e7efe92bcb977e5185901c073e499114a9f4 Reviewed-on: https://chromium-review.googlesource.com/903261 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Olli Etuaho bfeed4dd 2018-02-06T16:39:29 Add a compiler perf test shader to stress traversers Add a compiler perf test that's targeted at AST traversers. It triggers many traversers that mutate the AST and run multiple iterations particularly on the HLSL backend. BUG=angleproject:827 TEST=angle_perftests Change-Id: I75d89e8ae0fd7959f2c7fbb133c13ccde22abc37 Reviewed-on: https://chromium-review.googlesource.com/904622 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
jchen10 2d1c0a2b 2018-02-02T09:50:57 Vulkan: Fix gcc compile error Add 'no-unused-function' to compile glslang BUG=angleproject:2301 Change-Id: Iac741e007873fb718527514210649e6b658a63b8 Reviewed-on: https://chromium-review.googlesource.com/898394 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 44dcb911 2018-02-02T12:51:41 Decode R11 and RG11 EAC formats into 16-bit textures. 8-bit textures are not precise enough but no tests were failing because dEQP was using 4-bit backbuffers. Preserve the old decode-to-8-bits paths because they are still used by Chrome. BUG=angleproject:2336 Change-Id: Ieb651325e2a05c85bcc97f8e6d868afaf37aff0d Reviewed-on: https://chromium-review.googlesource.com/899701 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Geoff Lang bcb4c68d 2018-02-05T14:56:54 StateManagerGL: Rework query tracking (again) * Put the temporarily paused queries into a separate map, this should be separate functionality from the regular query tracking. * Pair down the number of functions that modify the current begin/end state. * Always pause all old queries and resume all new queries on context switch. BUG=805233 Change-Id: If37a9947b50feaa4e627070ce2a7895aa5034c0e Reviewed-on: https://chromium-review.googlesource.com/902426 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Geoff Lang a8fe18fc 2018-02-05T13:46:05 GL: Fix usage of glGetInternalFormativ. The Target was being passed cube map faces for cube map textures. The return value is an enum, not a bool. BUG=angleproject:1932 Change-Id: I975f510fc0f6bc4d29adcbb152b0329ecbcdfa92 Reviewed-on: https://chromium-review.googlesource.com/902192 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Luc Ferron b5420664 2018-02-02T10:03:22 Add end2end test for GL_TRIANGLE_FAN in SimpleOperationTest Bug: angleproject:2334 Change-Id: Idb4d651ade139372f40d690e523c43b20e859a5e Reviewed-on: https://chromium-review.googlesource.com/899024 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 7b7ada6a 2018-02-05T14:49:15 Add a dotfile_settings GN config file. This file will be imported into both ANGLE's and Chrome's .gn files so we can share some of the same settings. This will mean we no longer have to patch Chromium to make changes to the exec script whitelist. Bug: angleproject:2339 Change-Id: I2d7dd4237488ffecf5376643447ad95a0c1dbf98 Reviewed-on: https://chromium-review.googlesource.com/902324 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Luc Ferron 22294b04 2018-02-02T10:03:22 Add end2end tests for GL_LINES and GL_LINE_STRIP + Small refactoring in SimpleOperationTest.cpp to share the vertex/fragment shaders for all the tests. + Adjust deqp gles2 expectations to include dEQP-GLES2.functional.draw.draw_arrays.lines.single_attribute Bug: angleproject:2328 Change-Id: I7cab84b7914f503537eb5bfabb7ed58002e19846 Reviewed-on: https://chromium-review.googlesource.com/899046 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
JiangYizhou 338abb46 2018-01-30T18:16:30 Fix invalid heap exception in angle Running angle deqp test case, an invalid heap exception is thrown in angle on both linux and windows platforms. If build a nonsequential heap, and then erase any node of the heap, the heap is no longer valid. If using std::push_heap or std::pop_heap method next, this exception will be thrown out. So we should use std::make_heap after modifying the heap. TEST=angle_deqp_gles2_tests TEST=angle_deqp_gles3_tests TEST=HandleAllocatorTest.ReserveAfterReleaseBug BUG=angleproject:2326 Change-Id: I123fc81b3365c93081d0042c69b4e5114956fe0d Reviewed-on: https://chromium-review.googlesource.com/892961 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Yunchao He 14cb42c0 2018-01-24T14:11:19 Clean up passed end2end tests on Intel Linux platforms. Only one end2end test still fail for ANGLE issue 1346. BUG=angleproject:1346 Change-Id: Ibeefe600b21b6ae2056e304d18a8fc4071a48cbe Reviewed-on: https://chromium-review.googlesource.com/882294 Reviewed-by: Jiajia Qin <jiajia.qin@intel.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Geoff Lang 64d065e2 2018-02-03T12:26:19 Update dEQP expectations. BUG=angleproject:1487 BUG=angleproject:1442 Change-Id: Ib0913eb446a903199dafcd379c8dc0b9b969b8c0 Reviewed-on: https://chromium-review.googlesource.com/900555 Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang edcd1134 2018-02-03T10:28:52 Update dEQP expectations. BUG=angleproject:2341 BUG=angleproject:1442 BUG=angleproject:2324 BUG=angleproject:1941 BUG=angleproject:2342 BUG=angleproject:2137 Change-Id: I9e8fc45d6f3eb8cfc02513602898583af3f79eba Reviewed-on: https://chromium-review.googlesource.com/900547 Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 23c107e8 2018-01-30T09:54:39 Roll dEQP 455d82c60b0...5bc346ba2. Inclues several new ES 3.1 and EGL test sets. https://android.googlesource.com/platform/external/deqp/+log/455d82c60b0..5bc346ba2d5 Bug: angleproject:2319 Bug: angleproject:1961 Bug: angleproject:1028 Bug: angleproject:2320 Bug: angleproject:2321 Bug: angleproject:2329 Bug: angleproject:2330 Change-Id: I26bfb11a41073e94ecc75d20b07055eb4e946d43 Reviewed-on: https://chromium-review.googlesource.com/703159 Reviewed-by: Geoff Lang <geofflang@chromium.org>
Yuly Novikov 9a608c0e 2018-02-02T16:21:01 Vulkan: request coherent memory for StagingImage Otherwise vkInvalidateMappedMemoryRanges is needed, if allocated memory is not coherent, which was happening on Nexus 5X and was caught by validation layers. BUG=angleproject:2314 TEST=all angle_end2end_tests pass on Nexus 5X Change-Id: I008aae45b99c6ca87029ff1614913fae32f66ec3 Reviewed-on: https://chromium-review.googlesource.com/900203 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill df9ad2be 2018-02-02T12:40:01 Vulkan: Minor refactor to RendererVk::initialize. Bug: angleproject:2314 Change-Id: Ic3fa5f8ff5a0933e22b9fd5803b7ab3fbbfd449f Reviewed-on: https://chromium-review.googlesource.com/899686 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Geoff Lang c7295f4d 2018-02-01T13:05:25 Vulkan: Add dEQP ES2 expectations. Only run the info tests for now, skip everything else. Rename angle-vk config to angle-vulkan BUG=angleproject:2161 Change-Id: I0a57f1f8fbfa9d27c2c376d38685184622f0779b Reviewed-on: https://chromium-review.googlesource.com/896552 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Olli Etuaho 95ed1947 2018-02-01T14:01:19 Add a class for function lookups Using a purpose-built class for function lookups instead of using a combination of TFunction and a struct container for the this node and arguments makes the code clearer. BUG=angleproject:2267 TEST=angle_unittests Change-Id: I3f345d836abeaa7f84cc46b4b840fd06c7e2e1a7 Reviewed-on: https://chromium-review.googlesource.com/897363 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Luc Ferron 5c5d7dee 2018-02-01T14:45:54 Remove test restrictions on dEQP gles3 texture.compressedtexsubimage* tests Bug: angleproject:2327 Change-Id: I60ab5ba9d356e2720102c2166e2446002a8b674b Reviewed-on: https://chromium-review.googlesource.com/898066 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Luc Ferron <lucferron@chromium.org>
Luc Ferron 9dbaeba8 2018-02-01T07:26:59 Validation layer fixes for compressedtexsubimage* dEQP tests * Change order of validation in ValidateCompressedTexSubImage3D to get the errors in the same order as the dEQP tests are expecting them. * ES 3.1: Section 8.7, page 169: If the internal format is ETC2/EAC, the target must be a GL_TEXTURE_2D_ARRAY. * ES 3.1: Section 8.7, page 171: For sub textures, ET2/EAC formats also requires exact size to be validated. Bug: angleproject:2327 Change-Id: Ib049c70a52ed5683885a73fb06503898a85786d1 Reviewed-on: https://chromium-review.googlesource.com/897726 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Luc Ferron c0db9add 2018-01-29T13:52:42 Fix dEQP renderbuffer unspecified attachment test. Full test name: dEQP-GLES3.functional.state_query.fbo.framebuffer_unspecified_attachment_x_size_rbo Bug: angleproject:2321 Change-Id: I086aefe23a3141f58cc33149c9cd7bdc5eb98dba Reviewed-on: https://chromium-review.googlesource.com/891662 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Luc Ferron f70e0237 2018-01-29T10:32:47 Vulkan: Finish implementing caps limitations for ES 2.0 support Bug: angleproject:1577 Change-Id: Id22af039109b175f60f11cea1d6b8b2308c5cfff Reviewed-on: https://chromium-review.googlesource.com/891420 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jiajia Qin 8efd1268 2017-12-19T09:32:55 ES31: Add max combined interface blocks validation BUG=angleproject:1951 Change-Id: I9223964fa84cee3888fb7f5949c3e098fe2aa2b0 Reviewed-on: https://chromium-review.googlesource.com/890818 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Olli Etuaho 1776fd08 2018-01-31T11:46:52 Make use of CreateBoolNode in traversers This is just refactoring to clean up some duplicate code. A new test is added to make sure this doesn't break UnfoldShortCircuitAST. BUG=angleproject:1490 TEST=angle_unittests Change-Id: I108e646f71ba631cbd5dad2055b64e6a30159742 Reviewed-on: https://chromium-review.googlesource.com/894207 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Geoff Lang 15443eba 2018-01-31T16:41:53 Fix angle_gles1_conformance_tests compilation in Chromium. BUG=angleproject:2303 Change-Id: If22dd174d2a7b50b1416fa760494e99bbc813985 Reviewed-on: https://chromium-review.googlesource.com/894839 Reviewed-by: Lingfeng Yang <lfy@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Jamie Madill 61d5325e 2018-01-31T14:49:24 D3D9: Improve varying packing failure mode. D3D9 has a special limitation on varying packing, where each variable takes up a full register width, and cannot share space with other packed varyings. A bug was counting registers incorrectly on D3D9. Fix this by introducing a new limitation exposed to the ANGLE front-end via the gl::Limitations structure. Now varying packing will fail correctly in the ANGLE linking front-end with a more descriptive error message, as such: "Could not pack varying blah" "Note: Additional non-conformant packing restrictions are enforced on D3D9." Also change the packing so that input built-in variables are counted towards varying limits (e.g. gl_PointSize), except for gl_Position. On D3D9 we don't pack gl_PointSize, since it is used in a special extra PSIZE register. Also update some tests to be more robust. Bug: chromium:804799 Change-Id: I9027266a8b66a28626f038f259bff42ebf09dcd2 Reviewed-on: https://chromium-review.googlesource.com/889898 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
jchen10 191a84a8 2018-01-31T16:09:45 Fix VK_NOT_READY for vkAcquireNextImageKHR The error was not handled, as is the cause for the bug. So far we'd better wait until a valid image index is ready. BUG=angleproject:2301 Change-Id: I49a5545d0f2e0cf6cfbb3f604ab0602f8a131d12 Reviewed-on: https://chromium-review.googlesource.com/895402 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Qin Jiajia 9bf55527 2018-01-29T13:56:23 Fix the incorrect calculation for MAX_NAME_LENGTH The old implementation forgot to consider the instance array situation. This change will use unified method to calculate the interface block's MAX_NAME_LENGTH. It also removes some cases which have already passed from expectation files. BUG=angleproject:1920 TEST=angle_end2end_tests *program_interface_query.uniform_block.resource_list.block_array* *program_interface_query.shader_storage_block.resource_list.block_array* Change-Id: I6ef53951487e6366d69ecaa43e4df6824baad042 Reviewed-on: https://chromium-review.googlesource.com/890386 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Nico Weber 79de62c6 2018-01-31T10:47:14 Explicitly suppress -Wimplicit-fallthrough for angle and its deps. No behavior change since that warning isn't enabled anywhere yet, and it's opt-in. This is a prerequisite for https://chromium-review.googlesource.com/c/chromium/src/+/895726 Bug: chromium:177475 Change-Id: Ie5ffccd240a65646fe07e7d4475f63c4e8620746 Reviewed-on: https://chromium-review.googlesource.com/895728 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Nico Weber <thakis@chromium.org>
Olli Etuaho e13f7ebe 2018-01-26T17:08:49 Make NVIDIA constant register zero skip specific to VS It was found that the driver issue only affects vertex shaders, so the workaround can be simplified to affect only vertex shaders. BUG=angleproject:2294 TEST=WebGL conformance tests on passthrough command buffer, angle_end2end_tests Change-Id: Ie7fb4e75a3999e1de3d5c20d3de21e7ebb08f148 Reviewed-on: https://chromium-review.googlesource.com/889099 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Yuly Novikov 199f4294 2018-01-19T19:04:05 Vulkan: Enable on Android Add Android DisplayVk and WindowSurfaceVk variants. Build Vulkan backend and validation layers on Android if toolchain uses required NDK API level. Fix validation layers discovery to work on Android. BUG=angleproject:2314 TEST=angle_end2end_tests builds and runs on Nexus 5X, 12 VULKAN tests pass Change-Id: Iac2ec4ecd6470a7552f9f60c023ba1760aa090c5 Reviewed-on: https://chromium-review.googlesource.com/887797 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Geoff Lang bd6ae4aa 2018-01-29T15:51:18 Vulkan: Don't create zero-sized textures. Make sure the old resources are deleted but do not create new resources. BUG=angleproject:2161 Change-Id: Ia6685e5c67b160d9bcd503983aee9607b2bd402c Reviewed-on: https://chromium-review.googlesource.com/891644 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 513bc77d 2018-01-29T15:50:24 Vulkan: Allow dEQP to create Vulkan displays. BUG=angleproject:2161 Change-Id: Ia2d4b4edcf9a40621573f124d14147224bbd8431 Reviewed-on: https://chromium-review.googlesource.com/891803 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 13fd988c 2018-01-29T15:47:38 Vulkan: Add the Vulkan API to gpu_test_expectations. BUG=angleproject:2161 Change-Id: I7eda4d654cd0c0bc55ff344c5927d738ce592fe4 Reviewed-on: https://chromium-review.googlesource.com/891839 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Yunchao He 6969132c 2018-01-30T10:40:08 ES31: update deqp tests for renderbuffer integer formats. These deqp tests were fixed by this change: https://chromium-review.googlesource.com/c/angle/angle/+/878021. BUG=angleproject:2315 Change-Id: Ib0c73bdd3cc1dde554c8e30286c08f92d4f90fd2 Reviewed-on: https://chromium-review.googlesource.com/892402 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill efb5a5c8 2018-01-29T15:56:59 Vulkan: Fix swaps done right after a clear. We were missing a dependency insertion between the Framebuffer and its attachments, only during clear operations. Also renames a few methods to make them more consistent. Bug: angleproject:2264 Change-Id: Ic3af5b34b6de900ea2cc1b765f8d3d69f7f9a131 Reviewed-on: https://chromium-review.googlesource.com/891985 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 5dd4ad89 2018-01-29T13:53:43 Vulkan: Add a perf test for the Pipeline cache. This micro-benchmark can be used to measure the performance impact of changing the Pipeline cache. For instance, we can check if changing the size of the hash key affects performance significantly. Also updates the build files so angle_perftests can see vulkan.h, and makes the Vulkan headers an explicit source set. This test currently shows that a lot of time is spent in PMurmurHash, with some time also spent in memcmp. Bug: angleproject:2163 Change-Id: Ie8bb3e31d58590f373d28cbbb59f7e372b80cc29 Reviewed-on: https://chromium-review.googlesource.com/884882 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>