blob: dc2343f7b02930d2ea14934ad4be50ac468a5b30 [file] [log] [blame]
# 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
}