blob: 43802b825ceba15ecc376927f65e9cdcc1de3d61 [file] [log] [blame]
# Copyright 2023 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
EAPI=7
inherit cmake cros-sanitizers
DESCRIPTION="Perfetto-based Vulkan Shader Profiler"
HOMEPAGE="https://github.com/rjodinchr/vulkan-shader-profiler"
VKSP_ARCHIVE_NAME="vulkan-shader-profiler-76502cb8f37a67d3255ac6d8afd7079f21cada16"
VKSP_ARCHIVE="${VKSP_ARCHIVE_NAME}.zip"
SPIRV_VERSION="1.3.261"
SRC_URI="
gs://chromeos-localmirror/distfiles/${VKSP_ARCHIVE}
https://github.com/KhronosGroup/spirv-tools/archive/sdk-${SPIRV_VERSION}.0.tar.gz -> spirv-tools-${SPIRV_VERSION}.tar.gz
"
CMAKE_USE_DIR="${WORKDIR}/${VKSP_ARCHIVE_NAME}"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="*"
IUSE="+perfetto"
RDEPEND="
media-libs/vulkan-loader
>=dev-util/spirv-tools-${SPIRV_VERSION}-r2
"
DEPEND="
>=dev-util/spirv-headers-${SPIRV_VERSION}-r4
dev-util/vulkan-headers
>=chromeos-base/perfetto-31.0
${RDEPEND}
"
# Need to unpack the source archive.
BDEPEND="app-arch/unzip"
src_unpack() {
unpack "spirv-tools-${SPIRV_VERSION}.tar.gz"
unpack "${VKSP_ARCHIVE}"
mkdir -p "${WORKDIR}/${P}"
}
src_configure() {
sanitizers-setup-env
append-lfs-flags
# shellcheck disable=SC2034
local mycmakeargs=(
-DBACKEND=System
-DPERFETTO_SDK_PATH="${ESYSROOT}/usr/include/perfetto/"
-DPERFETTO_LIBRARY=perfetto_sdk
-DPERFETTO_INTERNAL_INCLUDE_PATH="${ESYSROOT}/usr/include/perfetto/"
-DPERFETTO_TRACE_PROCESSOR_LIB="${ESYSROOT}/usr/local/$(get_libdir)/libtrace_processor.a"
-DSPIRV_TOOLS_SOURCE_PATH="${WORKDIR}/SPIRV-Tools-sdk-${SPIRV_VERSION}.0"
-DSPIRV_TOOLS_BUILD_PATH="${ESYSROOT}/usr/include/spirv-tools/vksp"
)
cmake_src_configure
}
src_install() {
local LAYER_DIR="/usr/local/share/vulkan/explicit_layer.d/"
dodir "${LAYER_DIR}"
insinto "${LAYER_DIR}"
doins "${CMAKE_USE_DIR}/manifest/${PN}.json"
dolib.so "${BUILD_DIR}/layer/lib${PN}.so"
dobin "${BUILD_DIR}/extractor/${PN}-extractor"
dobin "${BUILD_DIR}/runner/${PN}-runner"
exeinto "/usr/local/bin"
doexe "${CMAKE_USE_DIR}/chromeos-utils/${PN}.sh"
dosym "/usr/local/bin/${PN}.sh" "/usr/local/bin/vksp.sh"
}