Run vk_timer_query
This test only works on Mali, so it should be built and run OOT.
Change-Id: I45d1658eb8434842e2f6696063c1e1943af2d62a
Reviewed-on: https://fuchsia-review.googlesource.com/c/drivers/graphics/gpu/+/1009252
Reviewed-by: Craig Stout <cstout@google.com>
Fuchsia-Auto-Submit: John Bauman <jbauman@google.com>
Commit-Queue: Auto-Submit <auto-submit@fuchsia-infra.iam.gserviceaccount.com>
diff --git a/BUILD.bazel b/BUILD.bazel
index 9ef1d03..236032b 100644
--- a/BUILD.bazel
+++ b/BUILD.bazel
@@ -50,6 +50,7 @@
"//common/examples/vkproto/transaction-elimination-test",
"//drivers/msd-arm-mali:integration_tests",
"//drivers/msd-arm-mali:magma_conformance_tests",
+ "//common/tests/vk_timer_query:vk_timer_query_test",
],
)
diff --git a/common/magma/lib/magma_client/test_util/BUILD.bazel b/common/magma/lib/magma_client/test_util/BUILD.bazel
index 2691ce6..61a6a53 100644
--- a/common/magma/lib/magma_client/test_util/BUILD.bazel
+++ b/common/magma/lib/magma_client/test_util/BUILD.bazel
@@ -18,6 +18,7 @@
hdrs = ["test_device_helper.h"],
visibility = ["//visibility:public"],
deps = [
+ "//:includes",
"@fuchsia_sdk//pkg/driver_component_cpp",
"@fuchsia_sdk//pkg/magma_client",
"@fuchsia_sdk//pkg/zx",
diff --git a/common/tests/common/BUILD.bazel b/common/tests/common/BUILD.bazel
new file mode 100644
index 0000000..58fd10b
--- /dev/null
+++ b/common/tests/common/BUILD.bazel
@@ -0,0 +1,18 @@
+# Copyright 2024 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.
+
+cc_library(
+ name = "common",
+ srcs = [
+ "utils.cc",
+ "utils.h",
+ "vulkan_context.cc",
+ "vulkan_context.h",
+ ],
+ visibility = ["//visibility:public"],
+ deps = [
+ "//common:vulkan",
+ "@com_google_googletest//:gtest",
+ ],
+)
diff --git a/common/tests/common/utils.cc b/common/tests/common/utils.cc
index 9289d08..c6ec979 100644
--- a/common/tests/common/utils.cc
+++ b/common/tests/common/utils.cc
@@ -4,7 +4,7 @@
#include "utils.h"
-#include "src/graphics/tests/common/vulkan_context.h"
+#include "common/tests/common/vulkan_context.h"
VKAPI_ATTR VkBool32 VKAPI_CALL DebugUtilsTestCallback(
VkDebugUtilsMessageSeverityFlagBitsEXT msg_severity, VkDebugUtilsMessageTypeFlagsEXT msg_types,
diff --git a/common/tests/common/vulkan_context.cc b/common/tests/common/vulkan_context.cc
index 6f9e394..b4a9b59 100644
--- a/common/tests/common/vulkan_context.cc
+++ b/common/tests/common/vulkan_context.cc
@@ -10,7 +10,7 @@
#include <memory>
#include <utility>
-#include "src/graphics/tests/common/utils.h"
+#include "common/tests/common/utils.h"
#include "vulkan/vulkan.hpp"
diff --git a/common/tests/vk_timer_query/BUILD.bazel b/common/tests/vk_timer_query/BUILD.bazel
new file mode 100644
index 0000000..08f8885
--- /dev/null
+++ b/common/tests/vk_timer_query/BUILD.bazel
@@ -0,0 +1,43 @@
+# Copyright 2024 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.
+load(
+ "@fuchsia_sdk//fuchsia:defs.bzl",
+ "fuchsia_cc_test",
+ "fuchsia_platforms",
+ "fuchsia_test_component",
+ "fuchsia_test_package",
+)
+
+fuchsia_cc_test(
+ name = "vk_timer_query",
+ srcs = ["main.cc"],
+ deps = [
+ "//common/tests/vkreadback",
+ "//drivers/msd-arm-mali:msd-arm-include",
+ "@com_google_googletest//:gtest",
+ "@fuchsia_sdk//fidl/fuchsia.gpu.magma:fuchsia.gpu.magma_cpp_wire",
+ "@fuchsia_sdk//pkg/fdio",
+ "@fuchsia_sdk//pkg/magma_client",
+ "@fuchsia_sdk//pkg/vulkan",
+ "@magma//lib/magma_client/test_util:test_device",
+ ],
+)
+
+fuchsia_test_component(
+ name = "vk_timer_query_test_component",
+ testonly = True,
+ manifest = "meta/vk_timer_query.cml",
+ deps = [":vk_timer_query"],
+)
+
+fuchsia_test_package(
+ name = "vk_timer_query_test",
+ package_name = "vk_timer_query_test",
+ platform = fuchsia_platforms.arm64,
+ test_components = [
+ ":vk_timer_query_test_component",
+ ],
+ test_realm = "/core/testing:system-tests",
+ visibility = ["//visibility:public"],
+)
diff --git a/common/tests/vk_timer_query/main.cc b/common/tests/vk_timer_query/main.cc
index d4b29f9..68e3d0c 100644
--- a/common/tests/vk_timer_query/main.cc
+++ b/common/tests/vk_timer_query/main.cc
@@ -11,15 +11,10 @@
#include <gtest/gtest.h>
-#include "../vkreadback/vkreadback.h"
+#include "common/tests/vkreadback/vkreadback.h"
#include "magma_vendor_queries.h"
-#include "src/lib/fxl/test/test_settings.h"
int main(int argc, char** argv) {
- if (!fxl::SetTestSettings(argc, argv)) {
- return EXIT_FAILURE;
- }
-
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
diff --git a/common/tests/vk_timer_query/meta/vk_timer_query.cml b/common/tests/vk_timer_query/meta/vk_timer_query.cml
index 782ae90..98ccdcf 100644
--- a/common/tests/vk_timer_query/meta/vk_timer_query.cml
+++ b/common/tests/vk_timer_query/meta/vk_timer_query.cml
@@ -3,11 +3,11 @@
// found in the LICENSE file.
{
include: [
- "//src/sys/test_runners/gtest/default.shard.cml",
"syslog/client.shard.cml",
"vulkan/client.shard.cml",
],
program: {
+ runner: "gtest_runner",
binary: "bin/vk_timer_query",
},
use: [
@@ -21,4 +21,13 @@
path: "/tmp",
},
],
+ capabilities: [
+ { protocol: "fuchsia.test.Suite" },
+ ],
+ expose: [
+ {
+ protocol: "fuchsia.test.Suite",
+ from: "self",
+ },
+ ],
}
diff --git a/common/tests/vkreadback/BUILD.bazel b/common/tests/vkreadback/BUILD.bazel
new file mode 100644
index 0000000..56dd1da
--- /dev/null
+++ b/common/tests/vkreadback/BUILD.bazel
@@ -0,0 +1,18 @@
+# Copyright 2024 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.
+
+cc_library(
+ name = "vkreadback",
+ srcs = [
+ "vkreadback.cc",
+ "vkreadback.h",
+ ],
+ visibility = ["//visibility:public"],
+ deps = [
+ "//common/tests/common",
+ "@Vulkan-Headers//:headers",
+ "@com_google_googletest//:gtest",
+ "@fuchsia_sdk//pkg/vulkan",
+ ],
+)
diff --git a/common/tests/vkreadback/vkreadback.cc b/common/tests/vkreadback/vkreadback.cc
index e66eb34..3328b96 100644
--- a/common/tests/vkreadback/vkreadback.cc
+++ b/common/tests/vkreadback/vkreadback.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "src/graphics/tests/vkreadback/vkreadback.h"
+#include "common/tests/vkreadback/vkreadback.h"
#include <array>
#include <cstddef>
@@ -10,7 +10,7 @@
#include <limits>
#include <optional>
-#include "src/graphics/tests/common/utils.h"
+#include "common/tests/common/utils.h"
#include <vulkan/vulkan.hpp>
@@ -187,6 +187,8 @@
device_info.setPEnabledExtensionNames(enabled_extension_names);
builder.set_instance_info(instance_info).set_device_info(device_info);
+ // Temporary until validation layers are available in the SDK.
+ builder.set_validation_layers_enabled(false);
#ifdef __linux__
// Validation layers not conveniently available yet in virtual Linux
builder.set_validation_layers_enabled(false);
diff --git a/common/tests/vkreadback/vkreadback.h b/common/tests/vkreadback/vkreadback.h
index c4b4d1d..9689dd7 100644
--- a/common/tests/vkreadback/vkreadback.h
+++ b/common/tests/vkreadback/vkreadback.h
@@ -11,8 +11,8 @@
#include <gtest/gtest.h>
-#include "src/graphics/tests/common/utils.h"
-#include "src/graphics/tests/common/vulkan_context.h"
+#include "common/tests/common/utils.h"
+#include "common/tests/common/vulkan_context.h"
#include <vulkan/vulkan.hpp>