src/libANGLE/renderer/vulkan/BUILD.gn


Log

Author Commit Date CI Message
Jamie Madill ca50ad42 2020-05-01T16:37:00 Vulkan: Update VMA integration. This will allow ANGLE to share the same source location as Chromium. Bug: chromium:1074162 Change-Id: I3ea9820cc1fe9cd0bfec81d734168213e5c1bb0b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2176067 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Michael Spang 605af42e 2020-03-04T21:52:53 Vulkan: Move ICD overrides to a common place We also need the bundled ICDs and selection logic for certain tests that create a vulkan instance. If we don't, the tests will use default vulkan even if ANGLE is using swiftshader-vulkan. Tests of driver specific handle types (e..g opaque fd) will fail in this case. Bug: angleproject:4092 Change-Id: Iff089c9341b8b533ee8634923d0177c5dbcd5cc8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2088659 Commit-Queue: Michael Spang <spang@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Jonah Ryan-Davis 3cb9c4be 2020-03-13T13:56:47 Statically link vulkan-loader on Mac Disable angle_shared_libvulkan on Mac since we are the only client. Re-add codepaths to support this. Bug: angleproject:4477 Change-Id: Ie128c83adaae741636541bbfd6105d160d874a8d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2102954 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Tobin Ehlis <tobine@google.com>
Geoff Lang e5491253 2020-04-17T12:37:00 Don't redefine VMA_IMPLEMENTATION in build files and source VMA_IMPLEMENTATION is defined in the build files, it doesn't need to be redefined in vk_mem_alloc_wrapper.cpp. BUG=angleproject:2162 Change-Id: Ie4eceedd2dd3051f8431c7c8c86403250e93f98b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2154538 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 76d52be3 2020-04-07T09:14:29 Vulkan: Add VulkanMemoryAllocator to DEPS. Bug: angleproject:2162 Change-Id: If91ae40c1fe818a59d775bb2fa066227dd52859d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2139992 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Mohan Maiya <m.maiya@samsung.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Tim Van Patten 10ade024 2020-02-13T18:11:54 Create the ProgramExecutableVk Class The ProgramExecutableVk class is being created to collect data structures that are common to both ProgramVks and ProgramPipelineVks, as well as any shared functions. This allows callers to make Program-/ProgramPipeline- specific queries without needing to know exactly which responded by querying the current ProgramExecutableVk. This will also allow the necessary data structures to only be populated and stored within the ProgramExecutableVk when necessary and reused as often as necessary. A few things are being moved into this class: - mVariableInfoMap This information will be required to defer translating the SPIR-V until when the vulkan pipeline layout is determined and the actual locations are known.   This will also allow removing determining these locations twice (during GLSL->SPIR-V compilation and pipeline layout). - createPipelineLayout() - update*DescriptorSet() - Descriptor Set Layout lists - Pipeline Layout - Various other functions/members related to pipeplines, descriptor sets, etc. Bug: angleproject:3570 Change-Id: I4b5ababeafec865148783c8ffd4c15f659f4856d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2055656 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill a741abb9 2020-02-21T16:37:37 Vulkan: Rename CommandGraphResource to Resource. Also renames the h and cpp files to ResourceVk (to keep distinct from other resource.h/cpp files) and renames 'onResourceAccess' to 'retain'. Cleans up a few remaining mentions of the command graph in comments. Bug: angleproject:4029 Change-Id: Ifc8e880c8cea3fc48a4aec4730191c88aa35a076 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2065920 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Wez bb654cf8 2020-02-15T23:54:44 [fuchsia] Migrate to SDK-provided FIDL & package targets. Bug: chromium:1050703 Change-Id: I7c031f4501b567fde117c30b25f0bc071d4acc44 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2058948 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jonah Ryan-Davis 806ba566 2019-12-12T13:02:01 Extend ANGLE_iosurface_client_buffer to Vulkan backend for Swangle Implement an IOSurface-backed pBuffer surface for the Vulkan backend on Mac, through SwANGLE. ANGLE will pass a raw pointer to Swiftshader and handle locking/unlocking the IOSurface. Bug: chromium:1015454 Change-Id: Ia3ead55334736003d405b54ba8dcc7701706fbb2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1965434 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Ethan Lee 8c396a9c 2019-12-31T01:37:49 Ignore vulkan-loader dependency for GGP Bug: angleproject:4254 Change-Id: If551d96941bc4aa487514ba3d8f793dcf45131e9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1982785 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Eric Binet 5aed7c74 2020-01-08T17:42:21 Narrow point size range clamping to affected versions Bug: angleproject:2970 Change-Id: Ie14725b0cf30738d394320c24a72bc947135f5cf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1993204 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Tobin Ehlis 545c6142 2019-12-17T13:53:28 Vulkan:Lazily link libvulkan Move libvulkan to a data_dep as we no longer statically link it. Bug: angleproject:4225 Change-Id: I96458d4727d2d47d8c259ec51d91fd852067c059 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1972192 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tobin Ehlis 5fd73782 2019-08-09T11:46:46 Vulkan: Use volk to load vk* func ptrs Thanks to Jamie Madill for some fixes to get all CI test passing w/ volk. This change updates all ANGLE targets that use Vulkan to dyanmically link all of the VK entrypoints using the volk OSS library from https://github.com/zeux/volk. It's only two source files so baking them directly into ANGLE repo. Also it's used in both the tests and libANGLE trees so added to src/common/third_party/volk dir. Updated volk and the renderer to track latest instance and device that were loaded and renderer will refresh vk* function pointers if the current and previous device and/or instance don't match. This prevents errors in the test framework as we transition between backends, especially between VK HW & SwiftShader ICDs. This change rolls the Vulkan Loader forward to use the latest loader version which no longer allows static linking but requires dynamic linking. Bug: angleproject:3740 Bug: angleproject:4092 Bug: angleproject:4162 Bug: angleproject:4210 Bug: angleproject:4225 Change-Id: I8a0b7d24c9545bbfdfaa4b9357a9bfe6793e0140 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1965640 Commit-Queue: Tobin Ehlis <tobine@google.com> Reviewed-by: Tobin Ehlis <tobine@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill c4faeb79 2019-11-25T10:33:52 Use SwiftShader-based ICD generation. We moved this into the SwiftShader repo proper in: https://swiftshader-review.googlesource.com/c/SwiftShader/+/38491 We can remove ANGLE's custom rules. Also removes the layer generation script which was now unused. Also cleans up the Vulkan back-end BUILD.gn a bit. Bug: dawn:283 Change-Id: I490e8e8fc6fcadec58aca53a157ce7c4a47def3c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1932340 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jonah Ryan-Davis 5afd5ec6 2019-10-25T10:53:40 Vulkan support for MacOS (using SwiftShader) Created a new WindowSurface/Display for MacOS/Vulkan, along with some GN changes to get it working. Bug: 1015454 Change-Id: I3f7a12f173795efe598856c702ce53b1e50831eb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1880163 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 2ed71c81 2019-11-27T11:42:08 Vulkan: Isolate DisplayVk.h from Display.cpp. With this change we no longer can access Vulkan (or Volk) headers in the ANGLE front-end. The only header that needs to be visible is the new "DisplayVk_api.h". This will simplify a bit of Volk integration. Also reworks how the entry points and headers are exposed to the tests. Bug: angleproject:3740 Change-Id: Ic1434f304619427ed6ad6370bc090ceb7858df94 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1936707 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tobin Ehlis <tobine@google.com>
Ethan Lee d22b8be4 2019-11-15T12:26:39 GN: Make X11 optional, based on a user-defined variable. Not all Linux platforms will have X11 available (Wayland, GGP), so we have to declare a variable that checks use_x11 separately. Bug: angleproject:4116 Change-Id: I7e33956da6344b8db4d4e32dbbd1b42f58f7019c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1919632 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill c898ec1a 2019-11-04T15:20:18 Add EGL GGP extensions. This CL adds two new extensions: * EGL_ANGLE_ggp_stream_descriptor: Introduces a new attribute to CreateWindowSurface. Allows the app to pass in a stream descriptor to VkCreateSurfaceKHR. Mirrors VK_GGP_stream_descriptor_surface. * EGL_ANGLE_swap_with_frame_token: Introduces a new function 'eglSwapBuffersWithFrameTokenANGLE'. This allows the app to pass a GGP frame token down to vkQueuePresentKHR. Mirrors VK_GGP_frame_token. Bug: angleproject:4078 Change-Id: I4313ac4c264e68999905049f661bc64b44f72fab Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1897315 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Alexis Hetu 5e6be1d6 2019-10-11T11:29:22 Provoking vertex feature support enabled Added support in ANGLE for the provoking vertex feature, which allows to choose the provoking vertex convention (first or last) for flat shading. Just copying the vk_ext_provoking_vertex.h file into ANGLE src tree for now. When the extension lands in the vulkan header we'll migrate to that and remove this file from ANGLE. With this, all these tests pass with SwANGLE: dEQP-GLES3.functional.fragment_out.* (fixes 526 failures) dEQP-GLES3.functional.rasterization.flatshading.* (fixes 6 failures) dEQP-GLES3.functional.shaders.linkage.varying.* (already passing before, still passing) Bug: angleproject:3430 Bug: angleproject:3677 Bug: angleproject:4063 Change-Id: Icc361f567072c12472398e37a94a61d7f95007ad Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1855681 Commit-Queue: Alexis Hétu <sugoi@chromium.org> Reviewed-by: Alexis Hétu <sugoi@chromium.org>
Le Quyen a48f95ab 2019-10-14T14:49:49 Move Vulkan GlslangWrapper code to a shared location. Metal backend will reuse Vulkan's GlslangWrapper code. The Metal backend will use this code to translate glsl to spirv then cross compile to Metal Shading Language using spirv-cross. So the source code of GlslangWrapper should be moved outside vulkan folder. Bug: angleproject:2634 Change-Id: I208062daf0d77756c9d32cfdab925b7dfdf83e05 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1858042 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill f483d4ee 2019-10-16T14:13:17 Vulkan: Move SwiftShader ICD json to root_out_dir. This fixes loading SwiftShader in Chrome and in Renderdoc. Requires explicitly specifying the ICD and module directories ("./" or ".\\"). Bug: angleproject:3876 Bug: b/142756865 Change-Id: I9183c81cb0e8ac117fc5d7a8f2048dc0555632c4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1864315 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Tobin Ehlis 8952dd65 2019-10-16T13:54:38 Revert "Vulkan: Define VK_USE_PLATFORM_XLIB_KHR" This reverts commit bedeb781e8ca8a57c31b56d28ba1cde983e5ba47. Reason for revert: <INSERT REASONING HERE> Original change's description: > Vulkan: Define VK_USE_PLATFORM_XLIB_KHR > > For vulkan x11 build need to define VK_USE_PLATFORM_XLIB_KHR. > > Bug: 1011068 > Change-Id: I1ff51a37618eb3a095bdf18e0615a3610225b6fc > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1863319 > Commit-Queue: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> TBR=penghuang@chromium.org,tobine@google.com,jmadill@chromium.org Change-Id: I6cf135e36603ea01bc418fd6f7ce7f131890531e No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 1011068 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1864579 Reviewed-by: Tobin Ehlis <tobine@google.com> Commit-Queue: Tobin Ehlis <tobine@google.com>
Tobin Ehlis bedeb781 2019-10-15T12:31:11 Vulkan: Define VK_USE_PLATFORM_XLIB_KHR For vulkan x11 build need to define VK_USE_PLATFORM_XLIB_KHR. Bug: 1011068 Change-Id: I1ff51a37618eb3a095bdf18e0615a3610225b6fc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1863319 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Sergey Ulanov 6950a87f 2019-10-10T18:01:23 [Fuchsia] Exclude libvk_swiftshader.so on Fuchsia libvk_swiftsahder.so was pulled on web_engine package after swiftshader was enabled in Angle. We don't need it so it can be excluded. This is a reland of https://chromium-review.googlesource.com/c/angle/angle/+/18228630 . Bug: fuchsia:37278 Change-Id: I4de8c7fe4706104791dfe5fc9b4e021db9f2948b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1854883 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Brian Sheedy cc4d8331 2019-09-11T17:26:00 Reland "Add export_targets.py to presubmit" This is a reland of c40a21f353a2d0a37e83f3dce3a1c3096574be64 Changes: Fixed presubmit failing on Windows due to being unable to find gn, fixed export_targets.py failing on Windows for Googlers due to being unable to find Visual Studio files. Original change's description: > Add export_targets.py to presubmit > > Adds export_targets.py to run as part of presubmit in order to help > prevent breaking Firefox with BUILD.gn changes. > > Bug: chromium:1003151 > Change-Id: I5a7ab00891cd7c094c797e6150f642f803a726b6 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1802038 > Commit-Queue: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Bug: chromium:1003151 Change-Id: I321ade86f2d969601afb8e1ed61c36bf166887b5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1842127 Commit-Queue: Brian Sheedy <bsheedy@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 1ba72546 2019-10-04T15:17:49 GN: Allow building without /build/ folder. This will allow for ANGLE to be used in the Skia build. Bug: angleproject:3943 Change-Id: Idd1840f4445c63e696a7cdcd8b873623b8408306 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1835346 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Jamie Madill a4242146 2019-10-04T18:57:25 Revert "Add export_targets.py to presubmit" This reverts commit c40a21f353a2d0a37e83f3dce3a1c3096574be64. Reason for revert: Seems to be failing locally on Windows. See bug for more info. Original change's description: > Add export_targets.py to presubmit > > Adds export_targets.py to run as part of presubmit in order to help > prevent breaking Firefox with BUILD.gn changes. > > Bug: chromium:1003151 > Change-Id: I5a7ab00891cd7c094c797e6150f642f803a726b6 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1802038 > Commit-Queue: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Yuly Novikov <ynovikov@chromium.org> TBR=ynovikov@chromium.org,bsheedy@chromium.org,jgilbert@mozilla.com,jmadill@chromium.org Change-Id: Ic9a2eb58d847a40349e64b931c369f07c24b799c No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:1003151 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1841877 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Brian Sheedy c40a21f3 2019-09-11T17:26:00 Add export_targets.py to presubmit Adds export_targets.py to run as part of presubmit in order to help prevent breaking Firefox with BUILD.gn changes. Bug: chromium:1003151 Change-Id: I5a7ab00891cd7c094c797e6150f642f803a726b6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1802038 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill 1f08ab28 2019-10-03T16:22:52 Re-land "GN: Componentize vulkan back-end build." Re-land fixes angle_end2end_tests disabling Vulkan. This moves the build configuration into the Vulkan back-end dir. This should be a little easier to maintain as all Vulkan-related config is in one place. Note that this should not interfere with Skia's build as they do not import the Vulkan back-end sources. One additional possiblity that this enables is testing other compile-time permutations of the Vulkan back-end more easily. For example we could make a simple change to enable compile testing of the Vulkan back-end with custom command buffers disabled. Also fixes a few errors affecting less tested configs. Bug: angleproject:3943 Change-Id: I0161668abcc58fcf529dde120998d4b99445fdd5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1838454 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 2328d65a 2019-10-03T02:27:07 Revert "GN: Componentize vulkan back-end build." This reverts commit d46e2fb1e341a7ba7da56072658d3b4b1a540077. Reason for revert: Broke Vulkan angle_end2end_tests. Bug: angleproject:3954 Original change's description: > GN: Componentize vulkan back-end build. > > This moves the build configuration into the Vulkan back-end dir. > This should be a little easier to maintain as all Vulkan-related > config is in one place. > > Note that this should not interfere with Skia's build as they do > not import the Vulkan back-end sources. > > One additional possiblity that this enables is testing other > compile-time permutations of the Vulkan back-end more easily. For > example we could make a simple change to enable compile testing > of the Vulkan back-end with custom command buffers disabled. > > Also fixes a few errors affecting less tested configs. > > Bug: angleproject:3943 > Change-Id: Iaf819936896e4f5d3e6415ed16ab0c940e46cdb6 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1829662 > Commit-Queue: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Tobin Ehlis <tobine@google.com> TBR=tobine@google.com,jonahr@google.com,jmadill@chromium.org Change-Id: I7cf3db4f6b7d8b779625ea2491172bb429b498a9 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: angleproject:3943 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1837233 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill d46e2fb1 2019-09-27T16:22:35 GN: Componentize vulkan back-end build. This moves the build configuration into the Vulkan back-end dir. This should be a little easier to maintain as all Vulkan-related config is in one place. Note that this should not interfere with Skia's build as they do not import the Vulkan back-end sources. One additional possiblity that this enables is testing other compile-time permutations of the Vulkan back-end more easily. For example we could make a simple change to enable compile testing of the Vulkan back-end with custom command buffers disabled. Also fixes a few errors affecting less tested configs. Bug: angleproject:3943 Change-Id: Iaf819936896e4f5d3e6415ed16ab0c940e46cdb6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1829662 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tobin Ehlis <tobine@google.com>