| # Copyright 2017 The Fuchsia Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("//build/package.gni") |
| import("//build/sdk/sdk_atom.gni") |
| import("//build/test/test_package.gni") |
| import("//garnet/lib/magma/gnbuild/magma.gni") |
| import("//garnet/lib/vulkan/image_pipe_swapchain.gni") |
| import("//src/graphics/lib/vulkan/layers.gni") |
| |
| group("image_pipe_swapchain") { |
| public_deps = [ |
| "src/swapchain", |
| ] |
| } |
| |
| sdk_atom("vulkan_layers") { |
| id = "sdk://pkg/vulkan_layers" |
| |
| category = "partner" |
| |
| files = [] |
| |
| resources = |
| vulkan_validation_layers.resources + image_pipe_swapchain.resources |
| |
| loadable_modules = vulkan_validation_layers.loadable_modules + |
| image_pipe_swapchain.loadable_modules |
| non_sdk_deps = |
| vulkan_validation_layers.public_deps + image_pipe_swapchain.public_deps |
| |
| sdk_resources = [] |
| foreach(resource, resources) { |
| destination = "pkg/vulkan_layers/data/" + resource.dest |
| files += [ |
| { |
| source = resource.path |
| dest = destination |
| }, |
| ] |
| sdk_resources += [ destination ] |
| } |
| |
| sdk_binaries = [] |
| foreach(loadable_module, loadable_modules) { |
| destination = "arch/$target_cpu/dist/" + loadable_module.name |
| files += [ |
| { |
| source = "$root_out_dir/" + loadable_module.name |
| dest = destination |
| }, |
| ] |
| sdk_binaries += [ destination ] |
| } |
| |
| meta = { |
| dest = "pkg/vulkan_layers/meta.json" |
| schema = "loadable_module" |
| value = { |
| type = "loadable_module" |
| name = "vulkan_layers" |
| resources = [] |
| resources = sdk_resources |
| binaries = { |
| } |
| if (target_cpu == "arm64") { |
| binaries.arm64 = sdk_binaries |
| } else if (target_cpu == "x64") { |
| binaries.x64 = sdk_binaries |
| } else { |
| assert(false, "Unknown CPU type: %target_cpu") |
| } |
| } |
| } |
| } |
| |
| test_package("image-pipe-swapchain-tests") { |
| deps = [ |
| ":image_pipe_swapchain", |
| "tests/unit:test_image_pipe_swapchain", |
| "//src/graphics/lib/vulkan:validation_layers", |
| ] |
| |
| tests = [ |
| { |
| name = "test_image_pipe_swapchain" |
| dest = "image-pipe-swapchain-tests" |
| environments = magma_libvulkan_hardware_envs |
| }, |
| ] |
| public_deps = |
| vulkan_validation_layers.public_deps + image_pipe_swapchain.public_deps |
| loadable_modules = vulkan_validation_layers.loadable_modules + |
| image_pipe_swapchain.loadable_modules |
| resources = |
| vulkan_validation_layers.resources + image_pipe_swapchain.resources |
| } |
| |
| package("vklatency_on_scenic") { |
| testonly = true |
| |
| deps = [ |
| "tests/vklatency:vklatency_on_scenic", |
| "//src/graphics/lib/vulkan:validation_layers", |
| ] |
| binary = "vklatency_on_scenic" |
| |
| meta = [ |
| { |
| path = rebase_path("meta/vklatency_on_scenic.cmx") |
| dest = "vklatency_on_scenic.cmx" |
| }, |
| ] |
| |
| public_deps = |
| vulkan_validation_layers.public_deps + image_pipe_swapchain.public_deps |
| loadable_modules = vulkan_validation_layers.loadable_modules + |
| image_pipe_swapchain.loadable_modules |
| resources = |
| vulkan_validation_layers.resources + image_pipe_swapchain.resources |
| } |
| |
| package("vklatency_on_fb") { |
| testonly = true |
| |
| deps = [ |
| "tests/vklatency:vklatency_on_fb", |
| "//src/graphics/lib/vulkan:validation_layers", |
| ] |
| binary = "vklatency_on_fb" |
| |
| meta = [ |
| { |
| path = rebase_path("meta/vklatency_on_fb.cmx") |
| dest = "vklatency_on_fb.cmx" |
| }, |
| ] |
| |
| public_deps = |
| vulkan_validation_layers.public_deps + image_pipe_swapchain_fb.public_deps |
| loadable_modules = vulkan_validation_layers.loadable_modules + |
| image_pipe_swapchain_fb.loadable_modules |
| resources = |
| vulkan_validation_layers.resources + image_pipe_swapchain_fb.resources |
| } |
| |
| package("vkcube_on_scenic") { |
| testonly = true |
| |
| deps = [ |
| "tests/vkcube:vkcube_on_scenic", |
| "//src/graphics/lib/vulkan:validation_layers", |
| ] |
| binary = "vkcube_on_scenic" |
| |
| meta = [ |
| { |
| path = rebase_path("meta/vkcube_on_scenic.cmx") |
| dest = "vkcube_on_scenic.cmx" |
| }, |
| ] |
| |
| public_deps = |
| vulkan_validation_layers.public_deps + image_pipe_swapchain.public_deps |
| loadable_modules = vulkan_validation_layers.loadable_modules + |
| image_pipe_swapchain.loadable_modules |
| resources = |
| [ |
| { |
| path = rebase_path("tests/vkcube/bbb_frame.yuv") |
| dest = "bbb_frame.yuv" |
| }, |
| ] + vulkan_validation_layers.resources + image_pipe_swapchain.resources |
| } |
| |
| package("vkcube_on_fb") { |
| testonly = true |
| |
| deps = [ |
| "tests/vkcube:vkcube_on_fb", |
| "//src/graphics/lib/vulkan:validation_layers", |
| ] |
| binary = "vkcube_on_fb" |
| |
| meta = [ |
| { |
| path = rebase_path("meta/vkcube_on_fb.cmx") |
| dest = "vkcube_on_fb.cmx" |
| }, |
| ] |
| |
| public_deps = |
| vulkan_validation_layers.public_deps + image_pipe_swapchain_fb.public_deps |
| loadable_modules = vulkan_validation_layers.loadable_modules + |
| image_pipe_swapchain_fb.loadable_modules |
| resources = |
| [ |
| { |
| path = rebase_path("tests/vkcube/bbb_frame.yuv") |
| dest = "bbb_frame.yuv" |
| }, |
| ] + vulkan_validation_layers.resources + image_pipe_swapchain_fb.resources |
| } |
| |
| package("vkcube_skip_present") { |
| testonly = true |
| |
| deps = [ |
| "tests/vkcube:vkcube_skip_present", |
| "//src/graphics/lib/vulkan:validation_layers", |
| ] |
| binary = "vkcube_skip_present" |
| |
| meta = [ |
| { |
| path = rebase_path("meta/vkcube_skip_present.cmx") |
| dest = "vkcube_skip_present.cmx" |
| }, |
| ] |
| |
| public_deps = vulkan_validation_layers.public_deps + |
| image_pipe_swapchain_fb_skip_present.public_deps |
| loadable_modules = vulkan_validation_layers.loadable_modules + |
| image_pipe_swapchain_fb_skip_present.loadable_modules |
| resources = [ |
| { |
| path = rebase_path("tests/vkcube/bbb_frame.yuv") |
| dest = "bbb_frame.yuv" |
| }, |
| ] + vulkan_validation_layers.resources + |
| image_pipe_swapchain_fb_skip_present.resources |
| } |
| |
| package("vkprimer") { |
| testonly = true |
| |
| binary = "vkprimer" |
| |
| deps = [ |
| "tests/vkprimer:vkprimer", |
| ] |
| |
| resources = [ |
| { |
| path = "tests/vkprimer/common/shaders/vert.spv" |
| dest = "shaders/vert.spv" |
| }, |
| { |
| path = "tests/vkprimer/common/shaders/frag.spv" |
| dest = "shaders/frag.spv" |
| }, |
| ] |
| |
| if (is_fuchsia) { |
| deps += [ "//src/graphics/lib/vulkan:validation_layers" ] |
| |
| meta = [ |
| { |
| path = rebase_path("meta/vkprimer.cmx") |
| dest = "vkprimer.cmx" |
| }, |
| ] |
| |
| public_deps = vulkan_validation_layers.public_deps + |
| image_pipe_swapchain_fb.public_deps |
| loadable_modules = vulkan_validation_layers.loadable_modules + |
| image_pipe_swapchain_fb.loadable_modules |
| resources += |
| vulkan_validation_layers.resources + image_pipe_swapchain_fb.resources |
| } |
| } |
| |
| package("vulkaninfo") { |
| deps = [ |
| ":image_pipe_swapchain", |
| "//src/graphics/lib/vulkan:validation_layers", |
| "//src/graphics/lib/vulkan:vulkaninfo", |
| ] |
| |
| meta = [ |
| { |
| path = rebase_path("meta/vulkaninfo.cmx") |
| dest = "vulkaninfo.cmx" |
| }, |
| ] |
| |
| binary = "vulkaninfo" |
| |
| public_deps = |
| vulkan_validation_layers.public_deps + image_pipe_swapchain.public_deps |
| loadable_modules = vulkan_validation_layers.loadable_modules + |
| image_pipe_swapchain.loadable_modules |
| resources = |
| vulkan_validation_layers.resources + image_pipe_swapchain.resources |
| } |