diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py index dabc4c10d..4f511f336 100644 --- a/mesonbuild/backend/backends.py +++ b/mesonbuild/backend/backends.py @@ -221,6 +221,9 @@ def get_backend_from_name(backend: str, build: T.Optional[build.Build] = None, i if backend == 'ninja': from . import ninjabackend return ninjabackend.NinjaBackend(build, interpreter) + elif backend == 'hermetic': + from . import hermeticbackend + return hermeticbackend.HermeticBackend(build, interpreter) elif backend == 'vs': from . import vs2010backend return vs2010backend.autodetect_vs_version(build, interpreter) diff --git a/mesonbuild/backend/hermeticbackend.py b/mesonbuild/backend/hermeticbackend.py new file mode 100644 index 000000000..ce563c8ad --- /dev/null +++ b/mesonbuild/backend/hermeticbackend.py @@ -0,0 +1,16 @@ +# SPDX-License-Identifier: Apache-2.0 +# Copyright 2025 The Meson development team + +import typing as T + +from . import backends +from mesonbuild import build, interpreter + +class HermeticBackend(backends.Backend): + name = 'hermetic' + + def __init__(self, build: build.Build, interpreter: interpreter.Interpreter): + super().__init__(build, interpreter) + + def generate(self, capture: bool = False, vslite_ctx: T.Optional[T.Dict] = None) -> None: + pass diff --git a/mesonbuild/options.py b/mesonbuild/options.py index 54e7e4664..53b1ffbcb 100644 --- a/mesonbuild/options.py +++ b/mesonbuild/options.py @@ -60,7 +60,7 @@ class ArgparseKWs(TypedDict, total=False): # Can't bind this near the class method it seems, sadly. _T = T.TypeVar('_T') -backendlist = ['ninja', 'vs', 'vs2010', 'vs2012', 'vs2013', 'vs2015', 'vs2017', 'vs2019', 'vs2022', 'xcode', 'none'] +backendlist = ['ninja', 'hermetic', 'vs', 'vs2010', 'vs2012', 'vs2013', 'vs2015', 'vs2017', 'vs2019', 'vs2022', 'xcode', 'none'] genvslitelist = ['vs2022'] buildtypelist = ['plain', 'debug', 'debugoptimized', 'release', 'minsize', 'custom'] diff --git a/output-dir/Android.bp b/output-dir/Android.bp new file mode 100644 index 000000000..b0e5c16f7 --- /dev/null +++ b/output-dir/Android.bp @@ -0,0 +1,290 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +cc_defaults { + name: "_trial_msvc", + cflags: [ + "-Werror=pointer-arith", + "-Werror=vla", + "-Werror=gnu-empty-initializer", + ], +} + +cc_defaults { + name: "mesa_c_project_args", + cflags: [ + "-D__STDC_CONSTANT_MACROS", + "-D__STDC_FORMAT_MACROS", + "-D__STDC_LIMIT_MACROS", + "-DPACKAGE_VERSION="25.3.0-devel"", + "-DPACKAGE_BUGREPORT="https://gitlab.freedesktop.org/mesa/mesa/-/issues"", + "-DHAVE_OPENGL=0", + "-DHAVE_OPENGL_ES_1=1", + "-DHAVE_OPENGL_ES_2=1", + "-DMESA_SYSTEM_HAS_KMS_DRM=1", + "-DVIDEO_CODEC_VC1DEC=0", + "-DVIDEO_CODEC_H264DEC=0", + "-DVIDEO_CODEC_H264ENC=0", + "-DVIDEO_CODEC_H265DEC=0", + "-DVIDEO_CODEC_H265ENC=0", + "-DVIDEO_CODEC_AV1DEC=1", + "-DVIDEO_CODEC_AV1ENC=1", + "-DVIDEO_CODEC_VP9DEC=1", + "-DHAVE_ANDROID_PLATFORM", + "-DUSE_LIBGLVND=0", + "-DGLAPI_EXPORT_PROTO_ENTRY_POINTS=1", + "-DANDROID_API_LEVEL=34", + "-DANDROID_STRICT", + "-DETIME=ETIMEDOUT", + "-DMESA_DEBUG=0", + "-DENABLE_SHADER_CACHE", + "-DHAVE___BUILTIN_BSWAP32", + "-DHAVE___BUILTIN_BSWAP64", + "-DHAVE___BUILTIN_CLZ", + "-DHAVE___BUILTIN_CLZLL", + "-DHAVE___BUILTIN_CTZ", + "-DHAVE___BUILTIN_EXPECT", + "-DHAVE___BUILTIN_FFS", + "-DHAVE___BUILTIN_FFSLL", + "-DHAVE___BUILTIN_POPCOUNT", + "-DHAVE___BUILTIN_POPCOUNTLL", + "-DHAVE___BUILTIN_UNREACHABLE", + "-DHAVE___BUILTIN_TYPES_COMPATIBLE_P", + "-DHAVE___BUILTIN_ADD_OVERFLOW", + "-DHAVE___BUILTIN_ADD_OVERFLOW_P", + "-DHAVE___BUILTIN_SUB_OVERFLOW_P", + "-DHAVE_FUNC_ATTRIBUTE_CONST", + "-DHAVE_FUNC_ATTRIBUTE_FLATTEN", + "-DHAVE_FUNC_ATTRIBUTE_MALLOC", + "-DHAVE_FUNC_ATTRIBUTE_PURE", + "-DHAVE_FUNC_ATTRIBUTE_UNUSED", + "-DHAVE_FUNC_ATTRIBUTE_WARN_UNUSED_RESULT", + "-DHAVE_FUNC_ATTRIBUTE_WEAK", + "-DHAVE_FUNC_ATTRIBUTE_FORMAT", + "-DHAVE_FUNC_ATTRIBUTE_PACKED", + "-DHAVE_FUNC_ATTRIBUTE_RETURNS_NONNULL", + "-DHAVE_FUNC_ATTRIBUTE_ALIAS", + "-DHAVE_FUNC_ATTRIBUTE_NORETURN", + "-DHAVE_FUNC_ATTRIBUTE_OPTIMIZE", + "-DHAVE_FUNC_ATTRIBUTE_COLD", + "-DHAVE_FUNC_ATTRIBUTE_VISIBILITY", + "-DHAVE_UINT128", + "-DHAVE_REALLOCARRAY", + "-DHAVE_FMEMOPEN", + "-D_GNU_SOURCE", + "-DHAVE___BUILTIN_IA32_CLFLUSHOPT", + "-DUSE_GCC_ATOMIC_BUILTINS", + "-DMAJOR_IN_SYSMACROS", + "-DMAJOR_IN_MKDEV", + "-DHAS_SCHED_H", + "-DHAS_SCHED_GETAFFINITY", + "-DHAVE_SYS_SYSCTL_H", + "-DHAVE_XLOCALE_H", + "-DHAVE_LINUX_FUTEX_H", + "-DHAVE_ENDIAN_H", + "-DHAVE_DLFCN_H", + "-DHAVE_SYS_SHM_H", + "-DHAVE_CET_H", + "-DHAVE_PTHREAD_NP_H", + "-DHAVE_SYS_INOTIFY_H", + "-DHAVE_LINUX_UDMABUF_H", + "-DHAVE_STRTOF", + "-DHAVE_MKOSTEMP", + "-DHAVE_MEMFD_CREATE", + "-DHAVE_RANDOM_R", + "-DHAVE_FLOCK", + "-DHAVE_STRTOK_R", + "-DHAVE_GETRANDOM", + "-DHAVE_QSORT_S", + "-DHAVE_POSIX_FALLOCATE", + "-DHAVE_SECURE_GETENV", + "-DHAVE_SYSCONF", + "-DHAVE_GNU_QSORT_R", + "-DHAVE_STRUCT_TIMESPEC", + "-DHAVE_THRD_CREATE", + "-DHAVE_PROGRAM_INVOCATION_NAME", + "-DHAVE_ISSIGNALING", + "-DHAVE_POSIX_MEMALIGN", + "-DHAVE_DIRENT_D_TYPE", + "-DHAVE_STRTOD_L", + "-DHAVE_DLADDR", + "-DHAVE_DL_ITERATE_PHDR", + "-DHAVE_ZSTD", + "-DHAVE_COMPRESSION", + "-DHAVE_LIBDRM", + "-DMESA_LLVM_VERSION_STRING="16.0"", + "-DLLVM_IS_SHARED=1", + "-DDRAW_LLVM_AVAILABLE=1", + "-DAMD_LLVM_AVAILABLE=1", + "-DGALLIVM_USE_ORCJIT=0", + "-DUSE_LIBELF", + "-DTHREAD_SANITIZER=0", + "-DHAVE_DRI2", + "-DHAVE_LIBSENSORS=1", + "-fno-emulated-tls", + "-Werror=implicit-function-declaration", + "-Werror=missing-prototypes", + "-Werror=return-type", + "-Werror=empty-body", + "-Werror=incompatible-pointer-types", + "-Werror=int-conversion", + "-Wimplicit-fallthrough", + "-Wmisleading-indentation", + "-Wno-error=maybe-uninitialized", + "-Wno-missing-field-initializers", + "-Wno-format-truncation", + "-Wno-nonnull-compare", + "-fno-math-errno", + "-fno-trapping-math", + "-Qunused-arguments", + "-fno-common", + "-Wno-unknown-pragmas", + "-Wno-microsoft-enum-value", + "-Wno-unused-function", + "-Werror=format", + "-Wformat-security", + "-Werror=thread-safety", + "-ffunction-sections", + "-fdata-sections", + ], +} + +cc_defaults { + name: "mesa_cpp_project_args", + cppflags: [ + "-D__STDC_CONSTANT_MACROS", + "-D__STDC_FORMAT_MACROS", + "-D__STDC_LIMIT_MACROS", + "-DPACKAGE_VERSION="25.3.0-devel"", + "-DPACKAGE_BUGREPORT="https://gitlab.freedesktop.org/mesa/mesa/-/issues"", + "-DHAVE_OPENGL=0", + "-DHAVE_OPENGL_ES_1=1", + "-DHAVE_OPENGL_ES_2=1", + "-DMESA_SYSTEM_HAS_KMS_DRM=1", + "-DVIDEO_CODEC_VC1DEC=0", + "-DVIDEO_CODEC_H264DEC=0", + "-DVIDEO_CODEC_H264ENC=0", + "-DVIDEO_CODEC_H265DEC=0", + "-DVIDEO_CODEC_H265ENC=0", + "-DVIDEO_CODEC_AV1DEC=1", + "-DVIDEO_CODEC_AV1ENC=1", + "-DVIDEO_CODEC_VP9DEC=1", + "-DHAVE_ANDROID_PLATFORM", + "-DUSE_LIBGLVND=0", + "-DGLAPI_EXPORT_PROTO_ENTRY_POINTS=1", + "-DANDROID_API_LEVEL=34", + "-DANDROID_STRICT", + "-DETIME=ETIMEDOUT", + "-DMESA_DEBUG=0", + "-DENABLE_SHADER_CACHE", + "-DHAVE___BUILTIN_BSWAP32", + "-DHAVE___BUILTIN_BSWAP64", + "-DHAVE___BUILTIN_CLZ", + "-DHAVE___BUILTIN_CLZLL", + "-DHAVE___BUILTIN_CTZ", + "-DHAVE___BUILTIN_EXPECT", + "-DHAVE___BUILTIN_FFS", + "-DHAVE___BUILTIN_FFSLL", + "-DHAVE___BUILTIN_POPCOUNT", + "-DHAVE___BUILTIN_POPCOUNTLL", + "-DHAVE___BUILTIN_UNREACHABLE", + "-DHAVE___BUILTIN_TYPES_COMPATIBLE_P", + "-DHAVE___BUILTIN_ADD_OVERFLOW", + "-DHAVE___BUILTIN_ADD_OVERFLOW_P", + "-DHAVE___BUILTIN_SUB_OVERFLOW_P", + "-DHAVE_FUNC_ATTRIBUTE_CONST", + "-DHAVE_FUNC_ATTRIBUTE_FLATTEN", + "-DHAVE_FUNC_ATTRIBUTE_MALLOC", + "-DHAVE_FUNC_ATTRIBUTE_PURE", + "-DHAVE_FUNC_ATTRIBUTE_UNUSED", + "-DHAVE_FUNC_ATTRIBUTE_WARN_UNUSED_RESULT", + "-DHAVE_FUNC_ATTRIBUTE_WEAK", + "-DHAVE_FUNC_ATTRIBUTE_FORMAT", + "-DHAVE_FUNC_ATTRIBUTE_PACKED", + "-DHAVE_FUNC_ATTRIBUTE_RETURNS_NONNULL", + "-DHAVE_FUNC_ATTRIBUTE_ALIAS", + "-DHAVE_FUNC_ATTRIBUTE_NORETURN", + "-DHAVE_FUNC_ATTRIBUTE_OPTIMIZE", + "-DHAVE_FUNC_ATTRIBUTE_COLD", + "-DHAVE_FUNC_ATTRIBUTE_VISIBILITY", + "-DHAVE_UINT128", + "-DHAVE_REALLOCARRAY", + "-DHAVE_FMEMOPEN", + "-D_GNU_SOURCE", + "-DHAVE___BUILTIN_IA32_CLFLUSHOPT", + "-DUSE_GCC_ATOMIC_BUILTINS", + "-DMAJOR_IN_SYSMACROS", + "-DMAJOR_IN_MKDEV", + "-DHAS_SCHED_H", + "-DHAS_SCHED_GETAFFINITY", + "-DHAVE_SYS_SYSCTL_H", + "-DHAVE_XLOCALE_H", + "-DHAVE_LINUX_FUTEX_H", + "-DHAVE_ENDIAN_H", + "-DHAVE_DLFCN_H", + "-DHAVE_SYS_SHM_H", + "-DHAVE_CET_H", + "-DHAVE_PTHREAD_NP_H", + "-DHAVE_SYS_INOTIFY_H", + "-DHAVE_LINUX_UDMABUF_H", + "-DHAVE_STRTOF", + "-DHAVE_MKOSTEMP", + "-DHAVE_MEMFD_CREATE", + "-DHAVE_RANDOM_R", + "-DHAVE_FLOCK", + "-DHAVE_STRTOK_R", + "-DHAVE_GETRANDOM", + "-DHAVE_QSORT_S", + "-DHAVE_POSIX_FALLOCATE", + "-DHAVE_SECURE_GETENV", + "-DHAVE_SYSCONF", + "-DHAVE_GNU_QSORT_R", + "-DHAVE_STRUCT_TIMESPEC", + "-DHAVE_THRD_CREATE", + "-DHAVE_PROGRAM_INVOCATION_NAME", + "-DHAVE_ISSIGNALING", + "-DHAVE_POSIX_MEMALIGN", + "-DHAVE_DIRENT_D_TYPE", + "-DHAVE_STRTOD_L", + "-DHAVE_DLADDR", + "-DHAVE_DL_ITERATE_PHDR", + "-DHAVE_ZSTD", + "-DHAVE_COMPRESSION", + "-DHAVE_LIBDRM", + "-DMESA_LLVM_VERSION_STRING="16.0"", + "-DLLVM_IS_SHARED=1", + "-DDRAW_LLVM_AVAILABLE=1", + "-DAMD_LLVM_AVAILABLE=1", + "-DGALLIVM_USE_ORCJIT=0", + "-DUSE_LIBELF", + "-DTHREAD_SANITIZER=0", + "-DHAVE_DRI2", + "-DHAVE_LIBSENSORS=1", + "-fno-emulated-tls", + "-Werror=return-type", + "-Werror=empty-body", + "-Wmisleading-indentation", + "-Wno-error=maybe-uninitialized", + "-Wno-non-virtual-dtor", + "-Wno-missing-field-initializers", + "-Wno-format-truncation", + "-fno-math-errno", + "-fno-trapping-math", + "-Qunused-arguments", + "-flifetime-dse=1", + "-Wno-unknown-pragmas", + "-Wno-microsoft-enum-value", + "-Werror=format", + "-Wformat-security", + "-ffunction-sections", + "-fdata-sections", + ], +} + diff --git a/output-dir/include/Android.bp b/output-dir/include/Android.bp new file mode 100644 index 000000000..8a64b6edd --- /dev/null +++ b/output-dir/include/Android.bp @@ -0,0 +1,17 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +cc_library_headers { + name: "inc_winddk", + export_include_dirs: [ + "winddk", + ], +} + diff --git a/output-dir/src/Android.bp b/output-dir/src/Android.bp new file mode 100644 index 000000000..983eb9f36 --- /dev/null +++ b/output-dir/src/Android.bp @@ -0,0 +1,103 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +genrule { + name: "git_sha1.h", + srcs: [ + "git_sha1.h.in", + ], + out: [ + "git_sha1.h", + ], + tools: [ + ], + cmd: "NULL --internal vcstagger $(location git_sha1.h.in) $(location git_sha1.h) """ + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa/src @VCS_TAG@ (.*) git" + + "show --no-patch --abbrev=10 --format=" (git-%h)"", +} + +cc_library_headers { + name: "inc_amd_common", + export_include_dirs: [ + "amd/common", + "amd/common/nir", + ], +} + +cc_library_headers { + name: "inc_amd_common_llvm", + export_include_dirs: [ + "amd/llvm", + ], +} + +cc_library_headers { + name: "inc_frontends", + export_include_dirs: [ + "gallium/frontends", + ], +} + +cc_library_headers { + name: "inc_gallium", + export_include_dirs: [ + "gallium/include", + ], +} + +cc_library_headers { + name: "inc_gallium_aux", + export_include_dirs: [ + "gallium/auxiliary", + ], +} + +cc_library_headers { + name: "inc_llvmpipe", + export_include_dirs: [ + "gallium/drivers/llvmpipe", + ], +} + +cc_library_headers { + name: "inc_mesa", + export_include_dirs: [ + "mesa", + ], +} + +cc_library_headers { + name: "inc_src", + export_include_dirs: [ + ".", + ], +} + +cc_library_headers { + name: "inc_tool", + export_include_dirs: [ + "tool", + ], +} + +cc_library_headers { + name: "inc_virtio", + export_include_dirs: [ + "virtio", + ], +} + +cc_library_headers { + name: "inc_virtio_gpu", + export_include_dirs: [ + "virtio/virtio-gpu", + ], +} + diff --git a/output-dir/src/c11/impl/Android.bp b/output-dir/src/c11/impl/Android.bp new file mode 100644 index 000000000..a09d406ed --- /dev/null +++ b/output-dir/src/c11/impl/Android.bp @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +cc_library_static { + name: "mesa_util_c11", + host_supported: false, + srcs: [ + "time.c", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "_trial_msvc", + ], + +} + diff --git a/output-dir/src/compiler/Android.bp b/output-dir/src/compiler/Android.bp new file mode 100644 index 000000000..b666f4090 --- /dev/null +++ b/output-dir/src/compiler/Android.bp @@ -0,0 +1,151 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +filegroup { + name: "astc_decoder_glsl", + srcs: ["glsl/astc_decoder.glsl"], +} + +python_binary_host { + name: "builtin_types_c_gen", + main: "builtin_types_c.py", + srcs: [ + "builtin_types.py", + "builtin_types_c.py", + ], + libs: [ + "mako", + ], +} + +python_binary_host { + name: "builtin_types_h_gen", + main: "builtin_types_h.py", + srcs: [ + "builtin_types.py", + "builtin_types_h.py", + ], + libs: [ + "mako", + ], +} + +python_binary_host { + name: "ir_expression_operation_gen", + main: "ir_expression_operation.py", + srcs: [ + "ir_expression_operation.py", + ], + libs: [ + "mako", + ], +} + +genrule { + name: "builtin_types.c", + srcs: [ + ], + out: [ + "builtin_types.c", + ], + tools: [ + "builtin_types_c_gen", + ], + cmd: "python3 $(location builtin_types_c_gen) $(location builtin_types.c)", +} + +genrule { + name: "builtin_types.h", + srcs: [ + ], + out: [ + "builtin_types.h", + ], + tools: [ + "builtin_types_h_gen", + ], + cmd: "python3 $(location builtin_types_h_gen) $(location builtin_types.h)", +} + +genrule { + name: "ir_expression_operation.h", + srcs: [ + ], + out: [ + "ir_expression_operation.h", + ], + tools: [ + "ir_expression_operation_gen", + ], + cmd: "python3 $(location ir_expression_operation_gen) enum &> $(location" + + "ir_expression_operation.h)", +} + +cc_library_headers { + name: "inc_compiler", + export_include_dirs: [ + ".", + ], +} + +cc_library_headers { + name: "inc_glsl", + export_include_dirs: [ + "glsl", + ], +} + +cc_library_headers { + name: "inc_spirv", + export_include_dirs: [ + "spirv", + ], +} + +cc_defaults { + name: "compiler_c_flags", + cflags: [ + "-Werror=pointer-arith", + "-Werror=vla", + "-Werror=gnu-empty-initializer", + "-Wno-override-init", + "-Wno-initializer-overrides", + ], +} + +cc_library_static { + name: "compiler", + host_supported: false, + srcs: [ + "glsl_types.c", + "shader_enums.c", + ], + generated_headers: [ + "ir_expression_operation.h", + "builtin_types.h", + ], + generated_sources: [ + "builtin_types.c", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "compiler_c_flags", + "_trial_msvc", + ], + header_libs: [ + "inc_compiler", + "inc_src", + ] + +} + diff --git a/output-dir/src/compiler/clc/Android.bp b/output-dir/src/compiler/clc/Android.bp new file mode 100644 index 000000000..cc6dd18e8 --- /dev/null +++ b/output-dir/src/compiler/clc/Android.bp @@ -0,0 +1,82 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +cc_defaults { + name: "libmesaclc_c_flags", + cflags: [ + "-DDYNAMIC_LIBCLC_PATH="external/mesa3d/llvm-fake/clc-dir/"", + "-DHAS_SPIRV_LINK_LLVM_WORKAROUND=1", + ], +} + +cc_defaults { + name: "libmesaclc_cpp_flags", + cppflags: [ + "-DLLVM_LIB_DIR="/tmp/"", + "-DDYNAMIC_LIBCLC_PATH="external/mesa3d/llvm-fake/clc-dir/"", + "-DHAS_SPIRV_LINK_LLVM_WORKAROUND=1", + ], +} + +cc_library_static { + name: "libmesaclc", + host_supported: false, + srcs: [ + "clc.c", + "clc_helpers.cpp", + "nir_load_libclc.c", + ], + generated_headers: [ + "nir_opcodes.h", + "nir_builder_opcodes.h", + "nir_intrinsics.h", + "nir_intrinsics_indices.h", + "ir_expression_operation.h", + "builtin_types.h", + "shader_stats.h", + "u_format_gen.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "libmesaclc_c_flags", + "libmesaclc_cpp_flags", + ], + static_libs: [ + "libsync", + "nir", + "mesa_util", + "blake3", + "mesa_util_c11", + "compiler", + "vtn", + ], + shared_libs: [ + "m", + "libzstd", + "libdrm", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + "clang-cpp", + "libLLVM16_swiftshader", + ], + header_libs: [ + "inc_src", + "inc_spirv", + "inc_nir", + "inc_compiler", + ] + +} + diff --git a/output-dir/src/compiler/isaspec/Android.bp b/output-dir/src/compiler/isaspec/Android.bp new file mode 100644 index 000000000..28b2b45ed --- /dev/null +++ b/output-dir/src/compiler/isaspec/Android.bp @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +cc_library_static { + name: "isaspec", + host_supported: false, + srcs: [ + "isaspec.c", + ], + generated_headers: [ + "shader_stats.h", + "u_format_gen.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + ], + static_libs: [ + "libsync", + "mesa_util", + "blake3", + "mesa_util_c11", + ], + shared_libs: [ + "m", + "libzstd", + "libdrm", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + +} + diff --git a/output-dir/src/compiler/nir/Android.bp b/output-dir/src/compiler/nir/Android.bp new file mode 100644 index 000000000..af21c6e7f --- /dev/null +++ b/output-dir/src/compiler/nir/Android.bp @@ -0,0 +1,506 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +python_binary_host { + name: "nir_builder_opcodes_h_gen", + main: "nir_builder_opcodes_h.py", + srcs: [ + "nir_builder_opcodes_h.py", + "nir_intrinsics.py", + "nir_opcodes.py", + ], + libs: [ + "mako", + ], +} + +python_binary_host { + name: "nir_constant_expressions_gen", + main: "nir_constant_expressions.py", + srcs: [ + "nir_constant_expressions.py", + "nir_intrinsics.py", + "nir_opcodes.py", + ], + libs: [ + "mako", + ], +} + +python_binary_host { + name: "nir_intrinsics_c_gen", + main: "nir_intrinsics_c.py", + srcs: [ + "nir_intrinsics.py", + "nir_intrinsics_c.py", + ], + libs: [ + "mako", + ], +} + +python_binary_host { + name: "nir_intrinsics_h_gen", + main: "nir_intrinsics_h.py", + srcs: [ + "nir_intrinsics.py", + "nir_intrinsics_h.py", + ], + libs: [ + "mako", + ], +} + +python_binary_host { + name: "nir_intrinsics_indices_h_gen", + main: "nir_intrinsics_indices_h.py", + srcs: [ + "nir_intrinsics.py", + "nir_intrinsics_indices_h.py", + ], + libs: [ + "mako", + ], +} + +python_binary_host { + name: "nir_opcodes_c_gen", + main: "nir_opcodes_c.py", + srcs: [ + "nir_intrinsics.py", + "nir_opcodes.py", + "nir_opcodes_c.py", + ], + libs: [ + "mako", + ], +} + +python_binary_host { + name: "nir_opcodes_h_gen", + main: "nir_opcodes_h.py", + srcs: [ + "nir_intrinsics.py", + "nir_opcodes.py", + "nir_opcodes_h.py", + ], + libs: [ + "mako", + ], +} + +python_binary_host { + name: "nir_opt_algebraic_gen", + main: "nir_opt_algebraic.py", + srcs: [ + "nir_algebraic.py", + "nir_opcodes.py", + "nir_opt_algebraic.py", + ], + libs: [ + "mako", + ], +} + +genrule { + name: "nir_builder_opcodes.h", + srcs: [ + ], + out: [ + "nir_builder_opcodes.h", + ], + tools: [ + "nir_builder_opcodes_h_gen", + ], + cmd: "python3 $(location nir_builder_opcodes_h_gen) &> $(location" + + "nir_builder_opcodes.h)", +} + +genrule { + name: "nir_constant_expressions.c", + srcs: [ + ], + out: [ + "nir_constant_expressions.c", + ], + tools: [ + "nir_constant_expressions_gen", + ], + cmd: "python3 $(location nir_constant_expressions_gen) &> $(location" + + "nir_constant_expressions.c)", +} + +genrule { + name: "nir_intrinsic.c", + srcs: [ + ], + out: [ + "nir_intrinsics.c", + ], + tools: [ + "nir_intrinsics_c_gen", + ], + cmd: "python3 $(location nir_intrinsics_c_gen) --outdir $(genDir)", +} + +genrule { + name: "nir_intrinsics.h", + srcs: [ + ], + out: [ + "nir_intrinsics.h", + ], + tools: [ + "nir_intrinsics_h_gen", + ], + cmd: "python3 $(location nir_intrinsics_h_gen) --outdir $(genDir)", +} + +genrule { + name: "nir_intrinsics_indices.h", + srcs: [ + ], + out: [ + "nir_intrinsics_indices.h", + ], + tools: [ + "nir_intrinsics_indices_h_gen", + ], + cmd: "python3 $(location nir_intrinsics_indices_h_gen) --outdir $(genDir)", +} + +genrule { + name: "nir_opcodes.c", + srcs: [ + ], + out: [ + "nir_opcodes.c", + ], + tools: [ + "nir_opcodes_c_gen", + ], + cmd: "python3 $(location nir_opcodes_c_gen) &> $(location nir_opcodes.c)", +} + +genrule { + name: "nir_opcodes.h", + srcs: [ + ], + out: [ + "nir_opcodes.h", + ], + tools: [ + "nir_opcodes_h_gen", + ], + cmd: "python3 $(location nir_opcodes_h_gen) &> $(location nir_opcodes.h)", +} + +genrule { + name: "nir_opt_algebraic.c", + srcs: [ + ], + out: [ + "nir_opt_algebraic.c", + ], + tools: [ + "nir_opt_algebraic_gen", + ], + cmd: "python3 $(location nir_opt_algebraic_gen) --out $(location nir_opt_algebraic.c)", +} + +cc_library_headers { + name: "inc_nir", + export_include_dirs: [ + ".", + ], +} + +cc_defaults { + name: "nir_c_flags", + cflags: [ + "-Werror=pointer-arith", + "-Werror=vla", + "-Werror=gnu-empty-initializer", + "-Wno-override-init", + "-Wno-initializer-overrides", + ], +} + +cc_library_static { + name: "nir", + host_supported: false, + srcs: [ + "nir.c", + "nir_builder.c", + "nir_builtin_builder.c", + "nir_clone.c", + "nir_control_flow.c", + "nir_deref.c", + "nir_divergence_analysis.c", + "nir_dominance.c", + "nir_dominance_lca.c", + "nir_fixup_is_exported.c", + "nir_format_convert.c", + "nir_from_ssa.c", + "nir_functions.c", + "nir_gather_info.c", + "nir_gather_output_deps.c", + "nir_gather_tcs_info.c", + "nir_gather_types.c", + "nir_gather_xfb_info.c", + "nir_opt_group_loads.c", + "nir_gs_count_vertices.c", + "nir_inline_sysval.c", + "nir_inline_uniforms.c", + "nir_instr_set.c", + "nir_io_add_const_offset_to_base.c", + "nir_io_add_xfb_info.c", + "nir_legacy.c", + "nir_linking_helpers.c", + "nir_liveness.c", + "nir_loop_analyze.c", + "nir_lower_alu.c", + "nir_lower_alu_width.c", + "nir_lower_alpha.c", + "nir_lower_amul.c", + "nir_lower_array_deref_of_vec.c", + "nir_lower_atomics_to_ssbo.c", + "nir_lower_bitmap.c", + "nir_lower_blend.c", + "nir_lower_bool_to_bitsize.c", + "nir_lower_bool_to_float.c", + "nir_lower_bool_to_int32.c", + "nir_lower_calls_to_builtins.c", + "nir_lower_cl_images.c", + "nir_lower_clamp_color_outputs.c", + "nir_lower_clip.c", + "nir_lower_clip_cull_distance_array_vars.c", + "nir_lower_clip_disable.c", + "nir_lower_clip_halfz.c", + "nir_lower_const_arrays_to_uniforms.c", + "nir_lower_continue_constructs.c", + "nir_lower_convert_alu_types.c", + "nir_lower_cooperative_matrix.c", + "nir_lower_variable_initializers.c", + "nir_lower_discard_if.c", + "nir_lower_double_ops.c", + "nir_lower_explicit_io.c", + "nir_lower_fb_read.c", + "nir_lower_flatshade.c", + "nir_lower_flrp.c", + "nir_lower_fp16_conv.c", + "nir_lower_fragcoord_wtrans.c", + "nir_lower_frag_coord_to_pixel_coord.c", + "nir_lower_fragcolor.c", + "nir_lower_frexp.c", + "nir_lower_global_vars_to_local.c", + "nir_lower_goto_ifs.c", + "nir_lower_gs_intrinsics.c", + "nir_lower_halt_to_return.c", + "nir_lower_helper_writes.c", + "nir_lower_load_const_to_scalar.c", + "nir_lower_locals_to_regs.c", + "nir_lower_idiv.c", + "nir_lower_image.c", + "nir_lower_image_atomics_to_global.c", + "nir_lower_indirect_derefs.c", + "nir_lower_input_attachments.c", + "nir_lower_int64.c", + "nir_lower_interpolation.c", + "nir_lower_int_to_float.c", + "nir_lower_io.c", + "nir_lower_io_array_vars_to_elements.c", + "nir_lower_io_indirect_loads.c", + "nir_lower_io_vars_to_temporaries.c", + "nir_lower_io_to_scalar.c", + "nir_lower_io_vars_to_scalar.c", + "nir_lower_is_helper_invocation.c", + "nir_lower_multiview.c", + "nir_lower_mediump.c", + "nir_lower_mem_access_bit_sizes.c", + "nir_lower_memcpy.c", + "nir_lower_memory_model.c", + "nir_lower_non_uniform_access.c", + "nir_lower_packing.c", + "nir_lower_passthrough_edgeflags.c", + "nir_lower_patch_vertices.c", + "nir_lower_phis_to_scalar.c", + "nir_lower_pntc_ytransform.c", + "nir_lower_point_size.c", + "nir_lower_point_smooth.c", + "nir_lower_poly_line_smooth.c", + "nir_lower_printf.c", + "nir_lower_reg_intrinsics_to_ssa.c", + "nir_lower_readonly_images_to_tex.c", + "nir_lower_returns.c", + "nir_lower_robust_access.c", + "nir_lower_samplers.c", + "nir_lower_sample_shading.c", + "nir_lower_scratch.c", + "nir_lower_scratch_to_var.c", + "nir_lower_shader_calls.c", + "nir_lower_single_sampled.c", + "nir_lower_ssbo.c", + "nir_lower_subgroups.c", + "nir_lower_system_values.c", + "nir_lower_task_shader.c", + "nir_lower_terminate_to_demote.c", + "nir_lower_tess_coord_z.c", + "nir_lower_tex_shadow.c", + "nir_lower_tex.c", + "nir_lower_texcoord_replace.c", + "nir_lower_texcoord_replace_late.c", + "nir_lower_two_sided_color.c", + "nir_lower_undef_to_zero.c", + "nir_lower_vars_to_ssa.c", + "nir_lower_var_copies.c", + "nir_lower_vec_to_regs.c", + "nir_lower_vec3_to_vec4.c", + "nir_lower_view_index_to_device_index.c", + "nir_lower_viewport_transform.c", + "nir_lower_wpos_center.c", + "nir_lower_wpos_ytransform.c", + "nir_lower_wrmasks.c", + "nir_lower_bit_size.c", + "nir_lower_ubo_vec4.c", + "nir_lower_uniforms_to_ubo.c", + "nir_lower_sysvals_to_varyings.c", + "nir_metadata.c", + "nir_mod_analysis.c", + "nir_move_output_stores_to_end.c", + "nir_move_vec_src_uses_to_dest.c", + "nir_normalize_cubemap_coords.c", + "nir_opt_access.c", + "nir_opt_barriers.c", + "nir_opt_call.c", + "nir_opt_clip_cull_const.c", + "nir_opt_combine_stores.c", + "nir_opt_comparison_pre.c", + "nir_opt_constant_folding.c", + "nir_opt_copy_prop_vars.c", + "nir_opt_copy_propagate.c", + "nir_opt_cse.c", + "nir_opt_dce.c", + "nir_opt_dead_cf.c", + "nir_opt_dead_write_vars.c", + "nir_opt_find_array_copies.c", + "nir_opt_frag_coord_to_pixel_coord.c", + "nir_opt_fragdepth.c", + "nir_opt_gcm.c", + "nir_opt_generate_bfi.c", + "nir_opt_idiv_const.c", + "nir_opt_if.c", + "nir_opt_intrinsics.c", + "nir_opt_large_constants.c", + "nir_opt_licm.c", + "nir_opt_load_skip_helpers.c", + "nir_opt_load_store_vectorize.c", + "nir_opt_loop.c", + "nir_opt_loop_unroll.c", + "nir_opt_memcpy.c", + "nir_opt_move.c", + "nir_opt_move_discards_to_top.c", + "nir_opt_move_to_top.c", + "nir_opt_mqsad.c", + "nir_opt_non_uniform_access.c", + "nir_opt_offsets.c", + "nir_opt_peephole_select.c", + "nir_opt_phi_precision.c", + "nir_opt_phi_to_bool.c", + "nir_opt_preamble.c", + "nir_opt_ray_queries.c", + "nir_opt_reassociate.c", + "nir_opt_reassociate_bfi.c", + "nir_opt_rematerialize_compares.c", + "nir_opt_remove_phis.c", + "nir_opt_shrink_stores.c", + "nir_opt_shrink_vectors.c", + "nir_opt_sink.c", + "nir_opt_undef.c", + "nir_opt_uniform_atomics.c", + "nir_opt_uniform_subgroup.c", + "nir_opt_varyings.c", + "nir_opt_vectorize.c", + "nir_opt_vectorize_io.c", + "nir_opt_vectorize_io_vars.c", + "nir_passthrough_gs.c", + "nir_passthrough_tcs.c", + "nir_phi_builder.c", + "nir_print.c", + "nir_propagate_invariant.c", + "nir_range_analysis.c", + "nir_recompute_io_bases.c", + "nir_remove_dead_variables.c", + "nir_remove_tex_shadow.c", + "nir_repair_ssa.c", + "nir_scale_fdiv.c", + "nir_schedule.c", + "nir_search.c", + "nir_serialize.c", + "nir_split_64bit_vec3_and_vec4.c", + "nir_split_conversions.c", + "nir_split_per_member_structs.c", + "nir_split_var_copies.c", + "nir_split_vars.c", + "nir_sweep.c", + "nir_to_lcssa.c", + "nir_trivialize_registers.c", + "nir_unlower_io_to_vars.c", + "nir_use_dominance.c", + "nir_validate.c", + "nir_worklist.c", + "nir_lower_atomics.c", + ], + generated_headers: [ + "nir_opcodes.h", + "nir_builder_opcodes.h", + "nir_intrinsics.h", + "nir_intrinsics_indices.h", + "ir_expression_operation.h", + "builtin_types.h", + "shader_stats.h", + "u_format_gen.h", + ], + generated_sources: [ + "nir_opt_algebraic.c", + "nir_opcodes.c", + "nir_constant_expressions.c", + "nir_intrinsic.c", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "nir_c_flags", + ], + static_libs: [ + "libsync", + "compiler", + "mesa_util", + "blake3", + "mesa_util_c11", + ], + shared_libs: [ + "m", + "libzstd", + "libdrm", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_compiler", + ] + +} + diff --git a/output-dir/src/compiler/spirv/Android.bp b/output-dir/src/compiler/spirv/Android.bp new file mode 100644 index 000000000..6977e6dff --- /dev/null +++ b/output-dir/src/compiler/spirv/Android.bp @@ -0,0 +1,181 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +python_binary_host { + name: "spirv_info_gen_gen", + main: "spirv_info_gen.py", + srcs: [ + "spirv_info_gen.py", + ], + libs: [ + "mako", + ], +} + +python_binary_host { + name: "vtn_gather_types_c_gen", + main: "vtn_gather_types_c.py", + srcs: [ + "vtn_gather_types_c.py", + ], + libs: [ + "mako", + ], +} + +python_binary_host { + name: "vtn_generator_ids_h_gen", + main: "vtn_generator_ids_h.py", + srcs: [ + "vtn_generator_ids_h.py", + ], + libs: [ + "mako", + ], +} + +genrule { + name: "spirv_info_header", + srcs: [ + "spirv.core.grammar.json", + ], + out: [ + "spirv_info.h", + ], + tools: [ + "spirv_info_gen_gen", + ], + cmd: "python3 $(location spirv_info_gen_gen) --json $(location" + + "spirv.core.grammar.json) --out-h $(location spirv_info.h) --out-c" + + ""$(genDir)/placeholder.c"", +} + +genrule { + name: "spirv_info_impl", + srcs: [ + "spirv.core.grammar.json", + ], + out: [ + "spirv_info.c", + ], + tools: [ + "spirv_info_gen_gen", + ], + cmd: "python3 $(location spirv_info_gen_gen) --json $(location" + + "spirv.core.grammar.json) --out-h "$(genDir)/spirv_info.h" --out-c $(location" + + "spirv_info.c)", +} + +genrule { + name: "vtn_gather_types.c", + srcs: [ + "spirv.core.grammar.json", + ], + out: [ + "vtn_gather_types.c", + ], + tools: [ + "vtn_gather_types_c_gen", + ], + cmd: "python3 $(location vtn_gather_types_c_gen) $(location spirv.core.grammar.json)" + + "$(location vtn_gather_types.c)", +} + +genrule { + name: "vtn_generator_ids.h", + srcs: [ + "spir-v.xml", + ], + out: [ + "vtn_generator_ids.h", + ], + tools: [ + "vtn_generator_ids_h_gen", + ], + cmd: "python3 $(location vtn_generator_ids_h_gen) $(location spir-v.xml) $(location" + + "vtn_generator_ids.h)", +} + +cc_defaults { + name: "vtn_c_flags", + cflags: [ + "-Werror=pointer-arith", + "-Werror=vla", + "-Werror=gnu-empty-initializer", + "-Wno-override-init", + "-Wno-initializer-overrides", + ], +} + +cc_library_static { + name: "vtn", + host_supported: false, + srcs: [ + "gl_spirv.c", + "spirv_to_nir.c", + "vtn_alu.c", + "vtn_amd.c", + "vtn_cfg.c", + "vtn_cmat.c", + "vtn_debug.c", + "vtn_glsl450.c", + "vtn_opencl.c", + "vtn_structured_cfg.c", + "vtn_subgroup.c", + "vtn_variables.c", + ], + generated_headers: [ + "spirv_info_header", + "vtn_generator_ids.h", + "nir_opcodes.h", + "nir_builder_opcodes.h", + "nir_intrinsics.h", + "nir_intrinsics_indices.h", + "ir_expression_operation.h", + "builtin_types.h", + "shader_stats.h", + "u_format_gen.h", + ], + generated_sources: [ + "spirv_info_impl", + "vtn_gather_types.c", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "vtn_c_flags", + ], + static_libs: [ + "libsync", + "nir", + "mesa_util", + "blake3", + "mesa_util_c11", + "compiler", + ], + shared_libs: [ + "m", + "libzstd", + "libdrm", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_nir", + "inc_compiler", + ] + +} + diff --git a/output-dir/src/freedreno/Android.bp b/output-dir/src/freedreno/Android.bp new file mode 100644 index 000000000..599d1ecb1 --- /dev/null +++ b/output-dir/src/freedreno/Android.bp @@ -0,0 +1,27 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +cc_library_headers { + name: "inc_freedreno", + export_include_dirs: [ + ".", + "./common", + "./registers", + "./registers/adreno", + ], +} + +cc_library_headers { + name: "inc_freedreno_rnn", + export_include_dirs: [ + "rnn", + ], +} + diff --git a/output-dir/src/freedreno/common/Android.bp b/output-dir/src/freedreno/common/Android.bp new file mode 100644 index 000000000..65c9e5334 --- /dev/null +++ b/output-dir/src/freedreno/common/Android.bp @@ -0,0 +1,87 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +python_binary_host { + name: "freedreno_devices_gen", + main: "freedreno_devices.py", + srcs: [ + "freedreno_devices.py", + ], + libs: [ + "mako", + ], +} + +genrule { + name: "freedreno_devices.h", + srcs: [ + ], + out: [ + "freedreno_devices.h", + ], + tools: [ + "freedreno_devices_gen", + ], + cmd: "python3 $(location freedreno_devices_gen) -p" + + "/tmp/tmpx1uwqcvq/src/freedreno/registers/adreno/ &> $(location" + + "freedreno_devices.h)", +} + +cc_defaults { + name: "freedreno_common_c_flags", + cflags: [ + "-Wno-override-init", + "-Wno-initializer-overrides", + ], +} + +cc_library_static { + name: "freedreno_common", + host_supported: false, + srcs: [ + "freedreno_dev_info.c", + "freedreno_rd_output.c", + "freedreno_uuid.c", + ], + generated_headers: [ + "freedreno_devices.h", + "git_sha1.h", + "shader_stats.h", + "u_format_gen.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "freedreno_common_c_flags", + ], + static_libs: [ + "libsync", + "mesa_util", + "blake3", + "mesa_util_c11", + ], + shared_libs: [ + "m", + "libzstd", + "libdrm", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_freedreno", + "inc_src", + ] + +} + diff --git a/output-dir/src/freedreno/drm/Android.bp b/output-dir/src/freedreno/drm/Android.bp new file mode 100644 index 000000000..7591041f9 --- /dev/null +++ b/output-dir/src/freedreno/drm/Android.bp @@ -0,0 +1,87 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +cc_defaults { + name: "freedreno_drm_c_flags", + cflags: [ + "-Wno-override-init", + "-Wno-initializer-overrides", + ], +} + +cc_library_static { + name: "freedreno_drm", + host_supported: false, + srcs: [ + "freedreno_bo.c", + "freedreno_bo_heap.c", + "freedreno_bo_cache.c", + "freedreno_device.c", + "freedreno_pipe.c", + "freedreno_ringbuffer.c", + "freedreno_ringbuffer_sp.c", + "msm/msm_bo.c", + "msm/msm_device.c", + "msm/msm_pipe.c", + "msm/msm_ringbuffer.c", + "msm/msm_ringbuffer_sp.c", + ], + generated_headers: [ + "adreno.xml.h", + "a2xx.xml.h", + "a3xx.xml.h", + "a4xx.xml.h", + "a5xx.xml.h", + "a6xx.xml.h", + "a6xx_enums.xml.h", + "a6xx_descriptors.xml.h", + "a6xx_perfcntrs.xml.h", + "a7xx_enums.xml.h", + "a7xx_perfcntrs.xml.h", + "a6xx_gmu.xml.h", + "ocmem.xml.h", + "adreno_control_regs.xml.h", + "adreno_pipe_regs.xml.h", + "adreno_common.xml.h", + "adreno_pm4.xml.h", + "a6xx-pack.xml.h", + "adreno-pm4-pack.xml.h", + "shader_stats.h", + "u_format_gen.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "freedreno_drm_c_flags", + ], + static_libs: [ + "libsync", + "mesa_util", + "blake3", + "mesa_util_c11", + ], + shared_libs: [ + "libdrm", + "m", + "libzstd", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_freedreno", + "inc_src", + ] + +} + diff --git a/output-dir/src/freedreno/fdl/Android.bp b/output-dir/src/freedreno/fdl/Android.bp new file mode 100644 index 000000000..a6365c516 --- /dev/null +++ b/output-dir/src/freedreno/fdl/Android.bp @@ -0,0 +1,91 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +cc_defaults { + name: "freedreno_layout_c_flags", + cflags: [ + "-Wno-override-init", + "-Wno-initializer-overrides", + ], +} + +cc_library_static { + name: "freedreno_layout", + host_supported: false, + srcs: [ + "fd5_layout.c", + "fd6_format_table.c", + "fd6_layout.c", + "fd6_tiled_memcpy.cc", + "fd6_view.c", + "freedreno_layout.c", + "freedreno_lrz_layout.c", + ], + generated_headers: [ + "adreno.xml.h", + "a2xx.xml.h", + "a3xx.xml.h", + "a4xx.xml.h", + "a5xx.xml.h", + "a6xx.xml.h", + "a6xx_enums.xml.h", + "a6xx_descriptors.xml.h", + "a6xx_perfcntrs.xml.h", + "a7xx_enums.xml.h", + "a7xx_perfcntrs.xml.h", + "a6xx_gmu.xml.h", + "ocmem.xml.h", + "adreno_control_regs.xml.h", + "adreno_pipe_regs.xml.h", + "adreno_common.xml.h", + "adreno_pm4.xml.h", + "a6xx-pack.xml.h", + "adreno-pm4-pack.xml.h", + "nir_opcodes.h", + "nir_builder_opcodes.h", + "nir_intrinsics.h", + "nir_intrinsics_indices.h", + "ir_expression_operation.h", + "builtin_types.h", + "shader_stats.h", + "u_format_gen.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "freedreno_layout_c_flags", + ], + static_libs: [ + "libsync", + "mesa_util", + "blake3", + "mesa_util_c11", + "freedreno_common", + ], + shared_libs: [ + "m", + "libzstd", + "libdrm", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_freedreno", + "inc_src", + "inc_nir", + "inc_compiler", + ] + +} + diff --git a/output-dir/src/freedreno/ir2/Android.bp b/output-dir/src/freedreno/ir2/Android.bp new file mode 100644 index 000000000..569ea8ea4 --- /dev/null +++ b/output-dir/src/freedreno/ir2/Android.bp @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +cc_defaults { + name: "freedreno_ir2_c_flags", + cflags: [ + "-Wno-override-init", + "-Wno-initializer-overrides", + ], +} + +cc_library_static { + name: "freedreno_ir2", + host_supported: false, + srcs: [ + "disasm-a2xx.c", + ], + generated_headers: [ + "adreno.xml.h", + "a2xx.xml.h", + "a3xx.xml.h", + "a4xx.xml.h", + "a5xx.xml.h", + "a6xx.xml.h", + "a6xx_enums.xml.h", + "a6xx_descriptors.xml.h", + "a6xx_perfcntrs.xml.h", + "a7xx_enums.xml.h", + "a7xx_perfcntrs.xml.h", + "a6xx_gmu.xml.h", + "ocmem.xml.h", + "adreno_control_regs.xml.h", + "adreno_pipe_regs.xml.h", + "adreno_common.xml.h", + "adreno_pm4.xml.h", + "a6xx-pack.xml.h", + "adreno-pm4-pack.xml.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "freedreno_ir2_c_flags", + ], + header_libs: [ + "inc_freedreno", + "inc_src", + ] + +} + diff --git a/output-dir/src/freedreno/ir3/Android.bp b/output-dir/src/freedreno/ir3/Android.bp new file mode 100644 index 000000000..895112b1b --- /dev/null +++ b/output-dir/src/freedreno/ir3/Android.bp @@ -0,0 +1,286 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +python_binary_host { + name: "ir3_nir_branch_and_or_not_gen", + main: "ir3_nir_branch_and_or_not.py", + srcs: [ + "ir3_nir_branch_and_or_not.py", + "nir_algebraic.py", + "nir_opcodes.py", + ], + libs: [ + "mako", + ], +} + +python_binary_host { + name: "ir3_nir_imul_gen", + main: "ir3_nir_imul.py", + srcs: [ + "ir3_nir_imul.py", + "nir_algebraic.py", + "nir_opcodes.py", + ], + libs: [ + "mako", + ], +} + +python_binary_host { + name: "ir3_nir_trig_gen", + main: "ir3_nir_trig.py", + srcs: [ + "ir3_nir_trig.py", + "nir_algebraic.py", + "nir_opcodes.py", + ], + libs: [ + "mako", + ], +} + +python_binary_host { + name: "ir3_nir_triop_bitwise_gen", + main: "ir3_nir_triop_bitwise.py", + srcs: [ + "ir3_nir_triop_bitwise.py", + "nir_algebraic.py", + "nir_opcodes.py", + ], + libs: [ + "mako", + ], +} + +genrule { + name: "ir3_lexer.c", + srcs: [ + "ir3_lexer.l", + ], + out: [ + "ir3_lexer.c", + ], + tools: [ + ], + cmd: "flex -o $(location ir3_lexer.c) $(location ir3_lexer.l)", +} + +genrule { + name: "ir3_nir_branch_and_or_not.c", + srcs: [ + ], + out: [ + "ir3_nir_branch_and_or_not.c", + ], + tools: [ + "ir3_nir_branch_and_or_not_gen", + ], + cmd: "python3 $(location ir3_nir_branch_and_or_not_gen) -p" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/compiler/nir/ &>" + + "$(location ir3_nir_branch_and_or_not.c)", +} + +genrule { + name: "ir3_nir_imul.c", + srcs: [ + ], + out: [ + "ir3_nir_imul.c", + ], + tools: [ + "ir3_nir_imul_gen", + ], + cmd: "python3 $(location ir3_nir_imul_gen) -p" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/compiler/nir/ &>" + + "$(location ir3_nir_imul.c)", +} + +genrule { + name: "ir3_nir_trig.c", + srcs: [ + ], + out: [ + "ir3_nir_trig.c", + ], + tools: [ + "ir3_nir_trig_gen", + ], + cmd: "python3 $(location ir3_nir_trig_gen) -p" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/compiler/nir/ &>" + + "$(location ir3_nir_trig.c)", +} + +genrule { + name: "ir3_nir_triop_bitwise.c", + srcs: [ + ], + out: [ + "ir3_nir_triop_bitwise.c", + ], + tools: [ + "ir3_nir_triop_bitwise_gen", + ], + cmd: "python3 $(location ir3_nir_triop_bitwise_gen) -p" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/compiler/nir/ &>" + + "$(location ir3_nir_triop_bitwise.c)", +} + +genrule { + name: "ir3_parser.[ch]_header", + srcs: [ + "ir3_parser.y", + ], + out: [ + "ir3_parser.h", + ], + tools: [ + ], + cmd: "bison -Wno-deprecated $(location ir3_parser.y) --name-prefix=ir3_yy" + + "--defines=@OUTPUT1@ --output=@OUTPUT0@", +} + +genrule { + name: "ir3_parser.[ch]_impl", + srcs: [ + "ir3_parser.y", + ], + out: [ + "ir3_parser.c", + ], + tools: [ + ], + cmd: "bison -Wno-deprecated $(location ir3_parser.y) --name-prefix=ir3_yy" + + "--defines=@OUTPUT1@ --output=@OUTPUT0@", +} + +cc_defaults { + name: "freedreno_ir3_c_flags", + cflags: [ + "-Wno-override-init", + "-Wno-initializer-overrides", + ], +} + +cc_library_static { + name: "freedreno_ir3", + host_supported: false, + srcs: [ + "disasm-a3xx.c", + "ir3.c", + "ir3_a4xx.c", + "ir3_a6xx.c", + "ir3_alias.c", + "ir3_array_to_ssa.c", + "ir3_assembler.c", + "ir3_compiler_nir.c", + "ir3_compiler.c", + "ir3_context.c", + "ir3_cf.c", + "ir3_cp.c", + "ir3_cse.c", + "ir3_dce.c", + "ir3_delay.c", + "ir3_dominance.c", + "ir3_disk_cache.c", + "ir3_image.c", + "ir3_legalize.c", + "ir3_legalize_relative.c", + "ir3_liveness.c", + "ir3_lower_parallelcopy.c", + "ir3_lower_shared_phi.c", + "ir3_lower_spill.c", + "ir3_lower_subgroups.c", + "ir3_merge_regs.c", + "ir3_nir.c", + "ir3_nir_analyze_ubo_ranges.c", + "ir3_nir_lower_64b.c", + "ir3_nir_lower_driver_params_to_ubo.c", + "ir3_nir_lower_load_barycentric_at_sample.c", + "ir3_nir_lower_load_barycentric_at_offset.c", + "ir3_nir_lower_push_consts_to_preamble.c", + "ir3_nir_lower_shading_rate.c", + "ir3_nir_lower_io_offsets.c", + "ir3_nir_lower_tess.c", + "ir3_nir_lower_tex_prefetch.c", + "ir3_nir_move_varying_inputs.c", + "ir3_nir_lower_layer_id.c", + "ir3_nir_opt_preamble.c", + "ir3_opt_predicates.c", + "ir3_postsched.c", + "ir3_preamble.c", + "ir3_print.c", + "ir3_ra.c", + "ir3_ra_predicates.c", + "ir3_ra_validate.c", + "ir3_reconvergence.c", + "ir3_remove_unreachable.c", + "ir3_rpt.c", + "ir3_sched.c", + "ir3_shader.c", + "ir3_shader_bisect.c", + "ir3_shared_folding.c", + "ir3_shared_ra.c", + "ir3_spill.c", + "ir3_validate.c", + ], + generated_headers: [ + "ir3-isa_header", + "nir_opcodes.h", + "nir_builder_opcodes.h", + "nir_intrinsics.h", + "nir_intrinsics_indices.h", + "ir_expression_operation.h", + "builtin_types.h", + "shader_stats.h", + "u_format_gen.h", + ], + generated_sources: [ + "ir3_nir_trig.c", + "ir3_nir_imul.c", + "ir3_nir_branch_and_or_not.c", + "ir3_nir_triop_bitwise.c", + "ir3_lexer.c", + "ir3-isa_impl", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "freedreno_ir3_c_flags", + ], + static_libs: [ + "libsync", + "ir3encode", + "freedreno_common", + "ir3decode", + "mesa_util", + "blake3", + "mesa_util_c11", + ], + shared_libs: [ + "m", + "libzstd", + "libdrm", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_freedreno", + "inc_src", + "inc_nir", + "inc_compiler", + ] + +} + diff --git a/output-dir/src/freedreno/isa/Android.bp b/output-dir/src/freedreno/isa/Android.bp new file mode 100644 index 000000000..896fa53f4 --- /dev/null +++ b/output-dir/src/freedreno/isa/Android.bp @@ -0,0 +1,141 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +genrule { + name: "encode.h", + srcs: [ + "ir3.xml", + ], + out: [ + "encode.h", + ], + tools: [ + ], + cmd: "encode.py --xml $(location ir3.xml) --out-h $(location encode.h)", +} + +genrule { + name: "ir3-isa_header", + srcs: [ + "ir3.xml", + ], + out: [ + "ir3-isa.h", + ], + tools: [ + ], + cmd: "decode.py --xml $(location ir3.xml) --out-c "$(genDir)/placeholder.c" --out-h" + + "$(location ir3-isa.h)", +} + +genrule { + name: "ir3-isa_impl", + srcs: [ + "ir3.xml", + ], + out: [ + "ir3-isa.c", + ], + tools: [ + ], + cmd: "decode.py --xml $(location ir3.xml) --out-c $(location ir3-isa.c) --out-h" + + ""$(genDir)/ir3-isa.h"", +} + +cc_library_static { + name: "ir3decode", + host_supported: false, + srcs: [ + ], + generated_headers: [ + "ir3-isa_header", + "shader_stats.h", + "u_format_gen.h", + ], + generated_sources: [ + "ir3-isa_impl", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + ], + static_libs: [ + "libsync", + "isaspec", + "mesa_util", + "blake3", + "mesa_util_c11", + ], + shared_libs: [ + "m", + "libzstd", + "libdrm", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + ] + +} + +cc_library_static { + name: "ir3encode", + host_supported: false, + srcs: [ + "encode.c", + ], + generated_headers: [ + "encode.h", + "shader_stats.h", + "u_format_gen.h", + "nir_opcodes.h", + "nir_builder_opcodes.h", + "nir_intrinsics.h", + "nir_intrinsics_indices.h", + "ir_expression_operation.h", + "builtin_types.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + ], + static_libs: [ + "libsync", + "mesa_util", + "blake3", + "mesa_util_c11", + "nir", + "compiler", + ], + shared_libs: [ + "m", + "libzstd", + "libdrm", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_freedreno", + "inc_nir", + "inc_compiler", + ] + +} + diff --git a/output-dir/src/freedreno/perfcntrs/Android.bp b/output-dir/src/freedreno/perfcntrs/Android.bp new file mode 100644 index 000000000..512710aa6 --- /dev/null +++ b/output-dir/src/freedreno/perfcntrs/Android.bp @@ -0,0 +1,75 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +cc_defaults { + name: "freedreno_perfcntrs_c_flags", + cflags: [ + "-Wno-override-init", + "-Wno-initializer-overrides", + ], +} + +cc_library_static { + name: "freedreno_perfcntrs", + host_supported: false, + srcs: [ + "fd2_perfcntr.c", + "fd5_perfcntr.c", + "fd6_perfcntr.c", + "fd7_perfcntr.c", + "freedreno_dt.c", + "freedreno_perfcntr.c", + ], + generated_headers: [ + "adreno.xml.h", + "a2xx.xml.h", + "a3xx.xml.h", + "a4xx.xml.h", + "a5xx.xml.h", + "a6xx.xml.h", + "a6xx_enums.xml.h", + "a6xx_descriptors.xml.h", + "a6xx_perfcntrs.xml.h", + "a7xx_enums.xml.h", + "a7xx_perfcntrs.xml.h", + "a6xx_gmu.xml.h", + "ocmem.xml.h", + "adreno_control_regs.xml.h", + "adreno_pipe_regs.xml.h", + "adreno_common.xml.h", + "adreno_pm4.xml.h", + "a6xx-pack.xml.h", + "adreno-pm4-pack.xml.h", + "nir_opcodes.h", + "nir_builder_opcodes.h", + "nir_intrinsics.h", + "nir_intrinsics_indices.h", + "ir_expression_operation.h", + "builtin_types.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "freedreno_perfcntrs_c_flags", + ], + static_libs: [ + "freedreno_common", + ], + header_libs: [ + "inc_freedreno", + "inc_src", + "inc_nir", + "inc_compiler", + ] + +} + diff --git a/output-dir/src/freedreno/registers/Android.bp b/output-dir/src/freedreno/registers/Android.bp new file mode 100644 index 000000000..e2ffe8a46 --- /dev/null +++ b/output-dir/src/freedreno/registers/Android.bp @@ -0,0 +1,94 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +filegroup { + name: "gen_header_py", + srcs: ["gen_header.py"], +} + +filegroup { + name: "rules-fd_xsd", + srcs: ["rules-fd.xsd"], +} + +filegroup { + name: "freedreno_copyright_xml", + srcs: ["freedreno_copyright.xml"], +} + +python_binary_host { + name: "gen_header_gen", + main: "gen_header.py", + srcs: [ + "gen_header.py", + ], + libs: [ + "mako", + ], +} + +genrule { + name: "adreno.xml.gz", + srcs: [ + "adreno.xml", + ], + out: [ + "adreno.xml.gz", + ], + tools: [ + ], + cmd: "gzip -kc $(location adreno.xml) &> $(location adreno.xml.gz)", +} + +genrule { + name: "adreno.xml.h", + srcs: [ + "adreno.xml", + "rules-fd.xsd", + "freedreno_copyright.xml", + ], + out: [ + "adreno.xml.h", + ], + tools: [ + "gen_header_gen", + ], + cmd: "python3 $(location gen_header_gen) --validate --rnn" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa//src/freedreno/registers" + + "--xml $(location adreno.xml) c-defines &> $(location adreno.xml.h)", +} + +genrule { + name: "freedreno_copyright.xml.gz", + srcs: [ + "freedreno_copyright.xml", + ], + out: [ + "freedreno_copyright.xml.gz", + ], + tools: [ + ], + cmd: "gzip -kc $(location freedreno_copyright.xml) &> $(location" + + "freedreno_copyright.xml.gz)", +} + +genrule { + name: "rules-fd.xsd.gz", + srcs: [ + "rules-fd.xsd", + ], + out: [ + "rules-fd.xsd.gz", + ], + tools: [ + ], + cmd: "gzip -kc $(location rules-fd.xsd) &> $(location rules-fd.xsd.gz)", +} + diff --git a/output-dir/src/freedreno/registers/adreno/Android.bp b/output-dir/src/freedreno/registers/adreno/Android.bp new file mode 100644 index 000000000..2df5f790e --- /dev/null +++ b/output-dir/src/freedreno/registers/adreno/Android.bp @@ -0,0 +1,758 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +genrule { + name: "a2xx.py", + srcs: [ + ":gen_header_py", + "rules-fd.xsd", + ":rules-fd_xsd", + ":freedreno_copyright_xml", + ], + out: [ + "a2xx.py", + ], + tools: [ + "gen_header_gen", + ], + cmd: "python3 $(location gen_header_gen) --rnn" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa//src/freedreno/registers" + + "--xml $(location a2xx.xml) py-defines &> $(location a2xx.py)", +} + +genrule { + name: "a2xx.xml.gz", + srcs: [ + "a2xx.xml", + ], + out: [ + "a2xx.xml.gz", + ], + tools: [ + ], + cmd: "gzip -kc $(location a2xx.xml) &> $(location a2xx.xml.gz)", +} + +genrule { + name: "a2xx.xml.h", + srcs: [ + ":gen_header_py", + "rules-fd.xsd", + ":rules-fd_xsd", + ":freedreno_copyright_xml", + ], + out: [ + "a2xx.xml.h", + ], + tools: [ + "gen_header_gen", + ], + cmd: "python3 $(location gen_header_gen) --validate --rnn" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa//src/freedreno/registers" + + "--xml $(location a2xx.xml) c-defines &> $(location a2xx.xml.h)", +} + +genrule { + name: "a3xx.py", + srcs: [ + ":gen_header_py", + "rules-fd.xsd", + ":rules-fd_xsd", + ":freedreno_copyright_xml", + ], + out: [ + "a3xx.py", + ], + tools: [ + "gen_header_gen", + ], + cmd: "python3 $(location gen_header_gen) --rnn" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa//src/freedreno/registers" + + "--xml $(location a3xx.xml) py-defines &> $(location a3xx.py)", +} + +genrule { + name: "a3xx.xml.gz", + srcs: [ + "a3xx.xml", + ], + out: [ + "a3xx.xml.gz", + ], + tools: [ + ], + cmd: "gzip -kc $(location a3xx.xml) &> $(location a3xx.xml.gz)", +} + +genrule { + name: "a3xx.xml.h", + srcs: [ + ":gen_header_py", + "rules-fd.xsd", + ":rules-fd_xsd", + ":freedreno_copyright_xml", + ], + out: [ + "a3xx.xml.h", + ], + tools: [ + "gen_header_gen", + ], + cmd: "python3 $(location gen_header_gen) --validate --rnn" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa//src/freedreno/registers" + + "--xml $(location a3xx.xml) c-defines &> $(location a3xx.xml.h)", +} + +genrule { + name: "a4xx.py", + srcs: [ + ":gen_header_py", + "rules-fd.xsd", + ":rules-fd_xsd", + ":freedreno_copyright_xml", + ], + out: [ + "a4xx.py", + ], + tools: [ + "gen_header_gen", + ], + cmd: "python3 $(location gen_header_gen) --rnn" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa//src/freedreno/registers" + + "--xml $(location a4xx.xml) py-defines &> $(location a4xx.py)", +} + +genrule { + name: "a4xx.xml.gz", + srcs: [ + "a4xx.xml", + ], + out: [ + "a4xx.xml.gz", + ], + tools: [ + ], + cmd: "gzip -kc $(location a4xx.xml) &> $(location a4xx.xml.gz)", +} + +genrule { + name: "a4xx.xml.h", + srcs: [ + ":gen_header_py", + "rules-fd.xsd", + ":rules-fd_xsd", + ":freedreno_copyright_xml", + ], + out: [ + "a4xx.xml.h", + ], + tools: [ + "gen_header_gen", + ], + cmd: "python3 $(location gen_header_gen) --validate --rnn" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa//src/freedreno/registers" + + "--xml $(location a4xx.xml) c-defines &> $(location a4xx.xml.h)", +} + +genrule { + name: "a5xx.py", + srcs: [ + ":gen_header_py", + "rules-fd.xsd", + ":rules-fd_xsd", + ":freedreno_copyright_xml", + ], + out: [ + "a5xx.py", + ], + tools: [ + "gen_header_gen", + ], + cmd: "python3 $(location gen_header_gen) --rnn" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa//src/freedreno/registers" + + "--xml $(location a5xx.xml) py-defines &> $(location a5xx.py)", +} + +genrule { + name: "a5xx.xml.gz", + srcs: [ + "a5xx.xml", + ], + out: [ + "a5xx.xml.gz", + ], + tools: [ + ], + cmd: "gzip -kc $(location a5xx.xml) &> $(location a5xx.xml.gz)", +} + +genrule { + name: "a5xx.xml.h", + srcs: [ + ":gen_header_py", + "rules-fd.xsd", + ":rules-fd_xsd", + ":freedreno_copyright_xml", + ], + out: [ + "a5xx.xml.h", + ], + tools: [ + "gen_header_gen", + ], + cmd: "python3 $(location gen_header_gen) --validate --rnn" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa//src/freedreno/registers" + + "--xml $(location a5xx.xml) c-defines &> $(location a5xx.xml.h)", +} + +genrule { + name: "a6xx-pack.xml.h", + srcs: [ + ":gen_header_py", + "rules-fd.xsd", + ":rules-fd_xsd", + ":freedreno_copyright_xml", + ], + out: [ + "a6xx-pack.xml.h", + ], + tools: [ + "gen_header_gen", + ], + cmd: "python3 $(location gen_header_gen) --rnn" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa//src/freedreno/registers" + + "--xml $(location a6xx.xml) c-pack-structs &> $(location a6xx-pack.xml.h)", +} + +genrule { + name: "a6xx.py", + srcs: [ + ":gen_header_py", + "rules-fd.xsd", + ":rules-fd_xsd", + ":freedreno_copyright_xml", + ], + out: [ + "a6xx.py", + ], + tools: [ + "gen_header_gen", + ], + cmd: "python3 $(location gen_header_gen) --rnn" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa//src/freedreno/registers" + + "--xml $(location a6xx.xml) py-defines &> $(location a6xx.py)", +} + +genrule { + name: "a6xx.xml.gz", + srcs: [ + "a6xx.xml", + ], + out: [ + "a6xx.xml.gz", + ], + tools: [ + ], + cmd: "gzip -kc $(location a6xx.xml) &> $(location a6xx.xml.gz)", +} + +genrule { + name: "a6xx.xml.h", + srcs: [ + ":gen_header_py", + "rules-fd.xsd", + ":rules-fd_xsd", + ":freedreno_copyright_xml", + ], + out: [ + "a6xx.xml.h", + ], + tools: [ + "gen_header_gen", + ], + cmd: "python3 $(location gen_header_gen) --validate --rnn" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa//src/freedreno/registers" + + "--xml $(location a6xx.xml) c-defines &> $(location a6xx.xml.h)", +} + +genrule { + name: "a6xx_descriptors.py", + srcs: [ + ":gen_header_py", + "rules-fd.xsd", + ":rules-fd_xsd", + ":freedreno_copyright_xml", + ], + out: [ + "a6xx_descriptors.py", + ], + tools: [ + "gen_header_gen", + ], + cmd: "python3 $(location gen_header_gen) --rnn" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa//src/freedreno/registers" + + "--xml $(location a6xx_descriptors.xml) py-defines &> $(location" + + "a6xx_descriptors.py)", +} + +genrule { + name: "a6xx_descriptors.xml.gz", + srcs: [ + "a6xx_descriptors.xml", + ], + out: [ + "a6xx_descriptors.xml.gz", + ], + tools: [ + ], + cmd: "gzip -kc $(location a6xx_descriptors.xml) &> $(location a6xx_descriptors.xml.gz)", +} + +genrule { + name: "a6xx_descriptors.xml.h", + srcs: [ + ":gen_header_py", + "rules-fd.xsd", + ":rules-fd_xsd", + ":freedreno_copyright_xml", + ], + out: [ + "a6xx_descriptors.xml.h", + ], + tools: [ + "gen_header_gen", + ], + cmd: "python3 $(location gen_header_gen) --validate --rnn" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa//src/freedreno/registers" + + "--xml $(location a6xx_descriptors.xml) c-defines &> $(location" + + "a6xx_descriptors.xml.h)", +} + +genrule { + name: "a6xx_enums.py", + srcs: [ + ":gen_header_py", + "rules-fd.xsd", + ":rules-fd_xsd", + ":freedreno_copyright_xml", + ], + out: [ + "a6xx_enums.py", + ], + tools: [ + "gen_header_gen", + ], + cmd: "python3 $(location gen_header_gen) --rnn" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa//src/freedreno/registers" + + "--xml $(location a6xx_enums.xml) py-defines &> $(location a6xx_enums.py)", +} + +genrule { + name: "a6xx_enums.xml.gz", + srcs: [ + "a6xx_enums.xml", + ], + out: [ + "a6xx_enums.xml.gz", + ], + tools: [ + ], + cmd: "gzip -kc $(location a6xx_enums.xml) &> $(location a6xx_enums.xml.gz)", +} + +genrule { + name: "a6xx_enums.xml.h", + srcs: [ + ":gen_header_py", + "rules-fd.xsd", + ":rules-fd_xsd", + ":freedreno_copyright_xml", + ], + out: [ + "a6xx_enums.xml.h", + ], + tools: [ + "gen_header_gen", + ], + cmd: "python3 $(location gen_header_gen) --validate --rnn" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa//src/freedreno/registers" + + "--xml $(location a6xx_enums.xml) c-defines &> $(location a6xx_enums.xml.h)", +} + +genrule { + name: "a6xx_gmu.xml.gz", + srcs: [ + "a6xx_gmu.xml", + ], + out: [ + "a6xx_gmu.xml.gz", + ], + tools: [ + ], + cmd: "gzip -kc $(location a6xx_gmu.xml) &> $(location a6xx_gmu.xml.gz)", +} + +genrule { + name: "a6xx_gmu.xml.h", + srcs: [ + ":gen_header_py", + "rules-fd.xsd", + ":rules-fd_xsd", + ":freedreno_copyright_xml", + ], + out: [ + "a6xx_gmu.xml.h", + ], + tools: [ + "gen_header_gen", + ], + cmd: "python3 $(location gen_header_gen) --validate --rnn" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa//src/freedreno/registers" + + "--xml $(location a6xx_gmu.xml) c-defines &> $(location a6xx_gmu.xml.h)", +} + +genrule { + name: "a6xx_perfcntrs.py", + srcs: [ + ":gen_header_py", + "rules-fd.xsd", + ":rules-fd_xsd", + ":freedreno_copyright_xml", + ], + out: [ + "a6xx_perfcntrs.py", + ], + tools: [ + "gen_header_gen", + ], + cmd: "python3 $(location gen_header_gen) --rnn" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa//src/freedreno/registers" + + "--xml $(location a6xx_perfcntrs.xml) py-defines &> $(location a6xx_perfcntrs.py)", +} + +genrule { + name: "a6xx_perfcntrs.xml.gz", + srcs: [ + "a6xx_perfcntrs.xml", + ], + out: [ + "a6xx_perfcntrs.xml.gz", + ], + tools: [ + ], + cmd: "gzip -kc $(location a6xx_perfcntrs.xml) &> $(location a6xx_perfcntrs.xml.gz)", +} + +genrule { + name: "a6xx_perfcntrs.xml.h", + srcs: [ + ":gen_header_py", + "rules-fd.xsd", + ":rules-fd_xsd", + ":freedreno_copyright_xml", + ], + out: [ + "a6xx_perfcntrs.xml.h", + ], + tools: [ + "gen_header_gen", + ], + cmd: "python3 $(location gen_header_gen) --validate --rnn" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa//src/freedreno/registers" + + "--xml $(location a6xx_perfcntrs.xml) c-defines &> $(location" + + "a6xx_perfcntrs.xml.h)", +} + +genrule { + name: "a7xx_enums.py", + srcs: [ + ":gen_header_py", + "rules-fd.xsd", + ":rules-fd_xsd", + ":freedreno_copyright_xml", + ], + out: [ + "a7xx_enums.py", + ], + tools: [ + "gen_header_gen", + ], + cmd: "python3 $(location gen_header_gen) --rnn" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa//src/freedreno/registers" + + "--xml $(location a7xx_enums.xml) py-defines &> $(location a7xx_enums.py)", +} + +genrule { + name: "a7xx_enums.xml.gz", + srcs: [ + "a7xx_enums.xml", + ], + out: [ + "a7xx_enums.xml.gz", + ], + tools: [ + ], + cmd: "gzip -kc $(location a7xx_enums.xml) &> $(location a7xx_enums.xml.gz)", +} + +genrule { + name: "a7xx_enums.xml.h", + srcs: [ + ":gen_header_py", + "rules-fd.xsd", + ":rules-fd_xsd", + ":freedreno_copyright_xml", + ], + out: [ + "a7xx_enums.xml.h", + ], + tools: [ + "gen_header_gen", + ], + cmd: "python3 $(location gen_header_gen) --validate --rnn" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa//src/freedreno/registers" + + "--xml $(location a7xx_enums.xml) c-defines &> $(location a7xx_enums.xml.h)", +} + +genrule { + name: "a7xx_perfcntrs.py", + srcs: [ + ":gen_header_py", + "rules-fd.xsd", + ":rules-fd_xsd", + ":freedreno_copyright_xml", + ], + out: [ + "a7xx_perfcntrs.py", + ], + tools: [ + "gen_header_gen", + ], + cmd: "python3 $(location gen_header_gen) --rnn" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa//src/freedreno/registers" + + "--xml $(location a7xx_perfcntrs.xml) py-defines &> $(location a7xx_perfcntrs.py)", +} + +genrule { + name: "a7xx_perfcntrs.xml.gz", + srcs: [ + "a7xx_perfcntrs.xml", + ], + out: [ + "a7xx_perfcntrs.xml.gz", + ], + tools: [ + ], + cmd: "gzip -kc $(location a7xx_perfcntrs.xml) &> $(location a7xx_perfcntrs.xml.gz)", +} + +genrule { + name: "a7xx_perfcntrs.xml.h", + srcs: [ + ":gen_header_py", + "rules-fd.xsd", + ":rules-fd_xsd", + ":freedreno_copyright_xml", + ], + out: [ + "a7xx_perfcntrs.xml.h", + ], + tools: [ + "gen_header_gen", + ], + cmd: "python3 $(location gen_header_gen) --validate --rnn" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa//src/freedreno/registers" + + "--xml $(location a7xx_perfcntrs.xml) c-defines &> $(location" + + "a7xx_perfcntrs.xml.h)", +} + +genrule { + name: "adreno-pm4-pack.xml.h", + srcs: [ + ":gen_header_py", + "rules-fd.xsd", + ":rules-fd_xsd", + ":freedreno_copyright_xml", + ], + out: [ + "adreno-pm4-pack.xml.h", + ], + tools: [ + "gen_header_gen", + ], + cmd: "python3 $(location gen_header_gen) --rnn" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa//src/freedreno/registers" + + "--xml $(location adreno_pm4.xml) c-pack-structs &> $(location adreno-" + + "pm4-pack.xml.h)", +} + +genrule { + name: "adreno_common.xml.gz", + srcs: [ + "adreno_common.xml", + ], + out: [ + "adreno_common.xml.gz", + ], + tools: [ + ], + cmd: "gzip -kc $(location adreno_common.xml) &> $(location adreno_common.xml.gz)", +} + +genrule { + name: "adreno_common.xml.h", + srcs: [ + ":gen_header_py", + "rules-fd.xsd", + ":rules-fd_xsd", + ":freedreno_copyright_xml", + ], + out: [ + "adreno_common.xml.h", + ], + tools: [ + "gen_header_gen", + ], + cmd: "python3 $(location gen_header_gen) --validate --rnn" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa//src/freedreno/registers" + + "--xml $(location adreno_common.xml) c-defines &> $(location adreno_common.xml.h)", +} + +genrule { + name: "adreno_control_regs.xml.gz", + srcs: [ + "adreno_control_regs.xml", + ], + out: [ + "adreno_control_regs.xml.gz", + ], + tools: [ + ], + cmd: "gzip -kc $(location adreno_control_regs.xml) &> $(location" + + "adreno_control_regs.xml.gz)", +} + +genrule { + name: "adreno_control_regs.xml.h", + srcs: [ + ":gen_header_py", + "rules-fd.xsd", + ":rules-fd_xsd", + ":freedreno_copyright_xml", + ], + out: [ + "adreno_control_regs.xml.h", + ], + tools: [ + "gen_header_gen", + ], + cmd: "python3 $(location gen_header_gen) --validate --rnn" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa//src/freedreno/registers" + + "--xml $(location adreno_control_regs.xml) c-defines &> $(location" + + "adreno_control_regs.xml.h)", +} + +genrule { + name: "adreno_pipe_regs.xml.gz", + srcs: [ + "adreno_pipe_regs.xml", + ], + out: [ + "adreno_pipe_regs.xml.gz", + ], + tools: [ + ], + cmd: "gzip -kc $(location adreno_pipe_regs.xml) &> $(location adreno_pipe_regs.xml.gz)", +} + +genrule { + name: "adreno_pipe_regs.xml.h", + srcs: [ + ":gen_header_py", + "rules-fd.xsd", + ":rules-fd_xsd", + ":freedreno_copyright_xml", + ], + out: [ + "adreno_pipe_regs.xml.h", + ], + tools: [ + "gen_header_gen", + ], + cmd: "python3 $(location gen_header_gen) --validate --rnn" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa//src/freedreno/registers" + + "--xml $(location adreno_pipe_regs.xml) c-defines &> $(location" + + "adreno_pipe_regs.xml.h)", +} + +genrule { + name: "adreno_pm4.xml.gz", + srcs: [ + "adreno_pm4.xml", + ], + out: [ + "adreno_pm4.xml.gz", + ], + tools: [ + ], + cmd: "gzip -kc $(location adreno_pm4.xml) &> $(location adreno_pm4.xml.gz)", +} + +genrule { + name: "adreno_pm4.xml.h", + srcs: [ + ":gen_header_py", + "rules-fd.xsd", + ":rules-fd_xsd", + ":freedreno_copyright_xml", + ], + out: [ + "adreno_pm4.xml.h", + ], + tools: [ + "gen_header_gen", + ], + cmd: "python3 $(location gen_header_gen) --validate --rnn" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa//src/freedreno/registers" + + "--xml $(location adreno_pm4.xml) c-defines &> $(location adreno_pm4.xml.h)", +} + +genrule { + name: "ocmem.xml.gz", + srcs: [ + "ocmem.xml", + ], + out: [ + "ocmem.xml.gz", + ], + tools: [ + ], + cmd: "gzip -kc $(location ocmem.xml) &> $(location ocmem.xml.gz)", +} + +genrule { + name: "ocmem.xml.h", + srcs: [ + ":gen_header_py", + "rules-fd.xsd", + ":rules-fd_xsd", + ":freedreno_copyright_xml", + ], + out: [ + "ocmem.xml.h", + ], + tools: [ + "gen_header_gen", + ], + cmd: "python3 $(location gen_header_gen) --validate --rnn" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa//src/freedreno/registers" + + "--xml $(location ocmem.xml) c-defines &> $(location ocmem.xml.h)", +} + diff --git a/output-dir/src/freedreno/vulkan/Android.bp b/output-dir/src/freedreno/vulkan/Android.bp new file mode 100644 index 000000000..03c21d623 --- /dev/null +++ b/output-dir/src/freedreno/vulkan/Android.bp @@ -0,0 +1,295 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +python_binary_host { + name: "tu_tracepoints_gen", + main: "tu_tracepoints.py", + srcs: [ + "perf/u_trace.py", + "tu_tracepoints.py", + ], + libs: [ + "mako", + ], +} + +python_binary_host { + name: "vk_icd_gen_gen", + main: "vk_icd_gen.py", + srcs: [ + "vk_icd_gen.py", + ], + libs: [ + "mako", + ], +} + +genrule { + name: "freedreno_devenv_icd", + srcs: [ + ":vk_icd_gen_py", + ":vk_xml", + ], + out: [ + "freedreno_devenv_icd.aarch64.json", + ], + tools: [ + "vk_icd_gen_gen", + ], + cmd: "python3 $(location vk_icd_gen_gen) --api-version 1.4 --xml $(location" + + "registry/vk.xml) --sizeof-pointer 0 --lib-path" + + "/tmp/tmpx1uwqcvq/src/freedreno/vulkan/libvulkan_freedreno.so --out $(location" + + "freedreno_devenv_icd.aarch64.json)", +} + +genrule { + name: "freedreno_icd", + srcs: [ + ":vk_icd_gen_py", + ":vk_xml", + ], + out: [ + "freedreno_icd.aarch64.json", + ], + tools: [ + "vk_icd_gen_gen", + ], + cmd: "python3 $(location vk_icd_gen_gen) --api-version 1.4 --xml $(location" + + "registry/vk.xml) --sizeof-pointer 0 --lib-path /usr/local/lib/x86_64-linux-" + + "gnu/libvulkan_freedreno.so --out $(location freedreno_icd.aarch64.json)", +} + +genrule { + name: "tu_entrypoints_header", + srcs: [ + ":vk_entrypoints_gen_py", + ":vk_xml", + ], + out: [ + "tu_entrypoints.h", + ], + tools: [ + "vk_entrypoints_gen_gen", + ], + cmd: "python3 $(location vk_entrypoints_gen_gen) --xml $(location registry/vk.xml)" + + "--proto --weak --out-h $(location tu_entrypoints.h) --out-c" + + ""$(genDir)/placeholder.c" --prefix tu --include adreno_common.xml.h --tmpl-" + + "prefix tu --tmpl-param chip CHIP --tmpl-variants --beta false" + + "--device-prefix tu_rmv", +} + +genrule { + name: "tu_entrypoints_impl", + srcs: [ + ":vk_entrypoints_gen_py", + ":vk_xml", + ], + out: [ + "tu_entrypoints.cc", + ], + tools: [ + "vk_entrypoints_gen_gen", + ], + cmd: "python3 $(location vk_entrypoints_gen_gen) --xml $(location registry/vk.xml)" + + "--proto --weak --out-h "$(genDir)/tu_entrypoints.h" --out-c $(location" + + "tu_entrypoints.cc) --prefix tu --include adreno_common.xml.h --tmpl-prefix tu" + + "--tmpl-param chip CHIP --tmpl-variants --beta false --device-" + + "prefix tu_rmv", +} + +genrule { + name: "tu_tracepoints.[ch]_header", + srcs: [ + ], + out: [ + "tu_tracepoints.h", + "tu_tracepoints_perfetto.h", + ], + tools: [ + "tu_tracepoints_gen", + ], + cmd: "python3 $(location tu_tracepoints_gen) -p" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/util/perf/ --utrace-" + + "src "$(genDir)/placeholder.c" --utrace-hdr $(location tu_tracepoints.h)" + + "--perfetto-hdr $(location tu_tracepoints_perfetto.h)", +} + +genrule { + name: "tu_tracepoints.[ch]_impl", + srcs: [ + ], + out: [ + "tu_tracepoints.cc", + ], + tools: [ + "tu_tracepoints_gen", + ], + cmd: "python3 $(location tu_tracepoints_gen) -p" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/util/perf/ --utrace-" + + "src $(location tu_tracepoints.cc) --utrace-hdr "$(genDir)/tu_tracepoints.h"" + + "--perfetto-hdr "$(genDir)/tu_tracepoints_perfetto.h"", +} + +cc_defaults { + name: "vulkan_freedreno_c_flags", + cflags: [ + "-Wno-override-init", + "-Wno-initializer-overrides", + "-DTU_HAS_MSM", + "-DFD_NO_DEPRECATED_PACK", + ], +} + +cc_defaults { + name: "vulkan_freedreno_cpp_flags", + cppflags: [ + "-fno-exceptions", + "-fno-rtti", + "-Wno-address-of-temporary", + "-Wno-array-bounds", + "-Wno-c++11-narrowing", + "-Wno-c99-designator", + "-Wno-class-memaccess", + "-Wno-missing-braces", + "-Wno-narrowing", + "-Wno-pointer-arith", + "-Wno-reorder-init-list", + "-Wno-sign-compare", + "-Wno-switch", + "-Wno-unused-function", + "-Wno-vla-cxx-extension", + "-Wno-writable-strings", + "-Wno-write-strings", + "-DTU_HAS_MSM", + "-DFD_NO_DEPRECATED_PACK", + ], +} + +cc_library_shared { + name: "vulkan_freedreno", + host_supported: false, + srcs: [ + "layers/tu_rmv_layer.cc", + "tu_acceleration_structure.cc", + "tu_autotune.cc", + "tu_buffer.cc", + "tu_buffer_view.cc", + "tu_clear_blit.cc", + "tu_cmd_buffer.cc", + "tu_cs_breadcrumbs.cc", + "tu_cs.cc", + "tu_device.cc", + "tu_descriptor_set.cc", + "tu_dynamic_rendering.cc", + "tu_event.cc", + "tu_formats.cc", + "tu_image.cc", + "tu_knl.cc", + "tu_lrz.cc", + "tu_nir_lower_multiview.cc", + "tu_nir_lower_ray_query.cc", + "tu_pass.cc", + "tu_pipeline.cc", + "tu_sampler.cc", + "tu_query_pool.cc", + "tu_queue.cc", + "tu_rmv.cc", + "tu_shader.cc", + "tu_suballoc.cc", + "tu_util.cc", + "tu_knl_drm_msm.cc", + "tu_knl_drm.cc", + ], + generated_headers: [ + "tu_entrypoints_header", + "tu_tracepoints.[ch]_header", + "adreno.xml.h", + "a2xx.xml.h", + "a3xx.xml.h", + "a4xx.xml.h", + "a5xx.xml.h", + "a6xx.xml.h", + "a6xx_enums.xml.h", + "a6xx_descriptors.xml.h", + "a6xx_perfcntrs.xml.h", + "a7xx_enums.xml.h", + "a7xx_perfcntrs.xml.h", + "a6xx_gmu.xml.h", + "ocmem.xml.h", + "adreno_control_regs.xml.h", + "adreno_pipe_regs.xml.h", + "adreno_common.xml.h", + "adreno_pm4.xml.h", + "a6xx-pack.xml.h", + "adreno-pm4-pack.xml.h", + "git_sha1.h", + "u_format_pack.h", + "encode.spv.h", + "header.spv.h", + "copy.spv.h", + "nir_opcodes.h", + "nir_builder_opcodes.h", + "nir_intrinsics.h", + "nir_intrinsics_indices.h", + "ir_expression_operation.h", + "builtin_types.h", + "shader_stats.h", + "u_format_gen.h", + ], + generated_sources: [ + "tu_entrypoints_impl", + "tu_tracepoints.[ch]_impl", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "vulkan_freedreno_c_flags", + "vulkan_freedreno_cpp_flags", + ], + static_libs: [ + "libsync", + "freedreno_ir3", + "freedreno_layout", + "freedreno_perfcntrs", + "freedreno_common", + "nir", + "mesa_util", + "blake3", + "mesa_util_c11", + "compiler", + "vulkan_util", + ], + whole_static_libs: [ + "vulkan_lite_runtime", + "vulkan_runtime", + "vulkan_instance", + "vulkan_wsi", + ], + shared_libs: [ + "elf", + "m", + "libzstd", + "libdrm", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_freedreno", + "inc_nir", + "inc_compiler", + ] + +} + diff --git a/output-dir/src/freedreno/vulkan/bvh/Android.bp b/output-dir/src/freedreno/vulkan/bvh/Android.bp new file mode 100644 index 000000000..f69605b91 --- /dev/null +++ b/output-dir/src/freedreno/vulkan/bvh/Android.bp @@ -0,0 +1,103 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +genrule { + name: "copy.spv.h", + srcs: [ + "copy.comp", + ], + out: [ + "copy.spv.h", + ], + tools: [ + ], + cmd: "glslangValidator -V" + + "-I/usr/local/google/home/gurchetansingh/meson/temp_mesa//src/vulkan/runtime/bvh " + + "-I/usr/local/google/home/gurchetansingh/meson/temp_mesa//src/freedreno/vulkan/bv" + + "h --target-env spirv1.5 -x -o $(location copy.spv.h) $(location copy.comp)" + + "--quiet -P#extension GL_GOOGLE_include_directive : require -P#extension" + + "GL_EXT_shader_explicit_arithmetic_types_int8 : require -P#extension" + + "GL_EXT_shader_explicit_arithmetic_types_int16 : require -P#extension" + + "GL_EXT_shader_explicit_arithmetic_types_int32 : require -P#extension" + + "GL_EXT_shader_explicit_arithmetic_types_int64 : require -P#extension" + + "GL_EXT_shader_explicit_arithmetic_types_float16 : require -P#extension" + + "GL_EXT_scalar_block_layout : require -P#extension GL_EXT_buffer_reference :" + + "require -P#extension GL_EXT_buffer_reference2 : require -P#extension" + + "GL_KHR_memory_scope_semantics : require -P#extension" + + "GL_KHR_shader_subgroup_arithmetic : require -P#extension" + + "GL_KHR_shader_subgroup_basic : require -P#extension" + + "GL_KHR_shader_subgroup_shuffle : require -P#extension" + + "GL_KHR_shader_subgroup_ballot : require -P#extension" + + "GL_KHR_shader_subgroup_clustered : require -P#extension" + + "GL_EXT_shader_atomic_int64 : require", +} + +genrule { + name: "encode.spv.h", + srcs: [ + "encode.comp", + ], + out: [ + "encode.spv.h", + ], + tools: [ + ], + cmd: "glslangValidator -V" + + "-I/usr/local/google/home/gurchetansingh/meson/temp_mesa//src/vulkan/runtime/bvh " + + "-I/usr/local/google/home/gurchetansingh/meson/temp_mesa//src/freedreno/vulkan/bv" + + "h --target-env spirv1.5 -x -o $(location encode.spv.h) $(location encode.comp)" + + "--quiet -P#extension GL_GOOGLE_include_directive : require -P#extension" + + "GL_EXT_shader_explicit_arithmetic_types_int8 : require -P#extension" + + "GL_EXT_shader_explicit_arithmetic_types_int16 : require -P#extension" + + "GL_EXT_shader_explicit_arithmetic_types_int32 : require -P#extension" + + "GL_EXT_shader_explicit_arithmetic_types_int64 : require -P#extension" + + "GL_EXT_shader_explicit_arithmetic_types_float16 : require -P#extension" + + "GL_EXT_scalar_block_layout : require -P#extension GL_EXT_buffer_reference :" + + "require -P#extension GL_EXT_buffer_reference2 : require -P#extension" + + "GL_KHR_memory_scope_semantics : require -P#extension" + + "GL_KHR_shader_subgroup_arithmetic : require -P#extension" + + "GL_KHR_shader_subgroup_basic : require -P#extension" + + "GL_KHR_shader_subgroup_shuffle : require -P#extension" + + "GL_KHR_shader_subgroup_ballot : require -P#extension" + + "GL_KHR_shader_subgroup_clustered : require -P#extension" + + "GL_EXT_shader_atomic_int64 : require", +} + +genrule { + name: "header.spv.h", + srcs: [ + "header.comp", + ], + out: [ + "header.spv.h", + ], + tools: [ + ], + cmd: "glslangValidator -V" + + "-I/usr/local/google/home/gurchetansingh/meson/temp_mesa//src/vulkan/runtime/bvh " + + "-I/usr/local/google/home/gurchetansingh/meson/temp_mesa//src/freedreno/vulkan/bv" + + "h --target-env spirv1.5 -x -o $(location header.spv.h) $(location header.comp)" + + "--quiet -P#extension GL_GOOGLE_include_directive : require -P#extension" + + "GL_EXT_shader_explicit_arithmetic_types_int8 : require -P#extension" + + "GL_EXT_shader_explicit_arithmetic_types_int16 : require -P#extension" + + "GL_EXT_shader_explicit_arithmetic_types_int32 : require -P#extension" + + "GL_EXT_shader_explicit_arithmetic_types_int64 : require -P#extension" + + "GL_EXT_shader_explicit_arithmetic_types_float16 : require -P#extension" + + "GL_EXT_scalar_block_layout : require -P#extension GL_EXT_buffer_reference :" + + "require -P#extension GL_EXT_buffer_reference2 : require -P#extension" + + "GL_KHR_memory_scope_semantics : require -P#extension" + + "GL_KHR_shader_subgroup_arithmetic : require -P#extension" + + "GL_KHR_shader_subgroup_basic : require -P#extension" + + "GL_KHR_shader_subgroup_shuffle : require -P#extension" + + "GL_KHR_shader_subgroup_ballot : require -P#extension" + + "GL_KHR_shader_subgroup_clustered : require -P#extension" + + "GL_EXT_shader_atomic_int64 : require", +} + diff --git a/output-dir/src/gallium/Android.bp b/output-dir/src/gallium/Android.bp new file mode 100644 index 000000000..96e8a590c --- /dev/null +++ b/output-dir/src/gallium/Android.bp @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +cc_library_headers { + name: "inc_gallium_drivers", + export_include_dirs: [ + "drivers", + ], +} + +cc_library_headers { + name: "inc_gallium_winsys", + export_include_dirs: [ + "winsys", + ], +} + +cc_library_headers { + name: "inc_gallium_winsys_sw", + export_include_dirs: [ + "winsys/sw", + ], +} + diff --git a/output-dir/src/gallium/auxiliary/Android.bp b/output-dir/src/gallium/auxiliary/Android.bp new file mode 100644 index 000000000..b753120f7 --- /dev/null +++ b/output-dir/src/gallium/auxiliary/Android.bp @@ -0,0 +1,541 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +python_binary_host { + name: "enums2names_gen", + main: "enums2names.py", + srcs: [ + "driver_trace/enums2names.py", + "enums2names.py", + ], + libs: [ + "mako", + ], +} + +python_binary_host { + name: "u_indices_gen_gen", + main: "u_indices_gen.py", + srcs: [ + "u_indices_gen.py", + ], + libs: [ + "mako", + ], +} + +python_binary_host { + name: "u_tracepoints_gen", + main: "u_tracepoints.py", + srcs: [ + "perf/u_trace.py", + "u_tracepoints.py", + ], + libs: [ + "mako", + ], +} + +python_binary_host { + name: "u_unfilled_gen_gen", + main: "u_unfilled_gen.py", + srcs: [ + "u_unfilled_gen.py", + ], + libs: [ + "mako", + ], +} + +genrule { + name: "tr_util.[ch]_header", + srcs: [ + "../include/pipe/p_defines.h", + "../include/pipe/p_video_enums.h", + "../../util/blend.h", + ], + out: [ + "tr_util.h", + ], + tools: [ + "enums2names_gen", + ], + cmd: "python3 $(location enums2names_gen) $(location ../include/pipe/p_defines.h)" + + "$(location ../include/pipe/p_video_enums.h) $(location ../../util/blend.h) -C" + + ""$(genDir)/placeholder.c" -H $(location tr_util.h) -I tr_util.h", +} + +genrule { + name: "tr_util.[ch]_impl", + srcs: [ + "../include/pipe/p_defines.h", + "../include/pipe/p_video_enums.h", + "../../util/blend.h", + ], + out: [ + "tr_util.c", + ], + tools: [ + "enums2names_gen", + ], + cmd: "python3 $(location enums2names_gen) $(location ../include/pipe/p_defines.h)" + + "$(location ../include/pipe/p_video_enums.h) $(location ../../util/blend.h) -C" + + "$(location tr_util.c) -H "$(genDir)/tr_util.h" -I tr_util.h", +} + +genrule { + name: "u_indices_gen.c", + srcs: [ + ], + out: [ + "u_indices_gen.c", + ], + tools: [ + "u_indices_gen_gen", + ], + cmd: "python3 $(location u_indices_gen_gen) $(location u_indices_gen.c)", +} + +genrule { + name: "u_tracepoints.c", + srcs: [ + ], + out: [ + "u_tracepoints.c", + ], + tools: [ + "u_tracepoints_gen", + ], + cmd: "python3 $(location u_tracepoints_gen) -p" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/util/perf/ -C" + + "$(location u_tracepoints.c)", +} + +genrule { + name: "u_tracepoints.h", + srcs: [ + ], + out: [ + "u_tracepoints.h", + ], + tools: [ + "u_tracepoints_gen", + ], + cmd: "python3 $(location u_tracepoints_gen) -p" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/util/perf/ -H" + + "$(location u_tracepoints.h)", +} + +genrule { + name: "u_unfilled_gen.c", + srcs: [ + ], + out: [ + "u_unfilled_gen.c", + ], + tools: [ + "u_unfilled_gen_gen", + ], + cmd: "python3 $(location u_unfilled_gen_gen) $(location u_unfilled_gen.c)", +} + +cc_library_static { + name: "gallium", + host_supported: false, + srcs: [ + "cso_cache/cso_cache.c", + "cso_cache/cso_context.c", + "cso_cache/cso_hash.c", + "draw/draw_context.c", + "draw/draw_fs.c", + "draw/draw_gs.c", + "draw/draw_mesh.c", + "draw/draw_mesh_prim.c", + "draw/draw_pipe_aaline.c", + "draw/draw_pipe_aapoint.c", + "draw/draw_pipe.c", + "draw/draw_pipe_clip.c", + "draw/draw_pipe_cull.c", + "draw/draw_pipe_flatshade.c", + "draw/draw_pipe_offset.c", + "draw/draw_pipe_pstipple.c", + "draw/draw_pipe_stipple.c", + "draw/draw_pipe_twoside.c", + "draw/draw_pipe_unfilled.c", + "draw/draw_pipe_user_cull.c", + "draw/draw_pipe_util.c", + "draw/draw_pipe_validate.c", + "draw/draw_pipe_vbuf.c", + "draw/draw_pipe_wide_line.c", + "draw/draw_pipe_wide_point.c", + "draw/draw_prim_assembler.c", + "draw/draw_pt.c", + "draw/draw_pt_emit.c", + "draw/draw_pt_fetch.c", + "draw/draw_pt_fetch_shade_emit.c", + "draw/draw_pt_fetch_shade_pipeline.c", + "draw/draw_pt_mesh_pipeline.c", + "draw/draw_pt_post_vs.c", + "draw/draw_pt_so_emit.c", + "draw/draw_pt_util.c", + "draw/draw_pt_vsplit.c", + "draw/draw_tess.c", + "draw/draw_vertex.c", + "draw/draw_vs.c", + "draw/draw_vs_exec.c", + "draw/draw_vs_variant.c", + "driver_ddebug/dd_context.c", + "driver_ddebug/dd_draw.c", + "driver_ddebug/dd_screen.c", + "driver_noop/noop_pipe.c", + "driver_noop/noop_state.c", + "driver_trace/tr_context.c", + "driver_trace/tr_dump.c", + "driver_trace/tr_dump_state.c", + "driver_trace/tr_screen.c", + "driver_trace/tr_texture.c", + "driver_trace/tr_video.c", + "hud/font.c", + "hud/hud_context.c", + "hud/hud_cpu.c", + "hud/hud_nic.c", + "hud/hud_cpufreq.c", + "hud/hud_diskstat.c", + "hud/hud_sensors_temp.c", + "hud/hud_driver_query.c", + "hud/hud_fps.c", + "indices/u_primconvert.c", + "pipebuffer/pb_buffer_fenced.c", + "pipebuffer/pb_bufmgr_cache.c", + "pipebuffer/pb_bufmgr_debug.c", + "pipebuffer/pb_bufmgr_mm.c", + "pipebuffer/pb_bufmgr_slab.c", + "pipebuffer/pb_cache.c", + "pipebuffer/pb_validate.c", + "postprocess/pp_celshade.c", + "postprocess/pp_colors.c", + "postprocess/pp_init.c", + "postprocess/pp_mlaa.c", + "postprocess/pp_program.c", + "postprocess/pp_run.c", + "rtasm/rtasm_execmem.c", + "rtasm/rtasm_x86sse.c", + "tgsi/tgsi_aa_point.c", + "tgsi/tgsi_build.c", + "tgsi/tgsi_dump.c", + "tgsi/tgsi_dynamic_indexing.c", + "tgsi/tgsi_exec.c", + "tgsi/tgsi_from_mesa.c", + "tgsi/tgsi_info.c", + "tgsi/tgsi_iterate.c", + "tgsi/tgsi_lowering.c", + "tgsi/tgsi_parse.c", + "tgsi/tgsi_point_sprite.c", + "tgsi/tgsi_sanity.c", + "tgsi/tgsi_scan.c", + "tgsi/tgsi_strings.c", + "tgsi/tgsi_text.c", + "tgsi/tgsi_transform.c", + "tgsi/tgsi_two_side.c", + "tgsi/tgsi_ureg.c", + "tgsi/tgsi_util.c", + "tgsi/tgsi_vpos.c", + "translate/translate.c", + "translate/translate_cache.c", + "translate/translate_generic.c", + "translate/translate_sse.c", + "util/u_async_debug.c", + "util/u_bitmask.c", + "util/u_blitter.c", + "util/u_debug_describe.c", + "util/u_debug_flush.c", + "util/u_debug_image.c", + "util/u_debug_refcnt.c", + "util/u_draw.c", + "util/u_draw_quad.c", + "util/u_driconf.c", + "util/u_dump_defines.c", + "util/u_dump_state.c", + "util/u_framebuffer.c", + "util/u_gen_mipmap.c", + "util/u_handle_table.c", + "util/u_helpers.c", + "util/u_index_modify.c", + "util/u_live_shader_cache.c", + "util/u_log.c", + "util/u_prim.c", + "util/u_prim_restart.c", + "util/u_pstipple.c", + "util/u_resource.c", + "util/u_sample_positions.c", + "util/u_sampler.c", + "util/u_screen.c", + "util/u_simple_shaders.c", + "util/u_split_draw.c", + "util/u_suballoc.c", + "util/u_surface.c", + "util/u_tests.c", + "util/u_texture.c", + "util/u_tile.c", + "util/u_transfer.c", + "util/u_transfer_helper.c", + "util/u_threaded_context.c", + "util/u_trace_gallium.c", + "util/u_upload_mgr.c", + "util/u_vbuf.c", + "util/u_vertex_state_cache.c", + "nir/tgsi_to_nir.c", + "nir/nir_to_tgsi.c", + "nir/nir_draw_helpers.c", + "renderonly/renderonly.c", + "gallivm/lp_bld_arit.c", + "gallivm/lp_bld_arit_overflow.c", + "gallivm/lp_bld_assert.c", + "gallivm/lp_bld_bitarit.c", + "gallivm/lp_bld_const.c", + "gallivm/lp_bld_conv.c", + "gallivm/lp_bld_coro.c", + "gallivm/lp_bld_debug.cpp", + "gallivm/lp_bld_flow.c", + "gallivm/lp_bld_format_aos_array.c", + "gallivm/lp_bld_format_aos.c", + "gallivm/lp_bld_format_float.c", + "gallivm/lp_bld_format_s3tc.c", + "gallivm/lp_bld_format.c", + "gallivm/lp_bld_format_soa.c", + "gallivm/lp_bld_format_srgb.c", + "gallivm/lp_bld_format_yuv.c", + "gallivm/lp_bld_gather.c", + "gallivm/lp_bld_init_common.c", + "gallivm/lp_bld_intr.c", + "gallivm/lp_bld_ir_common.c", + "gallivm/lp_bld_jit_sample.c", + "gallivm/lp_bld_jit_types.c", + "gallivm/lp_bld_logic.c", + "gallivm/lp_bld_misc.cpp", + "gallivm/lp_bld_nir.c", + "gallivm/lp_bld_nir_aos.c", + "gallivm/lp_bld_nir_soa.c", + "gallivm/lp_bld_pack.c", + "gallivm/lp_bld_passmgr.c", + "gallivm/lp_bld_printf.c", + "gallivm/lp_bld_quad.c", + "gallivm/lp_bld_sample_aos.c", + "gallivm/lp_bld_sample.c", + "gallivm/lp_bld_sample_soa.c", + "gallivm/lp_bld_struct.c", + "gallivm/lp_bld_swizzle.c", + "gallivm/lp_bld_tgsi_action.c", + "gallivm/lp_bld_tgsi.c", + "gallivm/lp_bld_tgsi_info.c", + "gallivm/lp_bld_tgsi_soa.c", + "gallivm/lp_bld_type.c", + "draw/draw_llvm.c", + "draw/draw_pt_fetch_shade_pipeline_llvm.c", + "draw/draw_vs_llvm.c", + "tessellator/tessellator.cpp", + "tessellator/p_tessellator.cpp", + "nir/nir_to_tgsi_info.c", + "gallivm/lp_bld_init.c", + ], + generated_headers: [ + "tr_util.[ch]_header", + "u_tracepoints.h", + "nir_opcodes.h", + "nir_builder_opcodes.h", + "nir_intrinsics.h", + "nir_intrinsics_indices.h", + "ir_expression_operation.h", + "builtin_types.h", + "shader_stats.h", + "u_format_gen.h", + ], + generated_sources: [ + "tr_util.[ch]_impl", + "u_tracepoints.c", + "u_indices_gen.c", + "u_unfilled_gen.c", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "_trial_msvc", + "_trial_msvc", + ], + static_libs: [ + "libsync", + "nir", + "mesa_util", + "blake3", + "mesa_util_c11", + "compiler", + ], + shared_libs: [ + "libdrm", + "libLLVM16_swiftshader", + "m", + "sensors", + "ws2_32", + "libzstd", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_loader", + "inc_gallium", + "inc_src", + "inc_nir", + "inc_compiler", + ] + +} + +cc_library_static { + name: "galliumvl", + host_supported: false, + srcs: [ + "vl/vl_codec.c", + "vl/vl_compositor.c", + "vl/vl_compositor_gfx.c", + "vl/vl_compositor_cs.c", + "vl/vl_csc.c", + "vl/vl_deint_filter.c", + "vl/vl_deint_filter_cs.c", + "vl/vl_mpeg12_bitstream.c", + "vl/vl_vertex_buffers.c", + "vl/vl_video_buffer.c", + ], + generated_headers: [ + "nir_opcodes.h", + "nir_builder_opcodes.h", + "nir_intrinsics.h", + "nir_intrinsics_indices.h", + "ir_expression_operation.h", + "builtin_types.h", + "shader_stats.h", + "u_format_gen.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "_trial_msvc", + "_trial_msvc", + ], + static_libs: [ + "libsync", + "nir", + "mesa_util", + "blake3", + "mesa_util_c11", + "compiler", + ], + shared_libs: [ + "m", + "libzstd", + "libdrm", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_gallium", + "inc_src", + "inc_nir", + "inc_compiler", + ] + +} + +cc_library_static { + name: "galliumvl_stub", + host_supported: false, + srcs: [ + "vl/vl_stubs.c", + ], + generated_headers: [ + "shader_stats.h", + "u_format_gen.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "_trial_msvc", + "_trial_msvc", + ], + static_libs: [ + "libsync", + "mesa_util", + "blake3", + "mesa_util_c11", + ], + shared_libs: [ + "m", + "libzstd", + "libdrm", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_gallium", + "inc_src", + ] + +} + +cc_library_static { + name: "galliumvlwinsys", + host_supported: false, + srcs: [ + "vl/vl_winsys_drm.c", + ], + generated_headers: [ + "shader_stats.h", + "u_format_gen.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + ], + static_libs: [ + "libsync", + "mesa_util", + "blake3", + "mesa_util_c11", + ], + shared_libs: [ + "libdrm", + "m", + "libzstd", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_gallium", + "inc_loader", + "inc_src", + ] + +} + diff --git a/output-dir/src/gallium/auxiliary/pipe-loader/Android.bp b/output-dir/src/gallium/auxiliary/pipe-loader/Android.bp new file mode 100644 index 000000000..b81b2235b --- /dev/null +++ b/output-dir/src/gallium/auxiliary/pipe-loader/Android.bp @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +cc_library_static { + name: "pipe_loader_static", + host_supported: false, + srcs: [ + "pipe_loader.c", + "pipe_loader_sw.c", + "pipe_loader_drm.c", + ], + generated_headers: [ + "shader_stats.h", + "u_format_gen.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + ], + static_libs: [ + "libsync", + "loader", + "xmlconfig", + "mesa_util", + "blake3", + "mesa_util_c11", + ], + shared_libs: [ + "libdrm", + "m", + "libzstd", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_loader", + "inc_gallium", + "inc_src", + "inc_gallium_aux", + "inc_gallium_winsys", + "inc_gallium_drivers", + ] + +} + diff --git a/output-dir/src/gallium/drivers/llvmpipe/Android.bp b/output-dir/src/gallium/drivers/llvmpipe/Android.bp new file mode 100644 index 000000000..b35fd21dd --- /dev/null +++ b/output-dir/src/gallium/drivers/llvmpipe/Android.bp @@ -0,0 +1,118 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +cc_library_static { + name: "llvmpipe", + host_supported: false, + srcs: [ + "lp_bld_alpha.c", + "lp_bld_blend_aos.c", + "lp_bld_blend.c", + "lp_bld_blend_logicop.c", + "lp_bld_depth.c", + "lp_bld_interp.c", + "lp_clear.c", + "lp_context.c", + "lp_cs_tpool.c", + "lp_draw_arrays.c", + "lp_fence.c", + "lp_flush.c", + "lp_jit.c", + "lp_linear.c", + "lp_linear_fastpath.c", + "lp_linear_interp.c", + "lp_linear_sampler.c", + "lp_memory.c", + "lp_perf.c", + "lp_query.c", + "lp_rast.c", + "lp_rast_debug.c", + "lp_rast_linear.c", + "lp_rast_linear_fallback.c", + "lp_rast_rect.c", + "lp_rast_tri.c", + "lp_scene.c", + "lp_scene_queue.c", + "lp_screen.c", + "lp_setup.c", + "lp_setup_analysis.c", + "lp_setup_line.c", + "lp_setup_point.c", + "lp_setup_rect.c", + "lp_setup_tri.c", + "lp_setup_vbuf.c", + "lp_state_blend.c", + "lp_state_clip.c", + "lp_state_derived.c", + "lp_state_cs.c", + "lp_state_fs.c", + "lp_state_fs_analysis.c", + "lp_state_fs_fastpath.c", + "lp_state_fs_linear.c", + "lp_state_fs_linear_llvm.c", + "lp_state_gs.c", + "lp_state_rasterizer.c", + "lp_state_sampler.c", + "lp_state_setup.c", + "lp_state_so.c", + "lp_state_surface.c", + "lp_state_tess.c", + "lp_state_vertex.c", + "lp_state_vs.c", + "lp_surface.c", + "lp_tex_sample.c", + "lp_texture.c", + "lp_texture_handle.c", + ], + generated_headers: [ + "git_sha1.h", + "nir_opcodes.h", + "nir_builder_opcodes.h", + "nir_intrinsics.h", + "nir_intrinsics_indices.h", + "ir_expression_operation.h", + "builtin_types.h", + "shader_stats.h", + "u_format_gen.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "_trial_msvc", + "_trial_msvc", + ], + static_libs: [ + "libsync", + "mesa_util", + "blake3", + "mesa_util_c11", + ], + shared_libs: [ + "libLLVM16_swiftshader", + "m", + "libzstd", + "libdrm", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_gallium", + "inc_gallium_aux", + "inc_src", + "inc_nir", + "inc_compiler", + ] + +} + diff --git a/output-dir/src/gallium/frontends/lavapipe/Android.bp b/output-dir/src/gallium/frontends/lavapipe/Android.bp new file mode 100644 index 000000000..54b2109a2 --- /dev/null +++ b/output-dir/src/gallium/frontends/lavapipe/Android.bp @@ -0,0 +1,130 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +genrule { + name: "lvp_entrypoints_header", + srcs: [ + ":vk_entrypoints_gen_py", + ":vk_xml", + ], + out: [ + "lvp_entrypoints.h", + ], + tools: [ + "vk_entrypoints_gen_gen", + ], + cmd: "python3 $(location vk_entrypoints_gen_gen) --xml $(location registry/vk.xml)" + + "--proto --weak --out-h $(location lvp_entrypoints.h) --out-c" + + ""$(genDir)/placeholder.c" --prefix lvp --beta false", +} + +genrule { + name: "lvp_entrypoints_impl", + srcs: [ + ":vk_entrypoints_gen_py", + ":vk_xml", + ], + out: [ + "lvp_entrypoints.c", + ], + tools: [ + "vk_entrypoints_gen_gen", + ], + cmd: "python3 $(location vk_entrypoints_gen_gen) --xml $(location registry/vk.xml)" + + "--proto --weak --out-h "$(genDir)/lvp_entrypoints.h" --out-c $(location" + + "lvp_entrypoints.c) --prefix lvp --beta false", +} + +cc_library_static { + name: "lavapipe_st", + host_supported: false, + srcs: [ + "nir/lvp_nir_lower_exec_graph.c", + "nir/lvp_nir_lower_input_attachments.c", + "nir/lvp_nir_lower_pipeline_layout.c", + "nir/lvp_nir_lower_ray_queries.c", + "nir/lvp_nir_lower_sparse_residency.c", + "nir/lvp_nir_opt_robustness.c", + "nir/lvp_nir_ray_tracing.c", + "lvp_acceleration_structure.c", + "lvp_device.c", + "lvp_device_generated_commands.c", + "lvp_cmd_buffer.c", + "lvp_descriptor_set.c", + "lvp_execute.c", + "lvp_util.c", + "lvp_image.c", + "lvp_formats.c", + "lvp_pipe_sync.c", + "lvp_pipeline.c", + "lvp_pipeline_cache.c", + "lvp_query.c", + "lvp_ray_tracing_pipeline.c", + "lvp_wsi.c", + "lvp_android.c", + ], + generated_headers: [ + "lvp_entrypoints_header", + "git_sha1.h", + "nir_opcodes.h", + "nir_builder_opcodes.h", + "nir_intrinsics.h", + "nir_intrinsics_indices.h", + "ir_expression_operation.h", + "builtin_types.h", + "shader_stats.h", + "u_format_gen.h", + ], + generated_sources: [ + "lvp_entrypoints_impl", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "_trial_msvc", + ], + static_libs: [ + "libsync", + "nir", + "mesa_util", + "blake3", + "mesa_util_c11", + "compiler", + "vulkan_util", + ], + whole_static_libs: [ + "vulkan_wsi", + "vulkan_lite_runtime", + "vulkan_runtime", + "vulkan_instance", + ], + shared_libs: [ + "libLLVM16_swiftshader", + "m", + "libzstd", + "libdrm", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_gallium", + "inc_gallium_aux", + "inc_llvmpipe", + "inc_nir", + "inc_compiler", + ] + +} + diff --git a/output-dir/src/gallium/targets/lavapipe/Android.bp b/output-dir/src/gallium/targets/lavapipe/Android.bp new file mode 100644 index 000000000..49f32b994 --- /dev/null +++ b/output-dir/src/gallium/targets/lavapipe/Android.bp @@ -0,0 +1,95 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +genrule { + name: "lvp_devenv_icd", + srcs: [ + ":vk_icd_gen_py", + ":vk_xml", + ], + out: [ + "lvp_devenv_icd.aarch64.json", + ], + tools: [ + "vk_icd_gen_gen", + ], + cmd: "python3 $(location vk_icd_gen_gen) --api-version 1.4 --xml $(location" + + "registry/vk.xml) --sizeof-pointer 0 --lib-path" + + "/tmp/tmpx1uwqcvq/src/gallium/targets/lavapipe/libvulkan_lvp.so --out $(location" + + "lvp_devenv_icd.aarch64.json)", +} + +genrule { + name: "lvp_icd", + srcs: [ + ":vk_icd_gen_py", + ":vk_xml", + ], + out: [ + "lvp_icd.aarch64.json", + ], + tools: [ + "vk_icd_gen_gen", + ], + cmd: "python3 $(location vk_icd_gen_gen) --api-version 1.4 --xml $(location" + + "registry/vk.xml) --sizeof-pointer 0 --lib-path /usr/local/lib/x86_64-linux-" + + "gnu/libvulkan_lvp.so --out $(location lvp_icd.aarch64.json)", +} + +cc_library_shared { + name: "vulkan_lvp", + host_supported: false, + srcs: [ + "lavapipe_target.c", + ], + generated_headers: [ + "shader_stats.h", + "u_format_gen.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + ], + static_libs: [ + "libsync", + "pipe_loader_static", + "gallium", + "wsw", + "ws_null", + "llvmpipe", + "mesa_util", + "blake3", + "mesa_util_c11", + ], + whole_static_libs: [ + "lavapipe_st", + ], + shared_libs: [ + "libLLVM16_swiftshader", + "m", + "libzstd", + "libdrm", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_gallium", + "inc_gallium_aux", + "inc_gallium_winsys", + "inc_gallium_drivers", + ] + +} + diff --git a/output-dir/src/gallium/winsys/sw/null/Android.bp b/output-dir/src/gallium/winsys/sw/null/Android.bp new file mode 100644 index 000000000..113cbffae --- /dev/null +++ b/output-dir/src/gallium/winsys/sw/null/Android.bp @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +cc_library_static { + name: "ws_null", + host_supported: false, + srcs: [ + "null_sw_winsys.c", + ], + generated_headers: [ + "shader_stats.h", + "u_format_gen.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + ], + static_libs: [ + "libsync", + "mesa_util", + "blake3", + "mesa_util_c11", + ], + shared_libs: [ + "m", + "libzstd", + "libdrm", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_gallium", + "inc_src", + "inc_gallium_aux", + ] + +} + diff --git a/output-dir/src/gallium/winsys/sw/wrapper/Android.bp b/output-dir/src/gallium/winsys/sw/wrapper/Android.bp new file mode 100644 index 000000000..e991363d7 --- /dev/null +++ b/output-dir/src/gallium/winsys/sw/wrapper/Android.bp @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +cc_library_static { + name: "wsw", + host_supported: false, + srcs: [ + "wrapper_sw_winsys.c", + ], + generated_headers: [ + "shader_stats.h", + "u_format_gen.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + ], + static_libs: [ + "libsync", + "mesa_util", + "blake3", + "mesa_util_c11", + ], + shared_libs: [ + "m", + "libzstd", + "libdrm", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_gallium", + "inc_src", + "inc_gallium_aux", + ] + +} + diff --git a/output-dir/src/gfxstream/aemu/Android.bp b/output-dir/src/gfxstream/aemu/Android.bp new file mode 100644 index 000000000..c35a8dcb5 --- /dev/null +++ b/output-dir/src/gfxstream/aemu/Android.bp @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +cc_library_headers { + name: "inc_aemu", + export_include_dirs: [ + "include", + ], +} + +cc_library_static { + name: "aemu", + host_supported: false, + srcs: [ + "ring_buffer.cpp", + "Stream.cpp", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + ], + header_libs: [ + "inc_aemu", + ] + +} + diff --git a/output-dir/src/gfxstream/guest/Android.bp b/output-dir/src/gfxstream/guest/Android.bp new file mode 100644 index 000000000..4c9ad0c88 --- /dev/null +++ b/output-dir/src/gfxstream/guest/Android.bp @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +cc_library_headers { + name: "inc_vulkan_enc", + export_include_dirs: [ + "vulkan_enc", + ], +} + +cc_library_headers { + name: "inc_vulkan_headers", + export_include_dirs: [ + "../../../include/vulkan", + ], +} + diff --git a/output-dir/src/gfxstream/guest/GoldfishAddressSpace/Android.bp b/output-dir/src/gfxstream/guest/GoldfishAddressSpace/Android.bp new file mode 100644 index 000000000..c93c593b0 --- /dev/null +++ b/output-dir/src/gfxstream/guest/GoldfishAddressSpace/Android.bp @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +cc_library_headers { + name: "inc_goldfish_address_space", + export_include_dirs: [ + "include", + ], +} + +cc_defaults { + name: "goldfish_address_space_cpp_flags", + cppflags: [ + "-D_FILE_OFFSET_BITS=64", + "-DLINUX_GUEST_BUILD", + "-DVK_GFXSTREAM_STRUCTURE_TYPE_EXT", + ], +} + +cc_library_static { + name: "goldfish_address_space", + host_supported: false, + srcs: [ + "AddressSpaceStream.cpp", + "VirtioGpuAddressSpaceStream.cpp", + "GoldfishAddressSpaceStream.cpp", + "goldfish_address_space.cpp", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "goldfish_address_space_cpp_flags", + ], + static_libs: [ + "platform_virtgpu", + ], + shared_libs: [ + "libdrm", + ], + header_libs: [ + "inc_goldfish_address_space", + "inc_guest_iostream", + "inc_platform_virtgpu", + "inc_aemu", + "inc_src", + ] + +} + diff --git a/output-dir/src/gfxstream/guest/connection-manager/Android.bp b/output-dir/src/gfxstream/guest/connection-manager/Android.bp new file mode 100644 index 000000000..bc2914099 --- /dev/null +++ b/output-dir/src/gfxstream/guest/connection-manager/Android.bp @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +cc_library_headers { + name: "inc_connection_manager", + export_include_dirs: [ + ".", + ], +} + +cc_defaults { + name: "connection_manager_cpp_flags", + cppflags: [ + "-D_FILE_OFFSET_BITS=64", + "-DLINUX_GUEST_BUILD", + "-DVK_GFXSTREAM_STRUCTURE_TYPE_EXT", + ], +} + +cc_library_static { + name: "connection_manager", + host_supported: false, + srcs: [ + "GfxStreamConnectionManager.cpp", + "GfxStreamConnection.cpp", + "QemuPipeStreamStub.cpp", + "VirtioGpuPipeStream.cpp", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "connection_manager_cpp_flags", + ], + static_libs: [ + "goldfish_address_space", + "platform_virtgpu", + ], + shared_libs: [ + "libdrm", + ], + header_libs: [ + "inc_connection_manager", + "inc_guest_iostream", + "inc_goldfish_address_space", + "inc_platform_virtgpu", + "inc_src", + "inc_aemu", + ] + +} + diff --git a/output-dir/src/gfxstream/guest/iostream/Android.bp b/output-dir/src/gfxstream/guest/iostream/Android.bp new file mode 100644 index 000000000..3936765d6 --- /dev/null +++ b/output-dir/src/gfxstream/guest/iostream/Android.bp @@ -0,0 +1,17 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +cc_library_headers { + name: "inc_guest_iostream", + export_include_dirs: [ + "include", + ], +} + diff --git a/output-dir/src/gfxstream/guest/platform/Android.bp b/output-dir/src/gfxstream/guest/platform/Android.bp new file mode 100644 index 000000000..ca89d0740 --- /dev/null +++ b/output-dir/src/gfxstream/guest/platform/Android.bp @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +cc_library_headers { + name: "inc_platform_virtgpu", + export_include_dirs: [ + "include", + ], +} + +cc_defaults { + name: "platform_virtgpu_cpp_flags", + cppflags: [ + "-D_FILE_OFFSET_BITS=64", + "-DLINUX_GUEST_BUILD", + "-DVK_GFXSTREAM_STRUCTURE_TYPE_EXT", + ], +} + +cc_library_static { + name: "platform_virtgpu", + host_supported: false, + srcs: [ + "VirtGpu.cpp", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "platform_virtgpu_cpp_flags", + ], + static_libs: [ + "platform_virtgpu_kumquat", + "platform_virtgpu_drm", + ], + header_libs: [ + "inc_platform_virtgpu", + "inc_src", + ] + +} + diff --git a/output-dir/src/gfxstream/guest/platform/drm/Android.bp b/output-dir/src/gfxstream/guest/platform/drm/Android.bp new file mode 100644 index 000000000..5131ba8ce --- /dev/null +++ b/output-dir/src/gfxstream/guest/platform/drm/Android.bp @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +cc_defaults { + name: "platform_virtgpu_drm_cpp_flags", + cppflags: [ + "-D_FILE_OFFSET_BITS=64", + "-DLINUX_GUEST_BUILD", + "-DVK_GFXSTREAM_STRUCTURE_TYPE_EXT", + ], +} + +cc_library_static { + name: "platform_virtgpu_drm", + host_supported: false, + srcs: [ + "DrmVirtGpuDevice.cpp", + "DrmVirtGpuBlobMapping.cpp", + "DrmVirtGpuBlob.cpp", + "DrmSync.cpp", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "platform_virtgpu_drm_cpp_flags", + ], + shared_libs: [ + "libdrm", + ], + header_libs: [ + "inc_platform_virtgpu", + "inc_src", + ] + +} + diff --git a/output-dir/src/gfxstream/guest/platform/kumquat/Android.bp b/output-dir/src/gfxstream/guest/platform/kumquat/Android.bp new file mode 100644 index 000000000..13ffc3445 --- /dev/null +++ b/output-dir/src/gfxstream/guest/platform/kumquat/Android.bp @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +cc_defaults { + name: "platform_virtgpu_kumquat_cpp_flags", + cppflags: [ + "-D_FILE_OFFSET_BITS=64", + "-DLINUX_GUEST_BUILD", + "-DVK_GFXSTREAM_STRUCTURE_TYPE_EXT", + ], +} + +cc_library_static { + name: "platform_virtgpu_kumquat", + host_supported: false, + srcs: [ + "VirtGpuKumquatDevice.cpp", + "VirtGpuKumquatBlobMapping.cpp", + "VirtGpuKumquatBlob.cpp", + "VirtGpuKumquatSync.cpp", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "platform_virtgpu_kumquat_cpp_flags", + ], + static_libs: [ + "virtgpu_kumquat_ffi", + "gfxstream_vulkan_mapper", + ], + header_libs: [ + "inc_platform_virtgpu", + "inc_src", + "inc_vulkan_util", + "inc_virtgpu_kumquat_ffi", + "inc_gfxstream_vulkan_mapper", + ] + +} + diff --git a/output-dir/src/gfxstream/guest/platform/kumquat/vulkan-mapper/Android.bp b/output-dir/src/gfxstream/guest/platform/kumquat/vulkan-mapper/Android.bp new file mode 100644 index 000000000..c473d9d99 --- /dev/null +++ b/output-dir/src/gfxstream/guest/platform/kumquat/vulkan-mapper/Android.bp @@ -0,0 +1,69 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +cc_library_headers { + name: "inc_gfxstream_vulkan_mapper", + export_include_dirs: [ + ".", + ], +} + +cc_defaults { + name: "gfxstream_vulkan_mapper_cpp_flags", + cppflags: [ + "-D_FILE_OFFSET_BITS=64", + "-DLINUX_GUEST_BUILD", + "-DVK_GFXSTREAM_STRUCTURE_TYPE_EXT", + ], +} + +cc_library_static { + name: "gfxstream_vulkan_mapper", + host_supported: false, + srcs: [ + "GfxStreamVulkanMapper.cpp", + ], + generated_headers: [ + "shader_stats.h", + "u_format_gen.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "gfxstream_vulkan_mapper_cpp_flags", + ], + static_libs: [ + "libsync", + "vulkan_util", + "mesa_util", + "blake3", + "mesa_util_c11", + "virtgpu_kumquat_ffi", + ], + shared_libs: [ + "m", + "libzstd", + "libdrm", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_vulkan_util", + "inc_gfxstream_vulkan_mapper", + "inc_virtgpu_kumquat_ffi", + ] + +} + diff --git a/output-dir/src/gfxstream/guest/vulkan/Android.bp b/output-dir/src/gfxstream/guest/vulkan/Android.bp new file mode 100644 index 000000000..71e58cc38 --- /dev/null +++ b/output-dir/src/gfxstream/guest/vulkan/Android.bp @@ -0,0 +1,118 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +genrule { + name: "gfxstream_vk_devenv_icd", + srcs: [ + ":vk_icd_gen_py", + ":vk_xml", + ], + out: [ + "gfxstream_vk_devenv_icd.aarch64.json", + ], + tools: [ + "vk_icd_gen_gen", + ], + cmd: "python3 $(location vk_icd_gen_gen) --api-version 1.3 --xml $(location" + + "registry/vk.xml) --sizeof-pointer 0 --lib-path" + + "/tmp/tmpx1uwqcvq/src/gfxstream/guest/vulkan/libvulkan_gfxstream.so --out" + + "$(location gfxstream_vk_devenv_icd.aarch64.json)", +} + +genrule { + name: "gfxstream_vk_icd", + srcs: [ + ":vk_icd_gen_py", + ":vk_xml", + ], + out: [ + "gfxstream_vk_icd.aarch64.json", + ], + tools: [ + "vk_icd_gen_gen", + ], + cmd: "python3 $(location vk_icd_gen_gen) --api-version 1.1 --xml $(location" + + "registry/vk.xml) --sizeof-pointer 0 --lib-path /usr/local/lib/x86_64-linux-" + + "gnu/libvulkan_gfxstream.so --out $(location gfxstream_vk_icd.aarch64.json)", +} + +cc_defaults { + name: "vulkan_gfxstream_cpp_flags", + cppflags: [ + "-D_FILE_OFFSET_BITS=64", + "-DLINUX_GUEST_BUILD", + "-DVK_GFXSTREAM_STRUCTURE_TYPE_EXT", + ], +} + +cc_library_shared { + name: "vulkan_gfxstream", + host_supported: false, + srcs: [ + "gfxstream_vk_device.cpp", + "gfxstream_vk_cmd.cpp", + "gfxstream_vk_wsi.cpp", + "CommandBufferStagingStream.cpp", + "DescriptorSetVirtualization.cpp", + "HostVisibleMemoryVirtualization.cpp", + "ResourceTracker.cpp", + "Resources.cpp", + "Validation.cpp", + "VulkanHandleMapping.cpp", + "VulkanStreamGuest.cpp", + "gfxstream_vk_private.cpp", + "GfxStreamVulkanConnection.cpp", + ], + generated_headers: [ + "git_sha1.h", + "gfxstream_vk_entrypoints_header", + "gfxstream_guest_vk_autogen_header", + "vulkan_gfxstream_header", + ], + generated_sources: [ + "gfxstream_vk_entrypoints_impl", + "gfxstream_guest_vk_autogen_impl", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "vulkan_gfxstream_cpp_flags", + ], + static_libs: [ + "gfxstream_vk_stubs", + "vulkan_wsi", + "platform_virtgpu", + "connection_manager", + "aemu", + ], + whole_static_libs: [ + "vulkan_lite_runtime", + "vulkan_lite_instance", + "vulkan_wsi", + ], + shared_libs: [ + "libdrm", + ], + header_libs: [ + "inc_vulkan_headers", + "inc_guest_iostream", + "inc_vulkan_enc", + "inc_platform_virtgpu", + "inc_gfxstream_vk_stubs", + "inc_goldfish_address_space", + "inc_src", + "inc_aemu", + "inc_connection_manager", + ] + +} + diff --git a/output-dir/src/gfxstream/guest/vulkan/stubs/Android.bp b/output-dir/src/gfxstream/guest/vulkan/stubs/Android.bp new file mode 100644 index 000000000..7cda9e668 --- /dev/null +++ b/output-dir/src/gfxstream/guest/vulkan/stubs/Android.bp @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +cc_library_headers { + name: "inc_gfxstream_vk_stubs", + export_include_dirs: [ + ".", + ], +} + +cc_defaults { + name: "gfxstream_vk_stubs_cpp_flags", + cppflags: [ + "-D_FILE_OFFSET_BITS=64", + "-DLINUX_GUEST_BUILD", + "-DVK_GFXSTREAM_STRUCTURE_TYPE_EXT", + ], +} + +cc_library_static { + name: "gfxstream_vk_stubs", + host_supported: false, + srcs: [ + "GfxStreamRenderControl.cpp", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "gfxstream_vk_stubs_cpp_flags", + ], + header_libs: [ + "inc_connection_manager", + "inc_platform_virtgpu", + "inc_guest_iostream", + "inc_src", + ] + +} + diff --git a/output-dir/src/gfxstream/guest/vulkan_enc/Android.bp b/output-dir/src/gfxstream/guest/vulkan_enc/Android.bp new file mode 100644 index 000000000..d44bb8daa --- /dev/null +++ b/output-dir/src/gfxstream/guest/vulkan_enc/Android.bp @@ -0,0 +1,120 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +python_binary_host { + name: "genvk_gen", + main: "genvk.py", + srcs: [ + "genvk.py", + ], + libs: [ + "mako", + ], +} + +genrule { + name: "gfxstream_guest_vk_autogen_header", + srcs: [ + ":genvk_py", + ":vk_xml", + ":vk_gfxstream_xml", + ], + out: [ + "VkEncoder.h", + "goldfish_vk_counting_guest.h", + "goldfish_vk_deepcopy_guest.h", + "goldfish_vk_marshaling_guest.h", + "goldfish_vk_extension_structs_guest.h", + "goldfish_vk_reserved_marshaling_guest.h", + "goldfish_vk_transform_guest.h", + ], + tools: [ + "genvk_gen", + ], + cmd: "python3 $(location genvk_gen) -registry $(location registry/vk.xml)" + + "-registryGfxstream $(location codegen/xml/vk_gfxstream.xml) cereal -o" + + "/tmp/tmpx1uwqcvq/src/gfxstream/guest/vulkan_enc/host/vulkan/cereal", +} + +genrule { + name: "gfxstream_guest_vk_autogen_impl", + srcs: [ + ":genvk_py", + ":vk_xml", + ":vk_gfxstream_xml", + ], + out: [ + "goldfish_vk_counting_guest.cpp", + "goldfish_vk_deepcopy_guest.cpp", + "goldfish_vk_extension_structs_guest.cpp", + "goldfish_vk_marshaling_guest.cpp", + "goldfish_vk_reserved_marshaling_guest.cpp", + "goldfish_vk_transform_guest.cpp", + "VkEncoder.cpp", + "func_table.cpp", + ], + tools: [ + "genvk_gen", + ], + cmd: "python3 $(location genvk_gen) -registry $(location registry/vk.xml)" + + "-registryGfxstream $(location codegen/xml/vk_gfxstream.xml) cereal -o" + + "/tmp/tmpx1uwqcvq/src/gfxstream/guest/vulkan_enc/host/vulkan/cereal", +} + +genrule { + name: "gfxstream_vk_entrypoints_header", + srcs: [ + ":vk_entrypoints_gen_py", + ":vk_xml", + ], + out: [ + "gfxstream_vk_entrypoints.h", + ], + tools: [ + "vk_entrypoints_gen_gen", + ], + cmd: "python3 $(location vk_entrypoints_gen_gen) --xml $(location registry/vk.xml)" + + "--proto --weak --out-h $(location gfxstream_vk_entrypoints.h) --out-c" + + ""$(genDir)/placeholder.c" --prefix gfxstream_vk --beta false", +} + +genrule { + name: "gfxstream_vk_entrypoints_impl", + srcs: [ + ":vk_entrypoints_gen_py", + ":vk_xml", + ], + out: [ + "gfxstream_vk_entrypoints.c", + ], + tools: [ + "vk_entrypoints_gen_gen", + ], + cmd: "python3 $(location vk_entrypoints_gen_gen) --xml $(location registry/vk.xml)" + + "--proto --weak --out-h "$(genDir)/gfxstream_vk_entrypoints.h" --out-c $(location" + + "gfxstream_vk_entrypoints.c) --prefix gfxstream_vk --beta false", +} + +genrule { + name: "vulkan_gfxstream_header", + srcs: [ + ":genvk_py", + ":vk_gfxstream_xml", + ], + out: [ + "vulkan_gfxstream.h", + ], + tools: [ + "genvk_gen", + ], + cmd: "python3 $(location genvk_gen) -registry $(location codegen/xml/vk_gfxstream.xml)" + + "vulkan_gfxstream.h -o $(genDir)", +} + diff --git a/output-dir/src/gtest/Android.bp b/output-dir/src/gtest/Android.bp new file mode 100644 index 000000000..889106224 --- /dev/null +++ b/output-dir/src/gtest/Android.bp @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +cc_library_static { + name: "gtest", + host_supported: false, + srcs: [ + "src/gtest-all.cc", + "src/gtest_main.cc", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + ], + +} + diff --git a/output-dir/src/loader/Android.bp b/output-dir/src/loader/Android.bp new file mode 100644 index 000000000..ca4e2215e --- /dev/null +++ b/output-dir/src/loader/Android.bp @@ -0,0 +1,65 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +cc_library_headers { + name: "inc_loader", + export_include_dirs: [ + ".", + ], +} + +cc_defaults { + name: "loader_c_args", + cflags: [ + "-DUSE_DRICONF", + ], +} + +cc_library_static { + name: "loader", + host_supported: false, + srcs: [ + "loader_dri_helper.c", + "loader.c", + ], + generated_headers: [ + "git_sha1.h", + "shader_stats.h", + "u_format_gen.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "loader_c_args", + ], + static_libs: [ + "libsync", + "mesa_util", + "blake3", + "mesa_util_c11", + ], + shared_libs: [ + "m", + "libzstd", + "libdrm", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_gallium", + ] + +} + diff --git a/output-dir/src/panfrost/Android.bp b/output-dir/src/panfrost/Android.bp new file mode 100644 index 000000000..6f072bb1c --- /dev/null +++ b/output-dir/src/panfrost/Android.bp @@ -0,0 +1,23 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +cc_library_headers { + name: "inc_panfrost", + export_include_dirs: [ + ".", + "compiler", + "lib", + "libpan", + "midgard", + "model", + "shared", + ], +} + diff --git a/output-dir/src/panfrost/compiler/Android.bp b/output-dir/src/panfrost/compiler/Android.bp new file mode 100644 index 000000000..dc5377538 --- /dev/null +++ b/output-dir/src/panfrost/compiler/Android.bp @@ -0,0 +1,415 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +python_binary_host { + name: "bi_builder.h_gen", + main: "bi_builder.h.py", + srcs: [ + "bi_builder.h.py", + "bifrost_isa.py", + ], + libs: [ + "mako", + ], +} + +python_binary_host { + name: "bi_opcodes.c_gen", + main: "bi_opcodes.c.py", + srcs: [ + "bi_opcodes.c.py", + "bifrost_isa.py", + ], + libs: [ + "mako", + ], +} + +python_binary_host { + name: "bi_opcodes.h_gen", + main: "bi_opcodes.h.py", + srcs: [ + "bi_opcodes.h.py", + "bifrost_isa.py", + ], + libs: [ + "mako", + ], +} + +python_binary_host { + name: "bi_packer.c_gen", + main: "bi_packer.c.py", + srcs: [ + "bi_packer.c.py", + "bifrost_isa.py", + ], + libs: [ + "mako", + ], +} + +python_binary_host { + name: "bi_printer.c_gen", + main: "bi_printer.c.py", + srcs: [ + "bi_printer.c.py", + "bifrost_isa.py", + ], + libs: [ + "mako", + ], +} + +python_binary_host { + name: "bi_swizzles.c_gen", + main: "bi_swizzles.c.py", + srcs: [ + "bi_swizzles.c.py", + "bifrost_isa.py", + ], + libs: [ + "mako", + ], +} + +python_binary_host { + name: "bifrost_nir_algebraic_gen", + main: "bifrost_nir_algebraic.py", + srcs: [ + "bifrost_nir_algebraic.py", + "nir_algebraic.py", + "nir_opcodes.py", + ], + libs: [ + "mako", + ], +} + +python_binary_host { + name: "gen_disasm_gen", + main: "gen_disasm.py", + srcs: [ + "bifrost_isa.py", + "gen_disasm.py", + ], + libs: [ + "mako", + ], +} + +genrule { + name: "bi_builder.h", + srcs: [ + "IR_pseudo.xml", + "bifrost/ISA.xml", + "valhall/ISA.xml", + ], + out: [ + "bi_builder.h", + ], + tools: [ + "bi_builder.h_gen", + ], + cmd: "python3 $(location bi_builder.h_gen) $(location IR_pseudo.xml) $(location" + + "bifrost/ISA.xml) $(location valhall/ISA.xml) &> $(location bi_builder.h)", +} + +genrule { + name: "bi_opcodes.c", + srcs: [ + "IR_pseudo.xml", + "bifrost/ISA.xml", + "valhall/ISA.xml", + ], + out: [ + "bi_opcodes.c", + ], + tools: [ + "bi_opcodes.c_gen", + ], + cmd: "python3 $(location bi_opcodes.c_gen) $(location IR_pseudo.xml) $(location" + + "bifrost/ISA.xml) $(location valhall/ISA.xml) &> $(location bi_opcodes.c)", +} + +genrule { + name: "bi_opcodes.h", + srcs: [ + "IR_pseudo.xml", + "bifrost/ISA.xml", + "valhall/ISA.xml", + ], + out: [ + "bi_opcodes.h", + ], + tools: [ + "bi_opcodes.h_gen", + ], + cmd: "python3 $(location bi_opcodes.h_gen) $(location IR_pseudo.xml) $(location" + + "bifrost/ISA.xml) $(location valhall/ISA.xml) &> $(location bi_opcodes.h)", +} + +genrule { + name: "bi_packer.c", + srcs: [ + "IR_pseudo.xml", + "bifrost/ISA.xml", + "valhall/ISA.xml", + ], + out: [ + "bi_packer.c", + ], + tools: [ + "bi_packer.c_gen", + ], + cmd: "python3 $(location bi_packer.c_gen) $(location IR_pseudo.xml) $(location" + + "bifrost/ISA.xml) $(location valhall/ISA.xml) &> $(location bi_packer.c)", +} + +genrule { + name: "bi_printer.c", + srcs: [ + "IR_pseudo.xml", + "bifrost/ISA.xml", + "valhall/ISA.xml", + ], + out: [ + "bi_printer.c", + ], + tools: [ + "bi_printer.c_gen", + ], + cmd: "python3 $(location bi_printer.c_gen) $(location IR_pseudo.xml) $(location" + + "bifrost/ISA.xml) $(location valhall/ISA.xml) &> $(location bi_printer.c)", +} + +genrule { + name: "bi_swizzles.c", + srcs: [ + "IR_pseudo.xml", + "bifrost/ISA.xml", + ], + out: [ + "bi_swizzles.c", + ], + tools: [ + "bi_swizzles.c_gen", + ], + cmd: "python3 $(location bi_swizzles.c_gen) $(location IR_pseudo.xml) $(location" + + "bifrost/ISA.xml) &> $(location bi_swizzles.c)", +} + +genrule { + name: "bifrost_gen_disasm.c", + srcs: [ + "bifrost/ISA.xml", + ], + out: [ + "bifrost_gen_disasm.c", + ], + tools: [ + "gen_disasm_gen", + ], + cmd: "python3 $(location gen_disasm_gen) $(location bifrost/ISA.xml) &> $(location" + + "bifrost_gen_disasm.c)", +} + +genrule { + name: "bifrost_nir_algebraic.c", + srcs: [ + ], + out: [ + "bifrost_nir_algebraic.c", + ], + tools: [ + "bifrost_nir_algebraic_gen", + ], + cmd: "python3 $(location bifrost_nir_algebraic_gen) -p" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/compiler/nir/ &>" + + "$(location bifrost_nir_algebraic.c)", +} + +cc_library_headers { + name: "inc_valhall", + export_include_dirs: [ + ".", + "valhall", + ], +} + +cc_defaults { + name: "panfrost_bifrost_c_flags", + cflags: [ + "-Wno-override-init", + "-Wno-initializer-overrides", + ], +} + +cc_defaults { + name: "panfrost_bifrost_disasm_c_flags", + cflags: [ + "-Wno-override-init", + "-Wno-initializer-overrides", + ], +} + +cc_library_static { + name: "panfrost_bifrost", + host_supported: false, + srcs: [ + "bi_helper_invocations.c", + "bi_layout.c", + "bi_liveness.c", + "bi_lower_divergent_indirects.c", + "bi_lower_swizzle.c", + "bi_print.c", + "bi_opt_control_flow.c", + "bi_opt_constant_fold.c", + "bi_opt_copy_prop.c", + "bi_opt_dce.c", + "bi_opt_cse.c", + "bi_opt_push_ubo.c", + "bi_opt_mod_props.c", + "bi_opt_dual_tex.c", + "bi_iterator_schedule.c", + "bi_pressure_schedule.c", + "bi_ra.c", + "bi_ra_ssa.c", + "bi_spill_ssa.c", + "bi_validate.c", + "bir.c", + "bifrost_compile.c", + "bifrost/bi_opt_message_preload.c", + "bifrost/bi_pack.c", + "bifrost/bi_schedule.c", + "bifrost/bi_scoreboard.c", + "valhall/va_insert_flow.c", + "valhall/va_lower_constants.c", + "valhall/va_lower_isel.c", + "valhall/va_lower_split_64bit.c", + "valhall/va_optimize.c", + "valhall/va_mark_last.c", + "valhall/va_merge_flow.c", + "valhall/va_pack.c", + "valhall/va_perf.c", + "valhall/va_validate.c", + ], + generated_headers: [ + "nir_opcodes.h", + "nir_builder_opcodes.h", + "nir_intrinsics.h", + "nir_intrinsics_indices.h", + "ir_expression_operation.h", + "builtin_types.h", + "shader_stats.h", + "u_format_gen.h", + "bi_opcodes.h", + "bi_builder.h", + "valhall_enums.h", + ], + generated_sources: [ + "bi_opcodes.c", + "bi_swizzles.c", + "bi_printer.c", + "bi_packer.c", + "bifrost_nir_algebraic.c", + "valhall_c", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "panfrost_bifrost_c_flags", + ], + static_libs: [ + "libsync", + "panfrost_util", + "panfrost_bifrost_disasm", + "panfrost_valhall_disasm", + "nir", + "mesa_util", + "blake3", + "mesa_util_c11", + "compiler", + "panfrost_model_lib", + ], + shared_libs: [ + "m", + "libzstd", + "libdrm", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_valhall", + "inc_nir", + "inc_compiler", + "inc_panfrost", + ] + +} + +cc_library_static { + name: "panfrost_bifrost_disasm", + host_supported: false, + srcs: [ + "bifrost/disassemble.c", + "bi_print_common.c", + ], + generated_headers: [ + "nir_opcodes.h", + "nir_builder_opcodes.h", + "nir_intrinsics.h", + "nir_intrinsics_indices.h", + "ir_expression_operation.h", + "builtin_types.h", + "shader_stats.h", + "u_format_gen.h", + ], + generated_sources: [ + "bifrost_gen_disasm.c", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "panfrost_bifrost_disasm_c_flags", + ], + static_libs: [ + "libsync", + "panfrost_util", + "nir", + "mesa_util", + "blake3", + "mesa_util_c11", + "compiler", + ], + shared_libs: [ + "m", + "libzstd", + "libdrm", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_nir", + "inc_compiler", + ] + +} + diff --git a/output-dir/src/panfrost/compiler/valhall/Android.bp b/output-dir/src/panfrost/compiler/valhall/Android.bp new file mode 100644 index 000000000..7ba728df3 --- /dev/null +++ b/output-dir/src/panfrost/compiler/valhall/Android.bp @@ -0,0 +1,119 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +python_binary_host { + name: "disasm_gen", + main: "disasm.py", + srcs: [ + "disasm.py", + "valhall.py", + ], + libs: [ + "mako", + ], +} + +python_binary_host { + name: "valhall.c_gen", + main: "valhall.c.py", + srcs: [ + "valhall.c.py", + "valhall.py", + ], + libs: [ + "mako", + ], +} + +python_binary_host { + name: "valhall_enums.h_gen", + main: "valhall_enums.h.py", + srcs: [ + "valhall.py", + "valhall_enums.h.py", + ], + libs: [ + "mako", + ], +} + +genrule { + name: "valhall_c", + srcs: [ + "ISA.xml", + ], + out: [ + "valhall.c", + ], + tools: [ + "valhall.c_gen", + ], + cmd: "python3 $(location valhall.c_gen) $(location ISA.xml) &> $(location valhall.c)", +} + +genrule { + name: "valhall_disasm_c", + srcs: [ + "ISA.xml", + ], + out: [ + "valhall_disasm.c", + ], + tools: [ + "disasm_gen", + ], + cmd: "python3 $(location disasm_gen) $(location ISA.xml) &> $(location" + + "valhall_disasm.c)", +} + +genrule { + name: "valhall_enums.h", + srcs: [ + "ISA.xml", + ], + out: [ + "valhall_enums.h", + ], + tools: [ + "valhall_enums.h_gen", + ], + cmd: "python3 $(location valhall_enums.h_gen) $(location ISA.xml) &> $(location" + + "valhall_enums.h)", +} + +cc_defaults { + name: "panfrost_valhall_disasm_c_flags", + cflags: [ + "-Wno-override-init", + "-Wno-initializer-overrides", + ], +} + +cc_library_static { + name: "panfrost_valhall_disasm", + host_supported: false, + srcs: [ + ], + generated_sources: [ + "valhall_disasm_c", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "panfrost_valhall_disasm_c_flags", + ], + header_libs: [ + "inc_src", + ] + +} + diff --git a/output-dir/src/panfrost/genxml/Android.bp b/output-dir/src/panfrost/genxml/Android.bp new file mode 100644 index 000000000..47e58aa2f --- /dev/null +++ b/output-dir/src/panfrost/genxml/Android.bp @@ -0,0 +1,764 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +python_binary_host { + name: "gen_pack_gen", + main: "gen_pack.py", + srcs: [ + "gen_pack.py", + ], + libs: [ + "mako", + ], +} + +genrule { + name: "common_pack.h", + srcs: [ + "common.xml", + ], + out: [ + "common_pack.h", + ], + tools: [ + "gen_pack_gen", + ], + cmd: "python3 $(location gen_pack_gen) $(location common.xml) &> $(location" + + "common_pack.h)", +} + +genrule { + name: "v10_pack.h", + srcs: [ + "v10.xml", + ], + out: [ + "v10_pack.h", + ], + tools: [ + "gen_pack_gen", + ], + cmd: "python3 $(location gen_pack_gen) $(location v10.xml) &> $(location v10_pack.h)", +} + +genrule { + name: "v12_pack.h", + srcs: [ + "v12.xml", + ], + out: [ + "v12_pack.h", + ], + tools: [ + "gen_pack_gen", + ], + cmd: "python3 $(location gen_pack_gen) $(location v12.xml) &> $(location v12_pack.h)", +} + +genrule { + name: "v13_pack.h", + srcs: [ + "v13.xml", + ], + out: [ + "v13_pack.h", + ], + tools: [ + "gen_pack_gen", + ], + cmd: "python3 $(location gen_pack_gen) $(location v13.xml) &> $(location v13_pack.h)", +} + +genrule { + name: "v4_pack.h", + srcs: [ + "v4.xml", + ], + out: [ + "v4_pack.h", + ], + tools: [ + "gen_pack_gen", + ], + cmd: "python3 $(location gen_pack_gen) $(location v4.xml) &> $(location v4_pack.h)", +} + +genrule { + name: "v5_pack.h", + srcs: [ + "v5.xml", + ], + out: [ + "v5_pack.h", + ], + tools: [ + "gen_pack_gen", + ], + cmd: "python3 $(location gen_pack_gen) $(location v5.xml) &> $(location v5_pack.h)", +} + +genrule { + name: "v6_pack.h", + srcs: [ + "v6.xml", + ], + out: [ + "v6_pack.h", + ], + tools: [ + "gen_pack_gen", + ], + cmd: "python3 $(location gen_pack_gen) $(location v6.xml) &> $(location v6_pack.h)", +} + +genrule { + name: "v7_pack.h", + srcs: [ + "v7.xml", + ], + out: [ + "v7_pack.h", + ], + tools: [ + "gen_pack_gen", + ], + cmd: "python3 $(location gen_pack_gen) $(location v7.xml) &> $(location v7_pack.h)", +} + +genrule { + name: "v9_pack.h", + srcs: [ + "v9.xml", + ], + out: [ + "v9_pack.h", + ], + tools: [ + "gen_pack_gen", + ], + cmd: "python3 $(location gen_pack_gen) $(location v9.xml) &> $(location v9_pack.h)", +} + +cc_defaults { + name: "pandecode-arch-v10_c_flags", + cflags: [ + "-Wno-override-init", + "-Wno-initializer-overrides", + "-DPAN_ARCH=10", + ], +} + +cc_defaults { + name: "pandecode-arch-v12_c_flags", + cflags: [ + "-Wno-override-init", + "-Wno-initializer-overrides", + "-DPAN_ARCH=12", + ], +} + +cc_defaults { + name: "pandecode-arch-v13_c_flags", + cflags: [ + "-Wno-override-init", + "-Wno-initializer-overrides", + "-DPAN_ARCH=13", + ], +} + +cc_defaults { + name: "pandecode-arch-v4_c_flags", + cflags: [ + "-Wno-override-init", + "-Wno-initializer-overrides", + "-DPAN_ARCH=4", + ], +} + +cc_defaults { + name: "pandecode-arch-v5_c_flags", + cflags: [ + "-Wno-override-init", + "-Wno-initializer-overrides", + "-DPAN_ARCH=5", + ], +} + +cc_defaults { + name: "pandecode-arch-v6_c_flags", + cflags: [ + "-Wno-override-init", + "-Wno-initializer-overrides", + "-DPAN_ARCH=6", + ], +} + +cc_defaults { + name: "pandecode-arch-v7_c_flags", + cflags: [ + "-Wno-override-init", + "-Wno-initializer-overrides", + "-DPAN_ARCH=7", + ], +} + +cc_defaults { + name: "pandecode-arch-v9_c_flags", + cflags: [ + "-Wno-override-init", + "-Wno-initializer-overrides", + "-DPAN_ARCH=9", + ], +} + +cc_defaults { + name: "panfrost_decode_c_flags", + cflags: [ + "-Wno-override-init", + "-Wno-initializer-overrides", + ], +} + +cc_library_static { + name: "pandecode-arch-v10", + host_supported: false, + srcs: [ + "decode.c", + "decode_jm.c", + "decode_csf.c", + ], + generated_headers: [ + "common_pack.h", + "v4_pack.h", + "v5_pack.h", + "v6_pack.h", + "v7_pack.h", + "v9_pack.h", + "v10_pack.h", + "v12_pack.h", + "v13_pack.h", + "nir_opcodes.h", + "nir_builder_opcodes.h", + "nir_intrinsics.h", + "nir_intrinsics_indices.h", + "ir_expression_operation.h", + "builtin_types.h", + "shader_stats.h", + "u_format_gen.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "pandecode-arch-v10_c_flags", + ], + static_libs: [ + "libsync", + "nir", + "mesa_util", + "blake3", + "mesa_util_c11", + "compiler", + ], + shared_libs: [ + "libdrm", + "m", + "libzstd", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_panfrost", + "inc_nir", + "inc_compiler", + ] + +} + +cc_library_static { + name: "pandecode-arch-v12", + host_supported: false, + srcs: [ + "decode.c", + "decode_jm.c", + "decode_csf.c", + ], + generated_headers: [ + "common_pack.h", + "v4_pack.h", + "v5_pack.h", + "v6_pack.h", + "v7_pack.h", + "v9_pack.h", + "v10_pack.h", + "v12_pack.h", + "v13_pack.h", + "nir_opcodes.h", + "nir_builder_opcodes.h", + "nir_intrinsics.h", + "nir_intrinsics_indices.h", + "ir_expression_operation.h", + "builtin_types.h", + "shader_stats.h", + "u_format_gen.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "pandecode-arch-v12_c_flags", + ], + static_libs: [ + "libsync", + "nir", + "mesa_util", + "blake3", + "mesa_util_c11", + "compiler", + ], + shared_libs: [ + "libdrm", + "m", + "libzstd", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_panfrost", + "inc_nir", + "inc_compiler", + ] + +} + +cc_library_static { + name: "pandecode-arch-v13", + host_supported: false, + srcs: [ + "decode.c", + "decode_jm.c", + "decode_csf.c", + ], + generated_headers: [ + "common_pack.h", + "v4_pack.h", + "v5_pack.h", + "v6_pack.h", + "v7_pack.h", + "v9_pack.h", + "v10_pack.h", + "v12_pack.h", + "v13_pack.h", + "nir_opcodes.h", + "nir_builder_opcodes.h", + "nir_intrinsics.h", + "nir_intrinsics_indices.h", + "ir_expression_operation.h", + "builtin_types.h", + "shader_stats.h", + "u_format_gen.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "pandecode-arch-v13_c_flags", + ], + static_libs: [ + "libsync", + "nir", + "mesa_util", + "blake3", + "mesa_util_c11", + "compiler", + ], + shared_libs: [ + "libdrm", + "m", + "libzstd", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_panfrost", + "inc_nir", + "inc_compiler", + ] + +} + +cc_library_static { + name: "pandecode-arch-v4", + host_supported: false, + srcs: [ + "decode.c", + "decode_jm.c", + "decode_csf.c", + ], + generated_headers: [ + "common_pack.h", + "v4_pack.h", + "v5_pack.h", + "v6_pack.h", + "v7_pack.h", + "v9_pack.h", + "v10_pack.h", + "v12_pack.h", + "v13_pack.h", + "nir_opcodes.h", + "nir_builder_opcodes.h", + "nir_intrinsics.h", + "nir_intrinsics_indices.h", + "ir_expression_operation.h", + "builtin_types.h", + "shader_stats.h", + "u_format_gen.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "pandecode-arch-v4_c_flags", + ], + static_libs: [ + "libsync", + "nir", + "mesa_util", + "blake3", + "mesa_util_c11", + "compiler", + ], + shared_libs: [ + "libdrm", + "m", + "libzstd", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_panfrost", + "inc_nir", + "inc_compiler", + ] + +} + +cc_library_static { + name: "pandecode-arch-v5", + host_supported: false, + srcs: [ + "decode.c", + "decode_jm.c", + "decode_csf.c", + ], + generated_headers: [ + "common_pack.h", + "v4_pack.h", + "v5_pack.h", + "v6_pack.h", + "v7_pack.h", + "v9_pack.h", + "v10_pack.h", + "v12_pack.h", + "v13_pack.h", + "nir_opcodes.h", + "nir_builder_opcodes.h", + "nir_intrinsics.h", + "nir_intrinsics_indices.h", + "ir_expression_operation.h", + "builtin_types.h", + "shader_stats.h", + "u_format_gen.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "pandecode-arch-v5_c_flags", + ], + static_libs: [ + "libsync", + "nir", + "mesa_util", + "blake3", + "mesa_util_c11", + "compiler", + ], + shared_libs: [ + "libdrm", + "m", + "libzstd", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_panfrost", + "inc_nir", + "inc_compiler", + ] + +} + +cc_library_static { + name: "pandecode-arch-v6", + host_supported: false, + srcs: [ + "decode.c", + "decode_jm.c", + "decode_csf.c", + ], + generated_headers: [ + "common_pack.h", + "v4_pack.h", + "v5_pack.h", + "v6_pack.h", + "v7_pack.h", + "v9_pack.h", + "v10_pack.h", + "v12_pack.h", + "v13_pack.h", + "nir_opcodes.h", + "nir_builder_opcodes.h", + "nir_intrinsics.h", + "nir_intrinsics_indices.h", + "ir_expression_operation.h", + "builtin_types.h", + "shader_stats.h", + "u_format_gen.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "pandecode-arch-v6_c_flags", + ], + static_libs: [ + "libsync", + "nir", + "mesa_util", + "blake3", + "mesa_util_c11", + "compiler", + ], + shared_libs: [ + "libdrm", + "m", + "libzstd", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_panfrost", + "inc_nir", + "inc_compiler", + ] + +} + +cc_library_static { + name: "pandecode-arch-v7", + host_supported: false, + srcs: [ + "decode.c", + "decode_jm.c", + "decode_csf.c", + ], + generated_headers: [ + "common_pack.h", + "v4_pack.h", + "v5_pack.h", + "v6_pack.h", + "v7_pack.h", + "v9_pack.h", + "v10_pack.h", + "v12_pack.h", + "v13_pack.h", + "nir_opcodes.h", + "nir_builder_opcodes.h", + "nir_intrinsics.h", + "nir_intrinsics_indices.h", + "ir_expression_operation.h", + "builtin_types.h", + "shader_stats.h", + "u_format_gen.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "pandecode-arch-v7_c_flags", + ], + static_libs: [ + "libsync", + "nir", + "mesa_util", + "blake3", + "mesa_util_c11", + "compiler", + ], + shared_libs: [ + "libdrm", + "m", + "libzstd", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_panfrost", + "inc_nir", + "inc_compiler", + ] + +} + +cc_library_static { + name: "pandecode-arch-v9", + host_supported: false, + srcs: [ + "decode.c", + "decode_jm.c", + "decode_csf.c", + ], + generated_headers: [ + "common_pack.h", + "v4_pack.h", + "v5_pack.h", + "v6_pack.h", + "v7_pack.h", + "v9_pack.h", + "v10_pack.h", + "v12_pack.h", + "v13_pack.h", + "nir_opcodes.h", + "nir_builder_opcodes.h", + "nir_intrinsics.h", + "nir_intrinsics_indices.h", + "ir_expression_operation.h", + "builtin_types.h", + "shader_stats.h", + "u_format_gen.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "pandecode-arch-v9_c_flags", + ], + static_libs: [ + "libsync", + "nir", + "mesa_util", + "blake3", + "mesa_util_c11", + "compiler", + ], + shared_libs: [ + "libdrm", + "m", + "libzstd", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_panfrost", + "inc_nir", + "inc_compiler", + ] + +} + +cc_library_static { + name: "panfrost_decode", + host_supported: false, + srcs: [ + "decode_common.c", + ], + generated_headers: [ + "common_pack.h", + "v4_pack.h", + "v5_pack.h", + "v6_pack.h", + "v7_pack.h", + "v9_pack.h", + "v10_pack.h", + "v12_pack.h", + "v13_pack.h", + "shader_stats.h", + "u_format_gen.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "panfrost_decode_c_flags", + ], + static_libs: [ + "libsync", + "pandecode-arch-v4", + "pandecode-arch-v5", + "pandecode-arch-v6", + "pandecode-arch-v7", + "pandecode-arch-v9", + "pandecode-arch-v10", + "pandecode-arch-v12", + "pandecode-arch-v13", + "mesa_util", + "blake3", + "mesa_util_c11", + ], + shared_libs: [ + "m", + "libzstd", + "libdrm", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_panfrost", + ] + +} + diff --git a/output-dir/src/panfrost/lib/Android.bp b/output-dir/src/panfrost/lib/Android.bp new file mode 100644 index 000000000..497a58f0d --- /dev/null +++ b/output-dir/src/panfrost/lib/Android.bp @@ -0,0 +1,1047 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +cc_defaults { + name: "pan-arch-v10_c_flags", + cflags: [ + "-DPAN_ARCH=10", + ], +} + +cc_defaults { + name: "pan-arch-v12_c_flags", + cflags: [ + "-DPAN_ARCH=12", + ], +} + +cc_defaults { + name: "pan-arch-v13_c_flags", + cflags: [ + "-DPAN_ARCH=13", + ], +} + +cc_defaults { + name: "pan-arch-v4_c_flags", + cflags: [ + "-DPAN_ARCH=4", + ], +} + +cc_defaults { + name: "pan-arch-v5_c_flags", + cflags: [ + "-DPAN_ARCH=5", + ], +} + +cc_defaults { + name: "pan-arch-v6_c_flags", + cflags: [ + "-DPAN_ARCH=6", + ], +} + +cc_defaults { + name: "pan-arch-v7_c_flags", + cflags: [ + "-DPAN_ARCH=7", + ], +} + +cc_defaults { + name: "pan-arch-v9_c_flags", + cflags: [ + "-DPAN_ARCH=9", + ], +} + +cc_defaults { + name: "pan-format-v10_c_flags", + cflags: [ + "-DPAN_ARCH=10", + ], +} + +cc_defaults { + name: "pan-format-v12_c_flags", + cflags: [ + "-DPAN_ARCH=12", + ], +} + +cc_defaults { + name: "pan-format-v13_c_flags", + cflags: [ + "-DPAN_ARCH=13", + ], +} + +cc_defaults { + name: "pan-format-v5_c_flags", + cflags: [ + "-DPAN_ARCH=5", + ], +} + +cc_defaults { + name: "pan-format-v6_c_flags", + cflags: [ + "-DPAN_ARCH=6", + ], +} + +cc_defaults { + name: "pan-format-v7_c_flags", + cflags: [ + "-DPAN_ARCH=7", + ], +} + +cc_defaults { + name: "pan-format-v9_c_flags", + cflags: [ + "-DPAN_ARCH=9", + ], +} + +cc_defaults { + name: "panfrost_lib_c_flags", + cflags: [ + "-Wno-override-init", + "-Wno-initializer-overrides", + ], +} + +cc_library_static { + name: "pan-arch-v10", + host_supported: false, + srcs: [ + "pan_blend.c", + "pan_desc.c", + "pan_mod.c", + "pan_texture.c", + ], + generated_headers: [ + "common_pack.h", + "v4_pack.h", + "v5_pack.h", + "v6_pack.h", + "v7_pack.h", + "v9_pack.h", + "v10_pack.h", + "v12_pack.h", + "v13_pack.h", + "shader_stats.h", + "u_format_gen.h", + "nir_opcodes.h", + "nir_builder_opcodes.h", + "nir_intrinsics.h", + "nir_intrinsics_indices.h", + "ir_expression_operation.h", + "builtin_types.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "pan-arch-v10_c_flags", + ], + static_libs: [ + "libsync", + "mesa_util", + "blake3", + "mesa_util_c11", + "panfrost_model_lib", + "nir", + "compiler", + ], + shared_libs: [ + "libdrm", + "m", + "libzstd", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_panfrost", + "inc_nir", + "inc_compiler", + ] + +} + +cc_library_static { + name: "pan-arch-v12", + host_supported: false, + srcs: [ + "pan_blend.c", + "pan_desc.c", + "pan_mod.c", + "pan_texture.c", + ], + generated_headers: [ + "common_pack.h", + "v4_pack.h", + "v5_pack.h", + "v6_pack.h", + "v7_pack.h", + "v9_pack.h", + "v10_pack.h", + "v12_pack.h", + "v13_pack.h", + "shader_stats.h", + "u_format_gen.h", + "nir_opcodes.h", + "nir_builder_opcodes.h", + "nir_intrinsics.h", + "nir_intrinsics_indices.h", + "ir_expression_operation.h", + "builtin_types.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "pan-arch-v12_c_flags", + ], + static_libs: [ + "libsync", + "mesa_util", + "blake3", + "mesa_util_c11", + "panfrost_model_lib", + "nir", + "compiler", + ], + shared_libs: [ + "libdrm", + "m", + "libzstd", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_panfrost", + "inc_nir", + "inc_compiler", + ] + +} + +cc_library_static { + name: "pan-arch-v13", + host_supported: false, + srcs: [ + "pan_blend.c", + "pan_desc.c", + "pan_mod.c", + "pan_texture.c", + ], + generated_headers: [ + "common_pack.h", + "v4_pack.h", + "v5_pack.h", + "v6_pack.h", + "v7_pack.h", + "v9_pack.h", + "v10_pack.h", + "v12_pack.h", + "v13_pack.h", + "shader_stats.h", + "u_format_gen.h", + "nir_opcodes.h", + "nir_builder_opcodes.h", + "nir_intrinsics.h", + "nir_intrinsics_indices.h", + "ir_expression_operation.h", + "builtin_types.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "pan-arch-v13_c_flags", + ], + static_libs: [ + "libsync", + "mesa_util", + "blake3", + "mesa_util_c11", + "panfrost_model_lib", + "nir", + "compiler", + ], + shared_libs: [ + "libdrm", + "m", + "libzstd", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_panfrost", + "inc_nir", + "inc_compiler", + ] + +} + +cc_library_static { + name: "pan-arch-v4", + host_supported: false, + srcs: [ + "pan_blend.c", + "pan_desc.c", + "pan_mod.c", + "pan_texture.c", + ], + generated_headers: [ + "common_pack.h", + "v4_pack.h", + "v5_pack.h", + "v6_pack.h", + "v7_pack.h", + "v9_pack.h", + "v10_pack.h", + "v12_pack.h", + "v13_pack.h", + "shader_stats.h", + "u_format_gen.h", + "nir_opcodes.h", + "nir_builder_opcodes.h", + "nir_intrinsics.h", + "nir_intrinsics_indices.h", + "ir_expression_operation.h", + "builtin_types.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "pan-arch-v4_c_flags", + ], + static_libs: [ + "libsync", + "mesa_util", + "blake3", + "mesa_util_c11", + "panfrost_model_lib", + "nir", + "compiler", + ], + shared_libs: [ + "libdrm", + "m", + "libzstd", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_panfrost", + "inc_nir", + "inc_compiler", + ] + +} + +cc_library_static { + name: "pan-arch-v5", + host_supported: false, + srcs: [ + "pan_blend.c", + "pan_desc.c", + "pan_mod.c", + "pan_texture.c", + ], + generated_headers: [ + "common_pack.h", + "v4_pack.h", + "v5_pack.h", + "v6_pack.h", + "v7_pack.h", + "v9_pack.h", + "v10_pack.h", + "v12_pack.h", + "v13_pack.h", + "shader_stats.h", + "u_format_gen.h", + "nir_opcodes.h", + "nir_builder_opcodes.h", + "nir_intrinsics.h", + "nir_intrinsics_indices.h", + "ir_expression_operation.h", + "builtin_types.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "pan-arch-v5_c_flags", + ], + static_libs: [ + "libsync", + "mesa_util", + "blake3", + "mesa_util_c11", + "panfrost_model_lib", + "nir", + "compiler", + ], + shared_libs: [ + "libdrm", + "m", + "libzstd", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_panfrost", + "inc_nir", + "inc_compiler", + ] + +} + +cc_library_static { + name: "pan-arch-v6", + host_supported: false, + srcs: [ + "pan_blend.c", + "pan_desc.c", + "pan_mod.c", + "pan_texture.c", + ], + generated_headers: [ + "common_pack.h", + "v4_pack.h", + "v5_pack.h", + "v6_pack.h", + "v7_pack.h", + "v9_pack.h", + "v10_pack.h", + "v12_pack.h", + "v13_pack.h", + "shader_stats.h", + "u_format_gen.h", + "nir_opcodes.h", + "nir_builder_opcodes.h", + "nir_intrinsics.h", + "nir_intrinsics_indices.h", + "ir_expression_operation.h", + "builtin_types.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "pan-arch-v6_c_flags", + ], + static_libs: [ + "libsync", + "mesa_util", + "blake3", + "mesa_util_c11", + "panfrost_model_lib", + "nir", + "compiler", + ], + shared_libs: [ + "libdrm", + "m", + "libzstd", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_panfrost", + "inc_nir", + "inc_compiler", + ] + +} + +cc_library_static { + name: "pan-arch-v7", + host_supported: false, + srcs: [ + "pan_blend.c", + "pan_desc.c", + "pan_mod.c", + "pan_texture.c", + ], + generated_headers: [ + "common_pack.h", + "v4_pack.h", + "v5_pack.h", + "v6_pack.h", + "v7_pack.h", + "v9_pack.h", + "v10_pack.h", + "v12_pack.h", + "v13_pack.h", + "shader_stats.h", + "u_format_gen.h", + "nir_opcodes.h", + "nir_builder_opcodes.h", + "nir_intrinsics.h", + "nir_intrinsics_indices.h", + "ir_expression_operation.h", + "builtin_types.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "pan-arch-v7_c_flags", + ], + static_libs: [ + "libsync", + "mesa_util", + "blake3", + "mesa_util_c11", + "panfrost_model_lib", + "nir", + "compiler", + ], + shared_libs: [ + "libdrm", + "m", + "libzstd", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_panfrost", + "inc_nir", + "inc_compiler", + ] + +} + +cc_library_static { + name: "pan-arch-v9", + host_supported: false, + srcs: [ + "pan_blend.c", + "pan_desc.c", + "pan_mod.c", + "pan_texture.c", + ], + generated_headers: [ + "common_pack.h", + "v4_pack.h", + "v5_pack.h", + "v6_pack.h", + "v7_pack.h", + "v9_pack.h", + "v10_pack.h", + "v12_pack.h", + "v13_pack.h", + "shader_stats.h", + "u_format_gen.h", + "nir_opcodes.h", + "nir_builder_opcodes.h", + "nir_intrinsics.h", + "nir_intrinsics_indices.h", + "ir_expression_operation.h", + "builtin_types.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "pan-arch-v9_c_flags", + ], + static_libs: [ + "libsync", + "mesa_util", + "blake3", + "mesa_util_c11", + "panfrost_model_lib", + "nir", + "compiler", + ], + shared_libs: [ + "libdrm", + "m", + "libzstd", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_panfrost", + "inc_nir", + "inc_compiler", + ] + +} + +cc_library_static { + name: "pan-format-v10", + host_supported: false, + srcs: [ + "pan_format.c", + ], + generated_headers: [ + "common_pack.h", + "v4_pack.h", + "v5_pack.h", + "v6_pack.h", + "v7_pack.h", + "v9_pack.h", + "v10_pack.h", + "v12_pack.h", + "v13_pack.h", + "shader_stats.h", + "u_format_gen.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "pan-format-v10_c_flags", + ], + static_libs: [ + "libsync", + "mesa_util", + "blake3", + "mesa_util_c11", + "panfrost_model_lib", + ], + shared_libs: [ + "libdrm", + "m", + "libzstd", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_panfrost", + ] + +} + +cc_library_static { + name: "pan-format-v12", + host_supported: false, + srcs: [ + "pan_format.c", + ], + generated_headers: [ + "common_pack.h", + "v4_pack.h", + "v5_pack.h", + "v6_pack.h", + "v7_pack.h", + "v9_pack.h", + "v10_pack.h", + "v12_pack.h", + "v13_pack.h", + "shader_stats.h", + "u_format_gen.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "pan-format-v12_c_flags", + ], + static_libs: [ + "libsync", + "mesa_util", + "blake3", + "mesa_util_c11", + "panfrost_model_lib", + ], + shared_libs: [ + "libdrm", + "m", + "libzstd", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_panfrost", + ] + +} + +cc_library_static { + name: "pan-format-v13", + host_supported: false, + srcs: [ + "pan_format.c", + ], + generated_headers: [ + "common_pack.h", + "v4_pack.h", + "v5_pack.h", + "v6_pack.h", + "v7_pack.h", + "v9_pack.h", + "v10_pack.h", + "v12_pack.h", + "v13_pack.h", + "shader_stats.h", + "u_format_gen.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "pan-format-v13_c_flags", + ], + static_libs: [ + "libsync", + "mesa_util", + "blake3", + "mesa_util_c11", + "panfrost_model_lib", + ], + shared_libs: [ + "libdrm", + "m", + "libzstd", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_panfrost", + ] + +} + +cc_library_static { + name: "pan-format-v5", + host_supported: false, + srcs: [ + "pan_format.c", + ], + generated_headers: [ + "common_pack.h", + "v4_pack.h", + "v5_pack.h", + "v6_pack.h", + "v7_pack.h", + "v9_pack.h", + "v10_pack.h", + "v12_pack.h", + "v13_pack.h", + "shader_stats.h", + "u_format_gen.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "pan-format-v5_c_flags", + ], + static_libs: [ + "libsync", + "mesa_util", + "blake3", + "mesa_util_c11", + "panfrost_model_lib", + ], + shared_libs: [ + "libdrm", + "m", + "libzstd", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_panfrost", + ] + +} + +cc_library_static { + name: "pan-format-v6", + host_supported: false, + srcs: [ + "pan_format.c", + ], + generated_headers: [ + "common_pack.h", + "v4_pack.h", + "v5_pack.h", + "v6_pack.h", + "v7_pack.h", + "v9_pack.h", + "v10_pack.h", + "v12_pack.h", + "v13_pack.h", + "shader_stats.h", + "u_format_gen.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "pan-format-v6_c_flags", + ], + static_libs: [ + "libsync", + "mesa_util", + "blake3", + "mesa_util_c11", + "panfrost_model_lib", + ], + shared_libs: [ + "libdrm", + "m", + "libzstd", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_panfrost", + ] + +} + +cc_library_static { + name: "pan-format-v7", + host_supported: false, + srcs: [ + "pan_format.c", + ], + generated_headers: [ + "common_pack.h", + "v4_pack.h", + "v5_pack.h", + "v6_pack.h", + "v7_pack.h", + "v9_pack.h", + "v10_pack.h", + "v12_pack.h", + "v13_pack.h", + "shader_stats.h", + "u_format_gen.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "pan-format-v7_c_flags", + ], + static_libs: [ + "libsync", + "mesa_util", + "blake3", + "mesa_util_c11", + "panfrost_model_lib", + ], + shared_libs: [ + "libdrm", + "m", + "libzstd", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_panfrost", + ] + +} + +cc_library_static { + name: "pan-format-v9", + host_supported: false, + srcs: [ + "pan_format.c", + ], + generated_headers: [ + "common_pack.h", + "v4_pack.h", + "v5_pack.h", + "v6_pack.h", + "v7_pack.h", + "v9_pack.h", + "v10_pack.h", + "v12_pack.h", + "v13_pack.h", + "shader_stats.h", + "u_format_gen.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "pan-format-v9_c_flags", + ], + static_libs: [ + "libsync", + "mesa_util", + "blake3", + "mesa_util_c11", + "panfrost_model_lib", + ], + shared_libs: [ + "libdrm", + "m", + "libzstd", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_panfrost", + ] + +} + +cc_library_static { + name: "panfrost_lib", + host_supported: false, + srcs: [ + "pan_blend.c", + "pan_clear.c", + "pan_earlyzs.c", + "pan_samples.c", + "pan_shader.c", + "pan_tiler.c", + "pan_layout.c", + "pan_scratch.c", + "pan_props.c", + "pan_util.c", + "pan_afbc.c", + ], + generated_headers: [ + "common_pack.h", + "v4_pack.h", + "v5_pack.h", + "v6_pack.h", + "v7_pack.h", + "v9_pack.h", + "v10_pack.h", + "v12_pack.h", + "v13_pack.h", + "nir_opcodes.h", + "nir_builder_opcodes.h", + "nir_intrinsics.h", + "nir_intrinsics_indices.h", + "ir_expression_operation.h", + "builtin_types.h", + "shader_stats.h", + "u_format_gen.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "panfrost_lib_c_flags", + ], + static_libs: [ + "libsync", + "pan-format-v5", + "pan-format-v6", + "pan-format-v7", + "pan-format-v9", + "pan-format-v10", + "pan-format-v12", + "pan-format-v13", + "pan-arch-v4", + "pan-arch-v5", + "pan-arch-v6", + "pan-arch-v7", + "pan-arch-v9", + "pan-arch-v10", + "pan-arch-v12", + "pan-arch-v13", + "pankmod_lib", + "nir", + "mesa_util", + "blake3", + "mesa_util_c11", + "compiler", + "panfrost_model_lib", + ], + shared_libs: [ + "libdrm", + "m", + "libzstd", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_panfrost", + "inc_nir", + "inc_compiler", + ] + +} + diff --git a/output-dir/src/panfrost/lib/kmod/Android.bp b/output-dir/src/panfrost/lib/kmod/Android.bp new file mode 100644 index 000000000..ecf3a6b50 --- /dev/null +++ b/output-dir/src/panfrost/lib/kmod/Android.bp @@ -0,0 +1,69 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +cc_defaults { + name: "pankmod_lib_c_flags", + cflags: [ + "-Wno-override-init", + "-Wno-initializer-overrides", + ], +} + +cc_library_static { + name: "pankmod_lib", + host_supported: false, + srcs: [ + "pan_kmod.c", + "panfrost_kmod.c", + "panthor_kmod.c", + ], + generated_headers: [ + "shader_stats.h", + "u_format_gen.h", + "common_pack.h", + "v4_pack.h", + "v5_pack.h", + "v6_pack.h", + "v7_pack.h", + "v9_pack.h", + "v10_pack.h", + "v12_pack.h", + "v13_pack.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "pankmod_lib_c_flags", + ], + static_libs: [ + "libsync", + "mesa_util", + "blake3", + "mesa_util_c11", + "panfrost_model_lib", + ], + shared_libs: [ + "libdrm", + "m", + "libzstd", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_panfrost", + ] + +} + diff --git a/output-dir/src/panfrost/libpan/Android.bp b/output-dir/src/panfrost/libpan/Android.bp new file mode 100644 index 000000000..29f07e9a3 --- /dev/null +++ b/output-dir/src/panfrost/libpan/Android.bp @@ -0,0 +1,946 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +genrule { + name: "libpan_shaders_v10.h_header", + srcs: [ + ], + out: [ + "libpan_shaders_v10.h", + ], + tools: [ + "panfrost_compile", + ], + cmd: "$(location panfrost_compile) libpan_shaders 10 $(location libpan_v10.spv)" + + "$(location libpan_shaders_v10.h)", +} + +genrule { + name: "libpan_shaders_v10.h_impl", + srcs: [ + ], + out: [ + "libpan_shaders_v10.c", + ], + tools: [ + "panfrost_compile", + ], + cmd: "$(location panfrost_compile) libpan_shaders 10 $(location libpan_v10.spv)" + + ""$(genDir)/libpan_shaders_v10.h"", +} + +genrule { + name: "libpan_shaders_v12.h_header", + srcs: [ + ], + out: [ + "libpan_shaders_v12.h", + ], + tools: [ + "panfrost_compile", + ], + cmd: "$(location panfrost_compile) libpan_shaders 12 $(location libpan_v12.spv)" + + "$(location libpan_shaders_v12.h)", +} + +genrule { + name: "libpan_shaders_v12.h_impl", + srcs: [ + ], + out: [ + "libpan_shaders_v12.c", + ], + tools: [ + "panfrost_compile", + ], + cmd: "$(location panfrost_compile) libpan_shaders 12 $(location libpan_v12.spv)" + + ""$(genDir)/libpan_shaders_v12.h"", +} + +genrule { + name: "libpan_shaders_v13.h_header", + srcs: [ + ], + out: [ + "libpan_shaders_v13.h", + ], + tools: [ + "panfrost_compile", + ], + cmd: "$(location panfrost_compile) libpan_shaders 13 $(location libpan_v13.spv)" + + "$(location libpan_shaders_v13.h)", +} + +genrule { + name: "libpan_shaders_v13.h_impl", + srcs: [ + ], + out: [ + "libpan_shaders_v13.c", + ], + tools: [ + "panfrost_compile", + ], + cmd: "$(location panfrost_compile) libpan_shaders 13 $(location libpan_v13.spv)" + + ""$(genDir)/libpan_shaders_v13.h"", +} + +genrule { + name: "libpan_shaders_v4.h_header", + srcs: [ + ], + out: [ + "libpan_shaders_v4.h", + ], + tools: [ + "panfrost_compile", + ], + cmd: "$(location panfrost_compile) libpan_shaders 4 $(location libpan_v4.spv)" + + "$(location libpan_shaders_v4.h)", +} + +genrule { + name: "libpan_shaders_v4.h_impl", + srcs: [ + ], + out: [ + "libpan_shaders_v4.c", + ], + tools: [ + "panfrost_compile", + ], + cmd: "$(location panfrost_compile) libpan_shaders 4 $(location libpan_v4.spv)" + + ""$(genDir)/libpan_shaders_v4.h"", +} + +genrule { + name: "libpan_shaders_v5.h_header", + srcs: [ + ], + out: [ + "libpan_shaders_v5.h", + ], + tools: [ + "panfrost_compile", + ], + cmd: "$(location panfrost_compile) libpan_shaders 5 $(location libpan_v5.spv)" + + "$(location libpan_shaders_v5.h)", +} + +genrule { + name: "libpan_shaders_v5.h_impl", + srcs: [ + ], + out: [ + "libpan_shaders_v5.c", + ], + tools: [ + "panfrost_compile", + ], + cmd: "$(location panfrost_compile) libpan_shaders 5 $(location libpan_v5.spv)" + + ""$(genDir)/libpan_shaders_v5.h"", +} + +genrule { + name: "libpan_shaders_v6.h_header", + srcs: [ + ], + out: [ + "libpan_shaders_v6.h", + ], + tools: [ + "panfrost_compile", + ], + cmd: "$(location panfrost_compile) libpan_shaders 6 $(location libpan_v6.spv)" + + "$(location libpan_shaders_v6.h)", +} + +genrule { + name: "libpan_shaders_v6.h_impl", + srcs: [ + ], + out: [ + "libpan_shaders_v6.c", + ], + tools: [ + "panfrost_compile", + ], + cmd: "$(location panfrost_compile) libpan_shaders 6 $(location libpan_v6.spv)" + + ""$(genDir)/libpan_shaders_v6.h"", +} + +genrule { + name: "libpan_shaders_v7.h_header", + srcs: [ + ], + out: [ + "libpan_shaders_v7.h", + ], + tools: [ + "panfrost_compile", + ], + cmd: "$(location panfrost_compile) libpan_shaders 7 $(location libpan_v7.spv)" + + "$(location libpan_shaders_v7.h)", +} + +genrule { + name: "libpan_shaders_v7.h_impl", + srcs: [ + ], + out: [ + "libpan_shaders_v7.c", + ], + tools: [ + "panfrost_compile", + ], + cmd: "$(location panfrost_compile) libpan_shaders 7 $(location libpan_v7.spv)" + + ""$(genDir)/libpan_shaders_v7.h"", +} + +genrule { + name: "libpan_shaders_v9.h_header", + srcs: [ + ], + out: [ + "libpan_shaders_v9.h", + ], + tools: [ + "panfrost_compile", + ], + cmd: "$(location panfrost_compile) libpan_shaders 9 $(location libpan_v9.spv)" + + "$(location libpan_shaders_v9.h)", +} + +genrule { + name: "libpan_shaders_v9.h_impl", + srcs: [ + ], + out: [ + "libpan_shaders_v9.c", + ], + tools: [ + "panfrost_compile", + ], + cmd: "$(location panfrost_compile) libpan_shaders 9 $(location libpan_v9.spv)" + + ""$(genDir)/libpan_shaders_v9.h"", +} + +genrule { + name: "libpan_v10.cpp_header", + srcs: [ + ], + out: [ + "libpan_v10.h", + ], + tools: [ + "vtn_bindgen2", + ], + cmd: "$(location vtn_bindgen2) , '-o', '@OUTPUT@', '--depfile', '@DEPFILE@'," + + ", , , , '--', '-DPAN_ARCH=10'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/include'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/compiler/libcl'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/.'," + + "'-" + + "I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../.." + + "/', '-" + + "I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../'," + + "'-I/tmp/tmpx1uwqcvq/src/panfrost/libpan/../', '-fmacro-prefix-" + + "map=../../usr/local/google/home/gurchetansingh/meson/temp_mesa/=', '-fmacro-" + + "prefix-map=/usr/local/google/home/gurchetansingh/meson/temp_mesa//=', '-fmacro-" + + "prefix-map=/tmp/tmpx1uwqcvq/=', '-cl-std=cl2.0', '-D__OPENCL_VERSION__=200'," + + "'-DHAVE___BUILTIN_FFS', '-DHAVE___BUILTIN_CLZ']> "$(genDir)/placeholder.c"", +} + +genrule { + name: "libpan_v10.cpp_impl", + srcs: [ + ], + out: [ + "libpan_v10.cpp", + ], + tools: [ + "vtn_bindgen2", + ], + cmd: "$(location vtn_bindgen2) , '-o', '@OUTPUT@', '--depfile', '@DEPFILE@'," + + ", , , , '--', '-DPAN_ARCH=10'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/include'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/compiler/libcl'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/.'," + + "'-" + + "I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../.." + + "/', '-" + + "I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../'," + + "'-I/tmp/tmpx1uwqcvq/src/panfrost/libpan/../', '-fmacro-prefix-" + + "map=../../usr/local/google/home/gurchetansingh/meson/temp_mesa/=', '-fmacro-" + + "prefix-map=/usr/local/google/home/gurchetansingh/meson/temp_mesa//=', '-fmacro-" + + "prefix-map=/tmp/tmpx1uwqcvq/=', '-cl-std=cl2.0', '-D__OPENCL_VERSION__=200'," + + "'-DHAVE___BUILTIN_FFS', '-DHAVE___BUILTIN_CLZ']> $(location libpan_v10.cpp)", +} + +genrule { + name: "libpan_v10.spv", + srcs: [ + "clear_afbc_metadata.cl", + "query_pool.cl", + "draw_helper.cl", + "indirect_dispatch.cl", + ], + out: [ + "libpan_v10.spv", + ], + tools: [ + "mesa_clc", + ], + cmd: "$(location mesa_clc) -o $(location libpan_v10.spv) --depfile @DEPFILE@" + + "$(location clear_afbc_metadata.cl) $(location query_pool.cl) $(location" + + "draw_helper.cl) $(location indirect_dispatch.cl) -- -DPAN_ARCH=10" + + "-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/include" + + "-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/compiler/libcl" + + "-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/. -I" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../../" + + "-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../" + + "-I/tmp/tmpx1uwqcvq/src/panfrost/libpan/../ -fmacro-prefix-" + + "map=../../usr/local/google/home/gurchetansingh/meson/temp_mesa/= -fmacro-prefix-" + + "map=/usr/local/google/home/gurchetansingh/meson/temp_mesa//= -fmacro-prefix-" + + "map=/tmp/tmpx1uwqcvq/= -cl-std=cl2.0 -D__OPENCL_VERSION__=200" + + "-DHAVE___BUILTIN_FFS -DHAVE___BUILTIN_CLZ", +} + +genrule { + name: "libpan_v12.cpp_header", + srcs: [ + ], + out: [ + "libpan_v12.h", + ], + tools: [ + "vtn_bindgen2", + ], + cmd: "$(location vtn_bindgen2) , '-o', '@OUTPUT@', '--depfile', '@DEPFILE@'," + + ", , , , '--', '-DPAN_ARCH=12'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/include'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/compiler/libcl'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/.'," + + "'-" + + "I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../.." + + "/', '-" + + "I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../'," + + "'-I/tmp/tmpx1uwqcvq/src/panfrost/libpan/../', '-fmacro-prefix-" + + "map=../../usr/local/google/home/gurchetansingh/meson/temp_mesa/=', '-fmacro-" + + "prefix-map=/usr/local/google/home/gurchetansingh/meson/temp_mesa//=', '-fmacro-" + + "prefix-map=/tmp/tmpx1uwqcvq/=', '-cl-std=cl2.0', '-D__OPENCL_VERSION__=200'," + + "'-DHAVE___BUILTIN_FFS', '-DHAVE___BUILTIN_CLZ']> "$(genDir)/placeholder.c"", +} + +genrule { + name: "libpan_v12.cpp_impl", + srcs: [ + ], + out: [ + "libpan_v12.cpp", + ], + tools: [ + "vtn_bindgen2", + ], + cmd: "$(location vtn_bindgen2) , '-o', '@OUTPUT@', '--depfile', '@DEPFILE@'," + + ", , , , '--', '-DPAN_ARCH=12'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/include'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/compiler/libcl'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/.'," + + "'-" + + "I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../.." + + "/', '-" + + "I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../'," + + "'-I/tmp/tmpx1uwqcvq/src/panfrost/libpan/../', '-fmacro-prefix-" + + "map=../../usr/local/google/home/gurchetansingh/meson/temp_mesa/=', '-fmacro-" + + "prefix-map=/usr/local/google/home/gurchetansingh/meson/temp_mesa//=', '-fmacro-" + + "prefix-map=/tmp/tmpx1uwqcvq/=', '-cl-std=cl2.0', '-D__OPENCL_VERSION__=200'," + + "'-DHAVE___BUILTIN_FFS', '-DHAVE___BUILTIN_CLZ']> $(location libpan_v12.cpp)", +} + +genrule { + name: "libpan_v12.spv", + srcs: [ + "clear_afbc_metadata.cl", + "query_pool.cl", + "draw_helper.cl", + "indirect_dispatch.cl", + ], + out: [ + "libpan_v12.spv", + ], + tools: [ + "mesa_clc", + ], + cmd: "$(location mesa_clc) -o $(location libpan_v12.spv) --depfile @DEPFILE@" + + "$(location clear_afbc_metadata.cl) $(location query_pool.cl) $(location" + + "draw_helper.cl) $(location indirect_dispatch.cl) -- -DPAN_ARCH=12" + + "-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/include" + + "-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/compiler/libcl" + + "-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/. -I" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../../" + + "-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../" + + "-I/tmp/tmpx1uwqcvq/src/panfrost/libpan/../ -fmacro-prefix-" + + "map=../../usr/local/google/home/gurchetansingh/meson/temp_mesa/= -fmacro-prefix-" + + "map=/usr/local/google/home/gurchetansingh/meson/temp_mesa//= -fmacro-prefix-" + + "map=/tmp/tmpx1uwqcvq/= -cl-std=cl2.0 -D__OPENCL_VERSION__=200" + + "-DHAVE___BUILTIN_FFS -DHAVE___BUILTIN_CLZ", +} + +genrule { + name: "libpan_v13.cpp_header", + srcs: [ + ], + out: [ + "libpan_v13.h", + ], + tools: [ + "vtn_bindgen2", + ], + cmd: "$(location vtn_bindgen2) , '-o', '@OUTPUT@', '--depfile', '@DEPFILE@'," + + ", , , , '--', '-DPAN_ARCH=13'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/include'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/compiler/libcl'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/.'," + + "'-" + + "I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../.." + + "/', '-" + + "I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../'," + + "'-I/tmp/tmpx1uwqcvq/src/panfrost/libpan/../', '-fmacro-prefix-" + + "map=../../usr/local/google/home/gurchetansingh/meson/temp_mesa/=', '-fmacro-" + + "prefix-map=/usr/local/google/home/gurchetansingh/meson/temp_mesa//=', '-fmacro-" + + "prefix-map=/tmp/tmpx1uwqcvq/=', '-cl-std=cl2.0', '-D__OPENCL_VERSION__=200'," + + "'-DHAVE___BUILTIN_FFS', '-DHAVE___BUILTIN_CLZ']> "$(genDir)/placeholder.c"", +} + +genrule { + name: "libpan_v13.cpp_impl", + srcs: [ + ], + out: [ + "libpan_v13.cpp", + ], + tools: [ + "vtn_bindgen2", + ], + cmd: "$(location vtn_bindgen2) , '-o', '@OUTPUT@', '--depfile', '@DEPFILE@'," + + ", , , , '--', '-DPAN_ARCH=13'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/include'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/compiler/libcl'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/.'," + + "'-" + + "I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../.." + + "/', '-" + + "I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../'," + + "'-I/tmp/tmpx1uwqcvq/src/panfrost/libpan/../', '-fmacro-prefix-" + + "map=../../usr/local/google/home/gurchetansingh/meson/temp_mesa/=', '-fmacro-" + + "prefix-map=/usr/local/google/home/gurchetansingh/meson/temp_mesa//=', '-fmacro-" + + "prefix-map=/tmp/tmpx1uwqcvq/=', '-cl-std=cl2.0', '-D__OPENCL_VERSION__=200'," + + "'-DHAVE___BUILTIN_FFS', '-DHAVE___BUILTIN_CLZ']> $(location libpan_v13.cpp)", +} + +genrule { + name: "libpan_v13.spv", + srcs: [ + "clear_afbc_metadata.cl", + "query_pool.cl", + "draw_helper.cl", + "indirect_dispatch.cl", + ], + out: [ + "libpan_v13.spv", + ], + tools: [ + "mesa_clc", + ], + cmd: "$(location mesa_clc) -o $(location libpan_v13.spv) --depfile @DEPFILE@" + + "$(location clear_afbc_metadata.cl) $(location query_pool.cl) $(location" + + "draw_helper.cl) $(location indirect_dispatch.cl) -- -DPAN_ARCH=13" + + "-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/include" + + "-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/compiler/libcl" + + "-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/. -I" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../../" + + "-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../" + + "-I/tmp/tmpx1uwqcvq/src/panfrost/libpan/../ -fmacro-prefix-" + + "map=../../usr/local/google/home/gurchetansingh/meson/temp_mesa/= -fmacro-prefix-" + + "map=/usr/local/google/home/gurchetansingh/meson/temp_mesa//= -fmacro-prefix-" + + "map=/tmp/tmpx1uwqcvq/= -cl-std=cl2.0 -D__OPENCL_VERSION__=200" + + "-DHAVE___BUILTIN_FFS -DHAVE___BUILTIN_CLZ", +} + +genrule { + name: "libpan_v4.cpp_header", + srcs: [ + ], + out: [ + "libpan_v4.h", + ], + tools: [ + "vtn_bindgen2", + ], + cmd: "$(location vtn_bindgen2) , '-o', '@OUTPUT@', '--depfile', '@DEPFILE@'," + + ", , , , '--', '-DPAN_ARCH=4'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/include'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/compiler/libcl'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/.'," + + "'-" + + "I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../.." + + "/', '-" + + "I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../'," + + "'-I/tmp/tmpx1uwqcvq/src/panfrost/libpan/../', '-fmacro-prefix-" + + "map=../../usr/local/google/home/gurchetansingh/meson/temp_mesa/=', '-fmacro-" + + "prefix-map=/usr/local/google/home/gurchetansingh/meson/temp_mesa//=', '-fmacro-" + + "prefix-map=/tmp/tmpx1uwqcvq/=', '-cl-std=cl2.0', '-D__OPENCL_VERSION__=200'," + + "'-DHAVE___BUILTIN_FFS', '-DHAVE___BUILTIN_CLZ']> "$(genDir)/placeholder.c"", +} + +genrule { + name: "libpan_v4.cpp_impl", + srcs: [ + ], + out: [ + "libpan_v4.cpp", + ], + tools: [ + "vtn_bindgen2", + ], + cmd: "$(location vtn_bindgen2) , '-o', '@OUTPUT@', '--depfile', '@DEPFILE@'," + + ", , , , '--', '-DPAN_ARCH=4'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/include'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/compiler/libcl'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/.'," + + "'-" + + "I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../.." + + "/', '-" + + "I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../'," + + "'-I/tmp/tmpx1uwqcvq/src/panfrost/libpan/../', '-fmacro-prefix-" + + "map=../../usr/local/google/home/gurchetansingh/meson/temp_mesa/=', '-fmacro-" + + "prefix-map=/usr/local/google/home/gurchetansingh/meson/temp_mesa//=', '-fmacro-" + + "prefix-map=/tmp/tmpx1uwqcvq/=', '-cl-std=cl2.0', '-D__OPENCL_VERSION__=200'," + + "'-DHAVE___BUILTIN_FFS', '-DHAVE___BUILTIN_CLZ']> $(location libpan_v4.cpp)", +} + +genrule { + name: "libpan_v4.spv", + srcs: [ + "clear_afbc_metadata.cl", + "query_pool.cl", + "draw_helper.cl", + "indirect_dispatch.cl", + ], + out: [ + "libpan_v4.spv", + ], + tools: [ + "mesa_clc", + ], + cmd: "$(location mesa_clc) -o $(location libpan_v4.spv) --depfile @DEPFILE@ $(location" + + "clear_afbc_metadata.cl) $(location query_pool.cl) $(location draw_helper.cl)" + + "$(location indirect_dispatch.cl) -- -DPAN_ARCH=4" + + "-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/include" + + "-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/compiler/libcl" + + "-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/. -I" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../../" + + "-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../" + + "-I/tmp/tmpx1uwqcvq/src/panfrost/libpan/../ -fmacro-prefix-" + + "map=../../usr/local/google/home/gurchetansingh/meson/temp_mesa/= -fmacro-prefix-" + + "map=/usr/local/google/home/gurchetansingh/meson/temp_mesa//= -fmacro-prefix-" + + "map=/tmp/tmpx1uwqcvq/= -cl-std=cl2.0 -D__OPENCL_VERSION__=200" + + "-DHAVE___BUILTIN_FFS -DHAVE___BUILTIN_CLZ", +} + +genrule { + name: "libpan_v5.cpp_header", + srcs: [ + ], + out: [ + "libpan_v5.h", + ], + tools: [ + "vtn_bindgen2", + ], + cmd: "$(location vtn_bindgen2) , '-o', '@OUTPUT@', '--depfile', '@DEPFILE@'," + + ", , , , '--', '-DPAN_ARCH=5'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/include'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/compiler/libcl'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/.'," + + "'-" + + "I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../.." + + "/', '-" + + "I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../'," + + "'-I/tmp/tmpx1uwqcvq/src/panfrost/libpan/../', '-fmacro-prefix-" + + "map=../../usr/local/google/home/gurchetansingh/meson/temp_mesa/=', '-fmacro-" + + "prefix-map=/usr/local/google/home/gurchetansingh/meson/temp_mesa//=', '-fmacro-" + + "prefix-map=/tmp/tmpx1uwqcvq/=', '-cl-std=cl2.0', '-D__OPENCL_VERSION__=200'," + + "'-DHAVE___BUILTIN_FFS', '-DHAVE___BUILTIN_CLZ']> "$(genDir)/placeholder.c"", +} + +genrule { + name: "libpan_v5.cpp_impl", + srcs: [ + ], + out: [ + "libpan_v5.cpp", + ], + tools: [ + "vtn_bindgen2", + ], + cmd: "$(location vtn_bindgen2) , '-o', '@OUTPUT@', '--depfile', '@DEPFILE@'," + + ", , , , '--', '-DPAN_ARCH=5'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/include'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/compiler/libcl'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/.'," + + "'-" + + "I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../.." + + "/', '-" + + "I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../'," + + "'-I/tmp/tmpx1uwqcvq/src/panfrost/libpan/../', '-fmacro-prefix-" + + "map=../../usr/local/google/home/gurchetansingh/meson/temp_mesa/=', '-fmacro-" + + "prefix-map=/usr/local/google/home/gurchetansingh/meson/temp_mesa//=', '-fmacro-" + + "prefix-map=/tmp/tmpx1uwqcvq/=', '-cl-std=cl2.0', '-D__OPENCL_VERSION__=200'," + + "'-DHAVE___BUILTIN_FFS', '-DHAVE___BUILTIN_CLZ']> $(location libpan_v5.cpp)", +} + +genrule { + name: "libpan_v5.spv", + srcs: [ + "clear_afbc_metadata.cl", + "query_pool.cl", + "draw_helper.cl", + "indirect_dispatch.cl", + ], + out: [ + "libpan_v5.spv", + ], + tools: [ + "mesa_clc", + ], + cmd: "$(location mesa_clc) -o $(location libpan_v5.spv) --depfile @DEPFILE@ $(location" + + "clear_afbc_metadata.cl) $(location query_pool.cl) $(location draw_helper.cl)" + + "$(location indirect_dispatch.cl) -- -DPAN_ARCH=5" + + "-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/include" + + "-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/compiler/libcl" + + "-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/. -I" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../../" + + "-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../" + + "-I/tmp/tmpx1uwqcvq/src/panfrost/libpan/../ -fmacro-prefix-" + + "map=../../usr/local/google/home/gurchetansingh/meson/temp_mesa/= -fmacro-prefix-" + + "map=/usr/local/google/home/gurchetansingh/meson/temp_mesa//= -fmacro-prefix-" + + "map=/tmp/tmpx1uwqcvq/= -cl-std=cl2.0 -D__OPENCL_VERSION__=200" + + "-DHAVE___BUILTIN_FFS -DHAVE___BUILTIN_CLZ", +} + +genrule { + name: "libpan_v6.cpp_header", + srcs: [ + ], + out: [ + "libpan_v6.h", + ], + tools: [ + "vtn_bindgen2", + ], + cmd: "$(location vtn_bindgen2) , '-o', '@OUTPUT@', '--depfile', '@DEPFILE@'," + + ", , , , '--', '-DPAN_ARCH=6'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/include'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/compiler/libcl'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/.'," + + "'-" + + "I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../.." + + "/', '-" + + "I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../'," + + "'-I/tmp/tmpx1uwqcvq/src/panfrost/libpan/../', '-fmacro-prefix-" + + "map=../../usr/local/google/home/gurchetansingh/meson/temp_mesa/=', '-fmacro-" + + "prefix-map=/usr/local/google/home/gurchetansingh/meson/temp_mesa//=', '-fmacro-" + + "prefix-map=/tmp/tmpx1uwqcvq/=', '-cl-std=cl2.0', '-D__OPENCL_VERSION__=200'," + + "'-DHAVE___BUILTIN_FFS', '-DHAVE___BUILTIN_CLZ']> "$(genDir)/placeholder.c"", +} + +genrule { + name: "libpan_v6.cpp_impl", + srcs: [ + ], + out: [ + "libpan_v6.cpp", + ], + tools: [ + "vtn_bindgen2", + ], + cmd: "$(location vtn_bindgen2) , '-o', '@OUTPUT@', '--depfile', '@DEPFILE@'," + + ", , , , '--', '-DPAN_ARCH=6'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/include'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/compiler/libcl'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/.'," + + "'-" + + "I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../.." + + "/', '-" + + "I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../'," + + "'-I/tmp/tmpx1uwqcvq/src/panfrost/libpan/../', '-fmacro-prefix-" + + "map=../../usr/local/google/home/gurchetansingh/meson/temp_mesa/=', '-fmacro-" + + "prefix-map=/usr/local/google/home/gurchetansingh/meson/temp_mesa//=', '-fmacro-" + + "prefix-map=/tmp/tmpx1uwqcvq/=', '-cl-std=cl2.0', '-D__OPENCL_VERSION__=200'," + + "'-DHAVE___BUILTIN_FFS', '-DHAVE___BUILTIN_CLZ']> $(location libpan_v6.cpp)", +} + +genrule { + name: "libpan_v6.spv", + srcs: [ + "clear_afbc_metadata.cl", + "query_pool.cl", + "draw_helper.cl", + "indirect_dispatch.cl", + ], + out: [ + "libpan_v6.spv", + ], + tools: [ + "mesa_clc", + ], + cmd: "$(location mesa_clc) -o $(location libpan_v6.spv) --depfile @DEPFILE@ $(location" + + "clear_afbc_metadata.cl) $(location query_pool.cl) $(location draw_helper.cl)" + + "$(location indirect_dispatch.cl) -- -DPAN_ARCH=6" + + "-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/include" + + "-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/compiler/libcl" + + "-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/. -I" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../../" + + "-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../" + + "-I/tmp/tmpx1uwqcvq/src/panfrost/libpan/../ -fmacro-prefix-" + + "map=../../usr/local/google/home/gurchetansingh/meson/temp_mesa/= -fmacro-prefix-" + + "map=/usr/local/google/home/gurchetansingh/meson/temp_mesa//= -fmacro-prefix-" + + "map=/tmp/tmpx1uwqcvq/= -cl-std=cl2.0 -D__OPENCL_VERSION__=200" + + "-DHAVE___BUILTIN_FFS -DHAVE___BUILTIN_CLZ", +} + +genrule { + name: "libpan_v7.cpp_header", + srcs: [ + ], + out: [ + "libpan_v7.h", + ], + tools: [ + "vtn_bindgen2", + ], + cmd: "$(location vtn_bindgen2) , '-o', '@OUTPUT@', '--depfile', '@DEPFILE@'," + + ", , , , '--', '-DPAN_ARCH=7'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/include'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/compiler/libcl'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/.'," + + "'-" + + "I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../.." + + "/', '-" + + "I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../'," + + "'-I/tmp/tmpx1uwqcvq/src/panfrost/libpan/../', '-fmacro-prefix-" + + "map=../../usr/local/google/home/gurchetansingh/meson/temp_mesa/=', '-fmacro-" + + "prefix-map=/usr/local/google/home/gurchetansingh/meson/temp_mesa//=', '-fmacro-" + + "prefix-map=/tmp/tmpx1uwqcvq/=', '-cl-std=cl2.0', '-D__OPENCL_VERSION__=200'," + + "'-DHAVE___BUILTIN_FFS', '-DHAVE___BUILTIN_CLZ']> "$(genDir)/placeholder.c"", +} + +genrule { + name: "libpan_v7.cpp_impl", + srcs: [ + ], + out: [ + "libpan_v7.cpp", + ], + tools: [ + "vtn_bindgen2", + ], + cmd: "$(location vtn_bindgen2) , '-o', '@OUTPUT@', '--depfile', '@DEPFILE@'," + + ", , , , '--', '-DPAN_ARCH=7'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/include'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/compiler/libcl'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/.'," + + "'-" + + "I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../.." + + "/', '-" + + "I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../'," + + "'-I/tmp/tmpx1uwqcvq/src/panfrost/libpan/../', '-fmacro-prefix-" + + "map=../../usr/local/google/home/gurchetansingh/meson/temp_mesa/=', '-fmacro-" + + "prefix-map=/usr/local/google/home/gurchetansingh/meson/temp_mesa//=', '-fmacro-" + + "prefix-map=/tmp/tmpx1uwqcvq/=', '-cl-std=cl2.0', '-D__OPENCL_VERSION__=200'," + + "'-DHAVE___BUILTIN_FFS', '-DHAVE___BUILTIN_CLZ']> $(location libpan_v7.cpp)", +} + +genrule { + name: "libpan_v7.spv", + srcs: [ + "clear_afbc_metadata.cl", + "query_pool.cl", + "draw_helper.cl", + "indirect_dispatch.cl", + ], + out: [ + "libpan_v7.spv", + ], + tools: [ + "mesa_clc", + ], + cmd: "$(location mesa_clc) -o $(location libpan_v7.spv) --depfile @DEPFILE@ $(location" + + "clear_afbc_metadata.cl) $(location query_pool.cl) $(location draw_helper.cl)" + + "$(location indirect_dispatch.cl) -- -DPAN_ARCH=7" + + "-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/include" + + "-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/compiler/libcl" + + "-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/. -I" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../../" + + "-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../" + + "-I/tmp/tmpx1uwqcvq/src/panfrost/libpan/../ -fmacro-prefix-" + + "map=../../usr/local/google/home/gurchetansingh/meson/temp_mesa/= -fmacro-prefix-" + + "map=/usr/local/google/home/gurchetansingh/meson/temp_mesa//= -fmacro-prefix-" + + "map=/tmp/tmpx1uwqcvq/= -cl-std=cl2.0 -D__OPENCL_VERSION__=200" + + "-DHAVE___BUILTIN_FFS -DHAVE___BUILTIN_CLZ", +} + +genrule { + name: "libpan_v9.cpp_header", + srcs: [ + ], + out: [ + "libpan_v9.h", + ], + tools: [ + "vtn_bindgen2", + ], + cmd: "$(location vtn_bindgen2) , '-o', '@OUTPUT@', '--depfile', '@DEPFILE@'," + + ", , , , '--', '-DPAN_ARCH=9'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/include'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/compiler/libcl'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/.'," + + "'-" + + "I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../.." + + "/', '-" + + "I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../'," + + "'-I/tmp/tmpx1uwqcvq/src/panfrost/libpan/../', '-fmacro-prefix-" + + "map=../../usr/local/google/home/gurchetansingh/meson/temp_mesa/=', '-fmacro-" + + "prefix-map=/usr/local/google/home/gurchetansingh/meson/temp_mesa//=', '-fmacro-" + + "prefix-map=/tmp/tmpx1uwqcvq/=', '-cl-std=cl2.0', '-D__OPENCL_VERSION__=200'," + + "'-DHAVE___BUILTIN_FFS', '-DHAVE___BUILTIN_CLZ']> "$(genDir)/placeholder.c"", +} + +genrule { + name: "libpan_v9.cpp_impl", + srcs: [ + ], + out: [ + "libpan_v9.cpp", + ], + tools: [ + "vtn_bindgen2", + ], + cmd: "$(location vtn_bindgen2) , '-o', '@OUTPUT@', '--depfile', '@DEPFILE@'," + + ", , , , '--', '-DPAN_ARCH=9'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/include'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/compiler/libcl'," + + "'-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/.'," + + "'-" + + "I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../.." + + "/', '-" + + "I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../'," + + "'-I/tmp/tmpx1uwqcvq/src/panfrost/libpan/../', '-fmacro-prefix-" + + "map=../../usr/local/google/home/gurchetansingh/meson/temp_mesa/=', '-fmacro-" + + "prefix-map=/usr/local/google/home/gurchetansingh/meson/temp_mesa//=', '-fmacro-" + + "prefix-map=/tmp/tmpx1uwqcvq/=', '-cl-std=cl2.0', '-D__OPENCL_VERSION__=200'," + + "'-DHAVE___BUILTIN_FFS', '-DHAVE___BUILTIN_CLZ']> $(location libpan_v9.cpp)", +} + +genrule { + name: "libpan_v9.spv", + srcs: [ + "clear_afbc_metadata.cl", + "query_pool.cl", + "draw_helper.cl", + "indirect_dispatch.cl", + ], + out: [ + "libpan_v9.spv", + ], + tools: [ + "mesa_clc", + ], + cmd: "$(location mesa_clc) -o $(location libpan_v9.spv) --depfile @DEPFILE@ $(location" + + "clear_afbc_metadata.cl) $(location query_pool.cl) $(location draw_helper.cl)" + + "$(location indirect_dispatch.cl) -- -DPAN_ARCH=9" + + "-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/include" + + "-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/compiler/libcl" + + "-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/. -I" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../../" + + "-I/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/panfrost/libpan/../" + + "-I/tmp/tmpx1uwqcvq/src/panfrost/libpan/../ -fmacro-prefix-" + + "map=../../usr/local/google/home/gurchetansingh/meson/temp_mesa/= -fmacro-prefix-" + + "map=/usr/local/google/home/gurchetansingh/meson/temp_mesa//= -fmacro-prefix-" + + "map=/tmp/tmpx1uwqcvq/= -cl-std=cl2.0 -D__OPENCL_VERSION__=200" + + "-DHAVE___BUILTIN_FFS -DHAVE___BUILTIN_CLZ", +} + diff --git a/output-dir/src/panfrost/midgard/Android.bp b/output-dir/src/panfrost/midgard/Android.bp new file mode 100644 index 000000000..be48c1bd1 --- /dev/null +++ b/output-dir/src/panfrost/midgard/Android.bp @@ -0,0 +1,149 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +python_binary_host { + name: "midgard_nir_algebraic_gen", + main: "midgard_nir_algebraic.py", + srcs: [ + "midgard_nir_algebraic.py", + "nir_algebraic.py", + "nir_opcodes.py", + ], + libs: [ + "mako", + ], +} + +genrule { + name: "midgard_nir_algebraic.c", + srcs: [ + ], + out: [ + "midgard_nir_algebraic.c", + ], + tools: [ + "midgard_nir_algebraic_gen", + ], + cmd: "python3 $(location midgard_nir_algebraic_gen) -p" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/compiler/nir/ &>" + + "$(location midgard_nir_algebraic.c)", +} + +cc_defaults { + name: "panfrost_midgard_c_flags", + cflags: [ + "-Wno-override-init", + "-Wno-initializer-overrides", + ], +} + +cc_defaults { + name: "panfrost_midgard_disasm_c_flags", + cflags: [ + "-Wno-override-init", + "-Wno-initializer-overrides", + ], +} + +cc_library_static { + name: "panfrost_midgard", + host_supported: false, + srcs: [ + "midgard_compile.c", + "mir.c", + "midgard_address.c", + "midgard_print.c", + "midgard_schedule.c", + "midgard_derivatives.c", + "midgard_emit.c", + "midgard_helper_invocations.c", + "midgard_ra.c", + "midgard_ra_pipeline.c", + "midgard_liveness.c", + "midgard_ops.c", + "mir_promote_uniforms.c", + "mir_squeeze.c", + "midgard_nir_lower_image_bitsize.c", + "midgard_nir_type_csel.c", + "midgard_opt_copy_prop.c", + "midgard_opt_dce.c", + "midgard_opt_perspective.c", + "midgard_opt_prop.c", + "midgard_errata_lod.c", + "nir_fuse_io_16.c", + ], + generated_headers: [ + "nir_opcodes.h", + "nir_builder_opcodes.h", + "nir_intrinsics.h", + "nir_intrinsics_indices.h", + "ir_expression_operation.h", + "builtin_types.h", + "shader_stats.h", + "u_format_gen.h", + ], + generated_sources: [ + "midgard_nir_algebraic.c", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "panfrost_midgard_c_flags", + ], + static_libs: [ + "libsync", + "panfrost_util", + "panfrost_midgard_disasm", + "nir", + "mesa_util", + "blake3", + "mesa_util_c11", + "compiler", + ], + shared_libs: [ + "m", + "libzstd", + "libdrm", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_nir", + "inc_compiler", + ] + +} + +cc_library_static { + name: "panfrost_midgard_disasm", + host_supported: false, + srcs: [ + "disassemble.c", + "midgard_ops.c", + "midgard_print_constant.c", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "panfrost_midgard_disasm_c_flags", + ], + header_libs: [ + "inc_src", + ] + +} + diff --git a/output-dir/src/panfrost/model/Android.bp b/output-dir/src/panfrost/model/Android.bp new file mode 100644 index 000000000..ebb13faaf --- /dev/null +++ b/output-dir/src/panfrost/model/Android.bp @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +cc_defaults { + name: "panfrost_model_lib_c_flags", + cflags: [ + "-Wno-override-init", + "-Wno-initializer-overrides", + ], +} + +cc_library_static { + name: "panfrost_model_lib", + host_supported: false, + srcs: [ + "pan_model.c", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "panfrost_model_lib_c_flags", + ], + header_libs: [ + "inc_src", + ] + +} + diff --git a/output-dir/src/panfrost/perf/Android.bp b/output-dir/src/panfrost/perf/Android.bp new file mode 100644 index 000000000..228d95c96 --- /dev/null +++ b/output-dir/src/panfrost/perf/Android.bp @@ -0,0 +1,170 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +python_binary_host { + name: "pan_gen_perf_gen", + main: "pan_gen_perf.py", + srcs: [ + "pan_gen_perf.py", + ], + libs: [ + "mako", + ], +} + +genrule { + name: "pan-perf-sources_header", + srcs: [ + "G31.xml", + "G51.xml", + "G52.xml", + "G57.xml", + "G68.xml", + "G71.xml", + "G72.xml", + "G76.xml", + "G77.xml", + "G78.xml", + "T72x.xml", + "T76x.xml", + "T82x.xml", + "T83x.xml", + "T86x.xml", + "T88x.xml", + ], + out: [ + "pan_perf_metrics.h", + ], + tools: [ + "pan_gen_perf_gen", + ], + cmd: "python3 $(location pan_gen_perf_gen) --code "$(genDir)/placeholder.c" --header" + + "$(location pan_perf_metrics.h) $(location G31.xml) $(location G51.xml)" + + "$(location G52.xml) $(location G57.xml) $(location G68.xml) $(location G71.xml)" + + "$(location G72.xml) $(location G76.xml) $(location G77.xml) $(location G78.xml)" + + "$(location T72x.xml) $(location T76x.xml) $(location T82x.xml) $(location" + + "T83x.xml) $(location T86x.xml) $(location T88x.xml)", +} + +genrule { + name: "pan-perf-sources_impl", + srcs: [ + "G31.xml", + "G51.xml", + "G52.xml", + "G57.xml", + "G68.xml", + "G71.xml", + "G72.xml", + "G76.xml", + "G77.xml", + "G78.xml", + "T72x.xml", + "T76x.xml", + "T82x.xml", + "T83x.xml", + "T86x.xml", + "T88x.xml", + ], + out: [ + "pan_perf_metrics.c", + ], + tools: [ + "pan_gen_perf_gen", + ], + cmd: "python3 $(location pan_gen_perf_gen) --code $(location pan_perf_metrics.c)" + + "--header "$(genDir)/pan_perf_metrics.h" $(location G31.xml) $(location G51.xml)" + + "$(location G52.xml) $(location G57.xml) $(location G68.xml) $(location G71.xml)" + + "$(location G72.xml) $(location G76.xml) $(location G77.xml) $(location G78.xml)" + + "$(location T72x.xml) $(location T76x.xml) $(location T82x.xml) $(location" + + "T83x.xml) $(location T86x.xml) $(location T88x.xml)", +} + +cc_library_static { + name: "panfrost_perf", + host_supported: false, + srcs: [ + "pan_perf.c", + ], + generated_headers: [ + "pan-perf-sources_header", + "common_pack.h", + "v4_pack.h", + "v5_pack.h", + "v6_pack.h", + "v7_pack.h", + "v9_pack.h", + "v10_pack.h", + "v12_pack.h", + "v13_pack.h", + "shader_stats.h", + "u_format_gen.h", + "nir_opcodes.h", + "nir_builder_opcodes.h", + "nir_intrinsics.h", + "nir_intrinsics_indices.h", + "ir_expression_operation.h", + "builtin_types.h", + ], + generated_sources: [ + "pan-perf-sources_impl", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + ], + static_libs: [ + "libsync", + "panfrost_lib", + "panfrost_decode", + "panfrost_midgard", + "panfrost_bifrost", + "pan-format-v5", + "pan-format-v6", + "pan-format-v7", + "pan-format-v9", + "pan-format-v10", + "pan-format-v12", + "pan-format-v13", + "pan-arch-v4", + "pan-arch-v5", + "pan-arch-v6", + "pan-arch-v7", + "pan-arch-v9", + "pan-arch-v10", + "pan-arch-v12", + "pan-arch-v13", + "mesa_util", + "blake3", + "mesa_util_c11", + "panfrost_model_lib", + "nir", + "compiler", + ], + shared_libs: [ + "libdrm", + "m", + "libzstd", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_panfrost", + "inc_nir", + "inc_compiler", + ] + +} + diff --git a/output-dir/src/panfrost/shared/Android.bp b/output-dir/src/panfrost/shared/Android.bp new file mode 100644 index 000000000..d6cfb9d93 --- /dev/null +++ b/output-dir/src/panfrost/shared/Android.bp @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +cc_defaults { + name: "panfrost_shared_c_flags", + cflags: [ + "-Wno-override-init", + "-Wno-initializer-overrides", + "-O3", + ], +} + +cc_library_static { + name: "panfrost_shared", + host_supported: false, + srcs: [ + "pan_minmax_cache.c", + "pan_tiling.c", + ], + generated_headers: [ + "shader_stats.h", + "u_format_gen.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "panfrost_shared_c_flags", + ], + static_libs: [ + "libsync", + "mesa_util", + "blake3", + "mesa_util_c11", + ], + shared_libs: [ + "m", + "libzstd", + "libdrm", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + ] + +} + diff --git a/output-dir/src/panfrost/util/Android.bp b/output-dir/src/panfrost/util/Android.bp new file mode 100644 index 000000000..0d2bc5f0d --- /dev/null +++ b/output-dir/src/panfrost/util/Android.bp @@ -0,0 +1,78 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +cc_defaults { + name: "panfrost_util_c_flags", + cflags: [ + "-Wno-override-init", + "-Wno-initializer-overrides", + ], +} + +cc_library_static { + name: "panfrost_util", + host_supported: false, + srcs: [ + "pan_collect_varyings.c", + "pan_ir.c", + "pan_lower_frag_coord_zw.c", + "pan_lower_framebuffer.c", + "pan_lower_helper_invocation.c", + "pan_lower_image_index.c", + "pan_lower_image_ms.c", + "pan_lower_noperspective.c", + "pan_lower_sample_position.c", + "pan_lower_store_component.c", + "pan_lower_vertex_id.c", + "pan_lower_writeout.c", + "pan_lower_xfb.c", + ], + generated_headers: [ + "nir_opcodes.h", + "nir_builder_opcodes.h", + "nir_intrinsics.h", + "nir_intrinsics_indices.h", + "ir_expression_operation.h", + "builtin_types.h", + "shader_stats.h", + "u_format_gen.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "panfrost_util_c_flags", + ], + static_libs: [ + "libsync", + "nir", + "mesa_util", + "blake3", + "mesa_util_c11", + "compiler", + ], + shared_libs: [ + "m", + "libzstd", + "libdrm", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_nir", + "inc_compiler", + ] + +} + diff --git a/output-dir/src/panfrost/vulkan/Android.bp b/output-dir/src/panfrost/vulkan/Android.bp new file mode 100644 index 000000000..7c47472ea --- /dev/null +++ b/output-dir/src/panfrost/vulkan/Android.bp @@ -0,0 +1,734 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +python_binary_host { + name: "panvk_tracepoints_gen", + main: "panvk_tracepoints.py", + srcs: [ + "panvk_tracepoints.py", + "perf/u_trace.py", + ], + libs: [ + "mako", + ], +} + +genrule { + name: "panfrost_devenv_icd", + srcs: [ + ":vk_icd_gen_py", + ":vk_xml", + ], + out: [ + "panfrost_devenv_icd.aarch64.json", + ], + tools: [ + "vk_icd_gen_gen", + ], + cmd: "python3 $(location vk_icd_gen_gen) --api-version 1.4 --xml $(location" + + "registry/vk.xml) --sizeof-pointer 0 --lib-path" + + "/tmp/tmpx1uwqcvq/src/panfrost/vulkan/libvulkan_panfrost.so --out $(location" + + "panfrost_devenv_icd.aarch64.json)", +} + +genrule { + name: "panfrost_icd", + srcs: [ + ":vk_icd_gen_py", + ":vk_xml", + ], + out: [ + "panfrost_icd.aarch64.json", + ], + tools: [ + "vk_icd_gen_gen", + ], + cmd: "python3 $(location vk_icd_gen_gen) --api-version 1.4 --xml $(location" + + "registry/vk.xml) --sizeof-pointer 0 --lib-path /usr/local/lib/x86_64-linux-" + + "gnu/libvulkan_panfrost.so --out $(location panfrost_icd.aarch64.json)", +} + +genrule { + name: "panvk_entrypoints.[ch]_header", + srcs: [ + ":vk_entrypoints_gen_py", + ":vk_xml", + ], + out: [ + "panvk_entrypoints.h", + ], + tools: [ + "vk_entrypoints_gen_gen", + ], + cmd: "python3 $(location vk_entrypoints_gen_gen) --xml $(location registry/vk.xml)" + + "--proto --weak --out-h $(location panvk_entrypoints.h) --out-c" + + ""$(genDir)/placeholder.c" --prefix panvk --device-prefix panvk_v6 --device-" + + "prefix panvk_v7 --device-prefix panvk_v9 --device-prefix panvk_v10 --device-" + + "prefix panvk_v12 --device-prefix panvk_v13 --beta false", +} + +genrule { + name: "panvk_entrypoints.[ch]_impl", + srcs: [ + ":vk_entrypoints_gen_py", + ":vk_xml", + ], + out: [ + "panvk_entrypoints.c", + ], + tools: [ + "vk_entrypoints_gen_gen", + ], + cmd: "python3 $(location vk_entrypoints_gen_gen) --xml $(location registry/vk.xml)" + + "--proto --weak --out-h "$(genDir)/panvk_entrypoints.h" --out-c $(location" + + "panvk_entrypoints.c) --prefix panvk --device-prefix panvk_v6 --device-prefix" + + "panvk_v7 --device-prefix panvk_v9 --device-prefix panvk_v10 --device-prefix" + + "panvk_v12 --device-prefix panvk_v13 --beta false", +} + +genrule { + name: "panvk_tracepoints.[ch]_header", + srcs: [ + ], + out: [ + "panvk_tracepoints.h", + "panvk_tracepoints_perfetto.h", + ], + tools: [ + "panvk_tracepoints_gen", + ], + cmd: "python3 $(location panvk_tracepoints_gen) --import-path" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/util/perf/ --utrace-" + + "hdr $(location panvk_tracepoints.h) --perfetto-hdr $(location" + + "panvk_tracepoints_perfetto.h) --utrace-src "$(genDir)/placeholder.c"", +} + +genrule { + name: "panvk_tracepoints.[ch]_impl", + srcs: [ + ], + out: [ + "panvk_tracepoints.c", + ], + tools: [ + "panvk_tracepoints_gen", + ], + cmd: "python3 $(location panvk_tracepoints_gen) --import-path" + + "/usr/local/google/home/gurchetansingh/meson/temp_mesa/src/util/perf/ --utrace-" + + "hdr "$(genDir)/panvk_tracepoints.h" --perfetto-hdr" + + ""$(genDir)/panvk_tracepoints_perfetto.h" --utrace-src $(location" + + "panvk_tracepoints.c)", +} + +cc_defaults { + name: "panvk_v10_c_flags", + cflags: [ + "-Wno-override-init", + "-Wno-initializer-overrides", + "-DPAN_ARCH=10", + ], +} + +cc_defaults { + name: "panvk_v12_c_flags", + cflags: [ + "-Wno-override-init", + "-Wno-initializer-overrides", + "-DPAN_ARCH=12", + ], +} + +cc_defaults { + name: "panvk_v13_c_flags", + cflags: [ + "-Wno-override-init", + "-Wno-initializer-overrides", + "-DPAN_ARCH=13", + ], +} + +cc_defaults { + name: "panvk_v6_c_flags", + cflags: [ + "-Wno-override-init", + "-Wno-initializer-overrides", + "-DPAN_ARCH=6", + ], +} + +cc_defaults { + name: "panvk_v7_c_flags", + cflags: [ + "-Wno-override-init", + "-Wno-initializer-overrides", + "-DPAN_ARCH=7", + ], +} + +cc_defaults { + name: "vulkan_panfrost_c_flags", + cflags: [ + "-Wno-override-init", + "-Wno-initializer-overrides", + ], +} + +cc_library_static { + name: "panvk_v10", + host_supported: false, + srcs: [ + "panvk_vX_blend.c", + "panvk_vX_buffer_view.c", + "panvk_vX_cmd_fb_preload.c", + "panvk_vX_cmd_desc_state.c", + "panvk_vX_cmd_dispatch.c", + "panvk_vX_cmd_draw.c", + "panvk_vX_cmd_meta.c", + "panvk_vX_cmd_push_constant.c", + "panvk_vX_descriptor_set.c", + "panvk_vX_descriptor_set_layout.c", + "panvk_vX_device.c", + "panvk_vX_physical_device.c", + "panvk_vX_precomp_cache.c", + "panvk_vX_query_pool.c", + "panvk_vX_image_view.c", + "panvk_vX_nir_lower_descriptors.c", + "panvk_vX_sampler.c", + "panvk_vX_shader.c", + "csf/panvk_vX_bind_queue.c", + "csf/panvk_vX_cmd_buffer.c", + "csf/panvk_vX_cmd_dispatch.c", + "csf/panvk_vX_cmd_draw.c", + "csf/panvk_vX_cmd_event.c", + "csf/panvk_vX_cmd_query.c", + "csf/panvk_vX_cmd_precomp.c", + "csf/panvk_vX_event.c", + "csf/panvk_vX_exception_handler.c", + "csf/panvk_vX_gpu_queue.c", + "csf/panvk_vX_instr.c", + "csf/panvk_vX_utrace.c", + ], + generated_headers: [ + "git_sha1.h", + "nir_opcodes.h", + "nir_builder_opcodes.h", + "nir_intrinsics.h", + "nir_intrinsics_indices.h", + "ir_expression_operation.h", + "builtin_types.h", + "common_pack.h", + "v4_pack.h", + "v5_pack.h", + "v6_pack.h", + "v7_pack.h", + "v9_pack.h", + "v10_pack.h", + "v12_pack.h", + "v13_pack.h", + "shader_stats.h", + "u_format_gen.h", + "libpan_shaders_v10.h_header", + "libpan_v10.cpp_header", + ], + generated_sources: [ + "libpan_shaders_v10.h_impl", + "libpan_v10.cpp_impl", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "panvk_v10_c_flags", + ], + static_libs: [ + "libsync", + "mesa_util", + "blake3", + "mesa_util_c11", + ], + shared_libs: [ + "m", + "libzstd", + "libdrm", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_panfrost", + "inc_nir", + "inc_compiler", + ] + +} + +cc_library_static { + name: "panvk_v12", + host_supported: false, + srcs: [ + "panvk_vX_blend.c", + "panvk_vX_buffer_view.c", + "panvk_vX_cmd_fb_preload.c", + "panvk_vX_cmd_desc_state.c", + "panvk_vX_cmd_dispatch.c", + "panvk_vX_cmd_draw.c", + "panvk_vX_cmd_meta.c", + "panvk_vX_cmd_push_constant.c", + "panvk_vX_descriptor_set.c", + "panvk_vX_descriptor_set_layout.c", + "panvk_vX_device.c", + "panvk_vX_physical_device.c", + "panvk_vX_precomp_cache.c", + "panvk_vX_query_pool.c", + "panvk_vX_image_view.c", + "panvk_vX_nir_lower_descriptors.c", + "panvk_vX_sampler.c", + "panvk_vX_shader.c", + "csf/panvk_vX_bind_queue.c", + "csf/panvk_vX_cmd_buffer.c", + "csf/panvk_vX_cmd_dispatch.c", + "csf/panvk_vX_cmd_draw.c", + "csf/panvk_vX_cmd_event.c", + "csf/panvk_vX_cmd_query.c", + "csf/panvk_vX_cmd_precomp.c", + "csf/panvk_vX_event.c", + "csf/panvk_vX_exception_handler.c", + "csf/panvk_vX_gpu_queue.c", + "csf/panvk_vX_instr.c", + "csf/panvk_vX_utrace.c", + ], + generated_headers: [ + "git_sha1.h", + "nir_opcodes.h", + "nir_builder_opcodes.h", + "nir_intrinsics.h", + "nir_intrinsics_indices.h", + "ir_expression_operation.h", + "builtin_types.h", + "common_pack.h", + "v4_pack.h", + "v5_pack.h", + "v6_pack.h", + "v7_pack.h", + "v9_pack.h", + "v10_pack.h", + "v12_pack.h", + "v13_pack.h", + "shader_stats.h", + "u_format_gen.h", + "libpan_shaders_v12.h_header", + "libpan_v12.cpp_header", + ], + generated_sources: [ + "libpan_shaders_v12.h_impl", + "libpan_v12.cpp_impl", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "panvk_v12_c_flags", + ], + static_libs: [ + "libsync", + "mesa_util", + "blake3", + "mesa_util_c11", + ], + shared_libs: [ + "m", + "libzstd", + "libdrm", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_panfrost", + "inc_nir", + "inc_compiler", + ] + +} + +cc_library_static { + name: "panvk_v13", + host_supported: false, + srcs: [ + "panvk_vX_blend.c", + "panvk_vX_buffer_view.c", + "panvk_vX_cmd_fb_preload.c", + "panvk_vX_cmd_desc_state.c", + "panvk_vX_cmd_dispatch.c", + "panvk_vX_cmd_draw.c", + "panvk_vX_cmd_meta.c", + "panvk_vX_cmd_push_constant.c", + "panvk_vX_descriptor_set.c", + "panvk_vX_descriptor_set_layout.c", + "panvk_vX_device.c", + "panvk_vX_physical_device.c", + "panvk_vX_precomp_cache.c", + "panvk_vX_query_pool.c", + "panvk_vX_image_view.c", + "panvk_vX_nir_lower_descriptors.c", + "panvk_vX_sampler.c", + "panvk_vX_shader.c", + "csf/panvk_vX_bind_queue.c", + "csf/panvk_vX_cmd_buffer.c", + "csf/panvk_vX_cmd_dispatch.c", + "csf/panvk_vX_cmd_draw.c", + "csf/panvk_vX_cmd_event.c", + "csf/panvk_vX_cmd_query.c", + "csf/panvk_vX_cmd_precomp.c", + "csf/panvk_vX_event.c", + "csf/panvk_vX_exception_handler.c", + "csf/panvk_vX_gpu_queue.c", + "csf/panvk_vX_instr.c", + "csf/panvk_vX_utrace.c", + ], + generated_headers: [ + "git_sha1.h", + "nir_opcodes.h", + "nir_builder_opcodes.h", + "nir_intrinsics.h", + "nir_intrinsics_indices.h", + "ir_expression_operation.h", + "builtin_types.h", + "common_pack.h", + "v4_pack.h", + "v5_pack.h", + "v6_pack.h", + "v7_pack.h", + "v9_pack.h", + "v10_pack.h", + "v12_pack.h", + "v13_pack.h", + "shader_stats.h", + "u_format_gen.h", + "libpan_shaders_v13.h_header", + "libpan_v13.cpp_header", + ], + generated_sources: [ + "libpan_shaders_v13.h_impl", + "libpan_v13.cpp_impl", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "panvk_v13_c_flags", + ], + static_libs: [ + "libsync", + "mesa_util", + "blake3", + "mesa_util_c11", + ], + shared_libs: [ + "m", + "libzstd", + "libdrm", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_panfrost", + "inc_nir", + "inc_compiler", + ] + +} + +cc_library_static { + name: "panvk_v6", + host_supported: false, + srcs: [ + "panvk_vX_blend.c", + "panvk_vX_buffer_view.c", + "panvk_vX_cmd_fb_preload.c", + "panvk_vX_cmd_desc_state.c", + "panvk_vX_cmd_dispatch.c", + "panvk_vX_cmd_draw.c", + "panvk_vX_cmd_meta.c", + "panvk_vX_cmd_push_constant.c", + "panvk_vX_descriptor_set.c", + "panvk_vX_descriptor_set_layout.c", + "panvk_vX_device.c", + "panvk_vX_physical_device.c", + "panvk_vX_precomp_cache.c", + "panvk_vX_query_pool.c", + "panvk_vX_image_view.c", + "panvk_vX_nir_lower_descriptors.c", + "panvk_vX_sampler.c", + "panvk_vX_shader.c", + "bifrost/panvk_vX_meta_desc_copy.c", + "jm/panvk_vX_bind_queue.c", + "jm/panvk_vX_cmd_buffer.c", + "jm/panvk_vX_cmd_dispatch.c", + "jm/panvk_vX_cmd_draw.c", + "jm/panvk_vX_cmd_event.c", + "jm/panvk_vX_cmd_query.c", + "jm/panvk_vX_cmd_precomp.c", + "jm/panvk_vX_event.c", + "jm/panvk_vX_gpu_queue.c", + ], + generated_headers: [ + "git_sha1.h", + "nir_opcodes.h", + "nir_builder_opcodes.h", + "nir_intrinsics.h", + "nir_intrinsics_indices.h", + "ir_expression_operation.h", + "builtin_types.h", + "common_pack.h", + "v4_pack.h", + "v5_pack.h", + "v6_pack.h", + "v7_pack.h", + "v9_pack.h", + "v10_pack.h", + "v12_pack.h", + "v13_pack.h", + "shader_stats.h", + "u_format_gen.h", + "libpan_shaders_v6.h_header", + "libpan_v6.cpp_header", + ], + generated_sources: [ + "libpan_shaders_v6.h_impl", + "libpan_v6.cpp_impl", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "panvk_v6_c_flags", + ], + static_libs: [ + "libsync", + "mesa_util", + "blake3", + "mesa_util_c11", + ], + shared_libs: [ + "m", + "libzstd", + "libdrm", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_panfrost", + "inc_nir", + "inc_compiler", + ] + +} + +cc_library_static { + name: "panvk_v7", + host_supported: false, + srcs: [ + "panvk_vX_blend.c", + "panvk_vX_buffer_view.c", + "panvk_vX_cmd_fb_preload.c", + "panvk_vX_cmd_desc_state.c", + "panvk_vX_cmd_dispatch.c", + "panvk_vX_cmd_draw.c", + "panvk_vX_cmd_meta.c", + "panvk_vX_cmd_push_constant.c", + "panvk_vX_descriptor_set.c", + "panvk_vX_descriptor_set_layout.c", + "panvk_vX_device.c", + "panvk_vX_physical_device.c", + "panvk_vX_precomp_cache.c", + "panvk_vX_query_pool.c", + "panvk_vX_image_view.c", + "panvk_vX_nir_lower_descriptors.c", + "panvk_vX_sampler.c", + "panvk_vX_shader.c", + "bifrost/panvk_vX_meta_desc_copy.c", + "jm/panvk_vX_bind_queue.c", + "jm/panvk_vX_cmd_buffer.c", + "jm/panvk_vX_cmd_dispatch.c", + "jm/panvk_vX_cmd_draw.c", + "jm/panvk_vX_cmd_event.c", + "jm/panvk_vX_cmd_query.c", + "jm/panvk_vX_cmd_precomp.c", + "jm/panvk_vX_event.c", + "jm/panvk_vX_gpu_queue.c", + ], + generated_headers: [ + "git_sha1.h", + "nir_opcodes.h", + "nir_builder_opcodes.h", + "nir_intrinsics.h", + "nir_intrinsics_indices.h", + "ir_expression_operation.h", + "builtin_types.h", + "common_pack.h", + "v4_pack.h", + "v5_pack.h", + "v6_pack.h", + "v7_pack.h", + "v9_pack.h", + "v10_pack.h", + "v12_pack.h", + "v13_pack.h", + "shader_stats.h", + "u_format_gen.h", + "libpan_shaders_v7.h_header", + "libpan_v7.cpp_header", + ], + generated_sources: [ + "libpan_shaders_v7.h_impl", + "libpan_v7.cpp_impl", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "panvk_v7_c_flags", + ], + static_libs: [ + "libsync", + "mesa_util", + "blake3", + "mesa_util_c11", + ], + shared_libs: [ + "m", + "libzstd", + "libdrm", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_panfrost", + "inc_nir", + "inc_compiler", + ] + +} + +cc_library_shared { + name: "vulkan_panfrost", + host_supported: false, + srcs: [ + "panvk_buffer.c", + "panvk_cmd_pool.c", + "panvk_device.c", + "panvk_device_memory.c", + "panvk_host_copy.c", + "panvk_image.c", + "panvk_instance.c", + "panvk_mempool.c", + "panvk_physical_device.c", + "panvk_priv_bo.c", + "panvk_utrace.c", + "panvk_wsi.c", + "panvk_android.c", + ], + generated_headers: [ + "git_sha1.h", + "panvk_entrypoints.[ch]_header", + "panvk_tracepoints.[ch]_header", + "nir_opcodes.h", + "nir_builder_opcodes.h", + "nir_intrinsics.h", + "nir_intrinsics_indices.h", + "ir_expression_operation.h", + "builtin_types.h", + "shader_stats.h", + "u_format_gen.h", + "common_pack.h", + "v4_pack.h", + "v5_pack.h", + "v6_pack.h", + "v7_pack.h", + "v9_pack.h", + "v10_pack.h", + "v12_pack.h", + "v13_pack.h", + ], + generated_sources: [ + "panvk_entrypoints.[ch]_impl", + "panvk_tracepoints.[ch]_impl", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "vulkan_panfrost_c_flags", + ], + static_libs: [ + "libsync", + "panfrost_shared", + "panfrost_midgard", + "panfrost_bifrost", + "panfrost_decode", + "panfrost_lib", + "panfrost_util", + "nir", + "mesa_util", + "blake3", + "mesa_util_c11", + "compiler", + "vulkan_util", + ], + whole_static_libs: [ + "panvk_v6", + "panvk_v7", + "panvk_v10", + "panvk_v12", + "panvk_v13", + "vulkan_lite_runtime", + "vulkan_runtime", + "vulkan_instance", + "vulkan_wsi", + ], + shared_libs: [ + "elf", + "libdrm", + "m", + "libzstd", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_panfrost", + "inc_nir", + "inc_compiler", + ] + +} + diff --git a/output-dir/src/util/Android.bp b/output-dir/src/util/Android.bp new file mode 100644 index 000000000..9132de7c3 --- /dev/null +++ b/output-dir/src/util/Android.bp @@ -0,0 +1,293 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +python_binary_host { + name: "driconf_static_gen", + main: "driconf_static.py", + srcs: [ + "driconf_static.py", + ], + libs: [ + "mako", + ], +} + +python_binary_host { + name: "format_srgb_gen", + main: "format_srgb.py", + srcs: [ + "format_srgb.py", + ], + libs: [ + "mako", + ], +} + +python_binary_host { + name: "process_shader_stats_gen", + main: "process_shader_stats.py", + srcs: [ + "process_shader_stats.py", + ], + libs: [ + "mako", + ], +} + +genrule { + name: "driconf_static.h", + srcs: [ + "00-mesa-defaults.conf", + ], + out: [ + "driconf_static.h", + ], + tools: [ + "driconf_static_gen", + ], + cmd: "python3 $(location driconf_static_gen) $(location 00-mesa-defaults.conf)" + + "$(location driconf_static.h)", +} + +genrule { + name: "format_srgb", + srcs: [ + ], + out: [ + "format_srgb.c", + ], + tools: [ + "format_srgb_gen", + ], + cmd: "python3 $(location format_srgb_gen) &> $(location format_srgb.c)", +} + +genrule { + name: "shader_stats.h", + srcs: [ + "shader_stats.rnc", + "shader_stats.xml", + ], + out: [ + "shader_stats.h", + ], + tools: [ + "process_shader_stats_gen", + ], + cmd: "python3 $(location process_shader_stats_gen) $(location shader_stats.rnc)" + + "$(location shader_stats.xml) &> $(location shader_stats.h)", +} + +cc_defaults { + name: "xmlconfig_c_flags", + cflags: [ + "-Werror=pointer-arith", + "-Werror=vla", + "-Werror=gnu-empty-initializer", + "-DWITH_XMLCONFIG=0", + "-DSYSCONFDIR="/usr/local/etc"", + "-DDATADIR="/usr/local/share"", + ], +} + +cc_library_static { + name: "mesa_util", + host_supported: false, + srcs: [ + "anon_file.c", + "bitscan.c", + "blob.c", + "build_id.c", + "cnd_monotonic.c", + "compress.c", + "thread_sched.c", + "crc32.c", + "dag.c", + "disk_cache.c", + "disk_cache_os.c", + "double.c", + "fast_idiv_by_const.c", + "float8.c", + "fossilize_db.c", + "futex.c", + "half_float.c", + "hash_table.c", + "helpers.c", + "u_idalloc.c", + "log.c", + "lut.c", + "memstream.c", + "mesa-sha1.c", + "mesa-blake3.c", + "os_time.c", + "os_file.c", + "os_file_notify.c", + "os_memory_fd.c", + "os_misc.c", + "os_socket.c", + "pb_slab.c", + "perf/u_trace.c", + "u_process.c", + "u_qsort.cpp", + "rwlock.c", + "sha1/sha1.c", + "ralloc.c", + "rand_xor.c", + "range_minimum_query.c", + "rb_tree.c", + "register_allocate.c", + "rgtc.c", + "set.c", + "simple_mtx.c", + "slab.c", + "softfloat.c", + "sparse_array.c", + "string_buffer.c", + "strndup.c", + "strtod.c", + "texcompress_astc_luts.cpp", + "texcompress_astc_luts_wrap.cpp", + "u_atomic.c", + "u_call_once.c", + "u_dl.c", + "u_dynarray.c", + "u_hash_table.c", + "u_queue.c", + "u_range_remap.c", + "u_string.c", + "u_thread.c", + "u_vector.c", + "u_math.c", + "u_mm.c", + "u_debug.c", + "u_debug_memory.c", + "u_cpu_detect.c", + "u_printf.c", + "u_worklist.c", + "vl_zscan_data.c", + "vma.c", + "mesa_cache_db.c", + "mesa_cache_db_multipart.c", + "u_format.c", + "u_format_bptc.c", + "u_format_etc.c", + "u_format_fxt1.c", + "u_format_latc.c", + "u_format_other.c", + "u_format_rgtc.c", + "u_format_s3tc.c", + "u_format_tests.c", + "u_format_unpack_neon.c", + "u_format_yuv.c", + "u_format_zs.c", + "u_sync_provider.c", + "u_debug_stack_android.cpp", + ], + generated_headers: [ + "shader_stats.h", + "u_format_gen.h", + "u_format_pack.h", + ], + generated_sources: [ + "u_format_table.c", + "format_srgb", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "_trial_msvc", + ], + static_libs: [ + "libsync", + "mesa_util_simd", + "blake3", + "mesa_util_c11", + ], + shared_libs: [ + "m", + "libzstd", + "libdrm", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + +} + +cc_library_static { + name: "mesa_util_simd", + host_supported: false, + srcs: [ + "streaming-load-memcpy.c", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "_trial_msvc", + ], + +} + +cc_library_static { + name: "parson", + host_supported: false, + srcs: [ + "parson.c", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + ], + +} + +cc_library_static { + name: "xmlconfig", + host_supported: false, + srcs: [ + "xmlconfig.c", + ], + generated_headers: [ + "driconf_static.h", + "shader_stats.h", + "u_format_gen.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "xmlconfig_c_flags", + ], + static_libs: [ + "libsync", + "mesa_util", + "blake3", + "mesa_util_c11", + ], + shared_libs: [ + "m", + "libzstd", + "libdrm", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + +} + diff --git a/output-dir/src/util/blake3/Android.bp b/output-dir/src/util/blake3/Android.bp new file mode 100644 index 000000000..8fa744b78 --- /dev/null +++ b/output-dir/src/util/blake3/Android.bp @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +cc_defaults { + name: "blake3_c_flags", + cflags: [ + "-Wno-error", + ], +} + +cc_library_static { + name: "blake3", + host_supported: false, + srcs: [ + "blake3.c", + "blake3_dispatch.c", + "blake3_portable.c", + "blake3_neon.c", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "blake3_c_flags", + ], + +} + diff --git a/output-dir/src/util/format/Android.bp b/output-dir/src/util/format/Android.bp new file mode 100644 index 000000000..622a96e0d --- /dev/null +++ b/output-dir/src/util/format/Android.bp @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +python_binary_host { + name: "u_format_table_gen", + main: "u_format_table.py", + srcs: [ + "u_format_pack.py", + "u_format_parse.py", + "u_format_table.py", + ], + libs: [ + "mako", + ], +} + +genrule { + name: "u_format_gen.h", + srcs: [ + "u_format.yaml", + ], + out: [ + "u_format_gen.h", + ], + tools: [ + "u_format_table_gen", + ], + cmd: "python3 $(location u_format_table_gen) $(location u_format.yaml) --enums &>" + + "$(location u_format_gen.h)", +} + +genrule { + name: "u_format_pack.h", + srcs: [ + "u_format.yaml", + ], + out: [ + "u_format_pack.h", + ], + tools: [ + "u_format_table_gen", + ], + cmd: "python3 $(location u_format_table_gen) $(location u_format.yaml) --header &>" + + "$(location u_format_pack.h)", +} + +genrule { + name: "u_format_table.c", + srcs: [ + "u_format.yaml", + ], + out: [ + "u_format_table.c", + ], + tools: [ + "u_format_table_gen", + ], + cmd: "python3 $(location u_format_table_gen) $(location u_format.yaml) &> $(location" + + "u_format_table.c)", +} + diff --git a/output-dir/src/util/rust/Android.bp b/output-dir/src/util/rust/Android.bp new file mode 100644 index 000000000..2da9ef07d --- /dev/null +++ b/output-dir/src/util/rust/Android.bp @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +rust_library { + name: "mesa3d_util", + host_supported: false, + crate_name: "mesa3d_util", + cargo_env_compat: true, + cargo_pkg_version: "0.1.0", + crate_root: "lib.rs", + srcs: [ + "lib.rs", + ], + edition: "2021", + rustlibs: [ + "libthiserror", + "libzerocopy", + ], +} diff --git a/output-dir/src/util/u_gralloc/Android.bp b/output-dir/src/util/u_gralloc/Android.bp new file mode 100644 index 000000000..c7c70adcb --- /dev/null +++ b/output-dir/src/util/u_gralloc/Android.bp @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +cc_defaults { + name: "_mesa_u_gralloc_c_flags", + cflags: [ + "-DHAS_FREEDRENO", + ], +} + +cc_library_static { + name: "_mesa_u_gralloc", + host_supported: false, + srcs: [ + "u_gralloc.c", + "u_gralloc_internal.c", + "u_gralloc_fallback.c", + "u_gralloc_cros_api.c", + "u_gralloc_libdrm.c", + "u_gralloc_qcom.c", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "_mesa_u_gralloc_c_flags", + ], + static_libs: [ + "libsync", + ], + shared_libs: [ + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + +} + diff --git a/output-dir/src/virtio/protocols/Android.bp b/output-dir/src/virtio/protocols/Android.bp new file mode 100644 index 000000000..d2300ecb0 --- /dev/null +++ b/output-dir/src/virtio/protocols/Android.bp @@ -0,0 +1,27 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +rust_library { + name: "mesa3d_protocols", + host_supported: false, + crate_name: "mesa3d_protocols", + cargo_env_compat: true, + cargo_pkg_version: "0.1.0", + crate_root: "lib.rs", + srcs: [ + "lib.rs", + ], + edition: "2021", + rustlibs: [ + "libthiserror", + "libzerocopy", + "mesa3d_util", + ], +} diff --git a/output-dir/src/virtio/virtgpu_kumquat/Android.bp b/output-dir/src/virtio/virtgpu_kumquat/Android.bp new file mode 100644 index 000000000..d792121c4 --- /dev/null +++ b/output-dir/src/virtio/virtgpu_kumquat/Android.bp @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +rust_library { + name: "virtgpu_kumquat", + host_supported: false, + crate_name: "virtgpu_kumquat", + cargo_env_compat: true, + cargo_pkg_version: "0.1.0", + crate_root: "lib.rs", + srcs: [ + "lib.rs", + ], + edition: "2021", + rustlibs: [ + "libthiserror", + "libzerocopy", + "mesa3d_protocols", + "mesa3d_util", + ], +} diff --git a/output-dir/src/virtio/virtgpu_kumquat_ffi/Android.bp b/output-dir/src/virtio/virtgpu_kumquat_ffi/Android.bp new file mode 100644 index 000000000..4414ee078 --- /dev/null +++ b/output-dir/src/virtio/virtgpu_kumquat_ffi/Android.bp @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +cc_library_headers { + name: "inc_virtgpu_kumquat_ffi", + export_include_dirs: [ + "include", + ], +} + +rust_ffi_static { + name: "virtgpu_kumquat_ffi", + host_supported: false, + crate_name: "virtgpu_kumquat_ffi", + cargo_env_compat: true, + cargo_pkg_version: "0.1.0", + crate_root: "lib.rs", + srcs: [ + "lib.rs", + ], + edition: "2021", + rustlibs: [ + "libthiserror", + "libzerocopy", + "mesa3d_protocols", + "mesa3d_util", + "virtgpu_kumquat", + ], +} diff --git a/output-dir/src/vulkan/Android.bp b/output-dir/src/vulkan/Android.bp new file mode 100644 index 000000000..a96d9009f --- /dev/null +++ b/output-dir/src/vulkan/Android.bp @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +filegroup { + name: "vk_xml", + srcs: ["registry/vk.xml"], +} + +python_binary_host { + name: "gen_vs_module_defs_gen", + main: "gen_vs_module_defs.py", + srcs: [ + "gen_vs_module_defs.py", + ], + libs: [ + "mako", + ], +} + +genrule { + name: "vulkan_api.def", + srcs: [ + "vulkan_api.def.in", + ], + out: [ + "vulkan_api.def", + ], + tools: [ + "gen_vs_module_defs_gen", + ], + cmd: "python3 $(location gen_vs_module_defs_gen) --in_file $(location" + + "vulkan_api.def.in) --out_file $(location vulkan_api.def) --compiler_abi gcc" + + "--compiler_id clang --cpu_family aarch64", +} + +cc_library_headers { + name: "inc_vulkan_util", + export_include_dirs: [ + "util", + ], +} + diff --git a/output-dir/src/vulkan/runtime/Android.bp b/output-dir/src/vulkan/runtime/Android.bp new file mode 100644 index 000000000..d48fe6b71 --- /dev/null +++ b/output-dir/src/vulkan/runtime/Android.bp @@ -0,0 +1,702 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +python_binary_host { + name: "vk_cmd_queue_gen_gen", + main: "vk_cmd_queue_gen.py", + srcs: [ + "vk_cmd_queue_gen.py", + "vk_entrypoints.py", + "vk_extensions.py", + ], + libs: [ + "mako", + ], +} + +python_binary_host { + name: "vk_dispatch_trampolines_gen_gen", + main: "vk_dispatch_trampolines_gen.py", + srcs: [ + "vk_dispatch_trampolines_gen.py", + "vk_entrypoints.py", + "vk_extensions.py", + ], + libs: [ + "mako", + ], +} + +python_binary_host { + name: "vk_entrypoints_gen_gen", + main: "vk_entrypoints_gen.py", + srcs: [ + "vk_entrypoints.py", + "vk_entrypoints_gen.py", + "vk_extensions.py", + ], + libs: [ + "mako", + ], +} + +python_binary_host { + name: "vk_format_info_gen_gen", + main: "vk_format_info_gen.py", + srcs: [ + "vk_format_info_gen.py", + ], + libs: [ + "mako", + ], +} + +python_binary_host { + name: "vk_physical_device_features_gen_gen", + main: "vk_physical_device_features_gen.py", + srcs: [ + "vk_extensions.py", + "vk_physical_device_features_gen.py", + ], + libs: [ + "mako", + ], +} + +python_binary_host { + name: "vk_physical_device_properties_gen_gen", + main: "vk_physical_device_properties_gen.py", + srcs: [ + "vk_extensions.py", + "vk_physical_device_properties_gen.py", + ], + libs: [ + "mako", + ], +} + +python_binary_host { + name: "vk_physical_device_spirv_caps_gen_gen", + main: "vk_physical_device_spirv_caps_gen.py", + srcs: [ + "vk_extensions.py", + "vk_physical_device_features_gen.py", + "vk_physical_device_spirv_caps_gen.py", + ], + libs: [ + "mako", + ], +} + +python_binary_host { + name: "vk_synchronization_helpers_gen_gen", + main: "vk_synchronization_helpers_gen.py", + srcs: [ + "vk_extensions.py", + "vk_synchronization_helpers_gen.py", + ], + libs: [ + "mako", + ], +} + +genrule { + name: "astc_spv.h", + srcs: [ + ":astc_decoder_glsl", + ], + out: [ + "astc_spv.h", + ], + tools: [ + ], + cmd: "glslangValidator -V -S comp -x -o $(location astc_spv.h) $(location" + + "glsl/astc_decoder.glsl) --quiet --depfile @DEPFILE@", +} + +genrule { + name: "vk_cmd_enqueue_entrypoints_header", + srcs: [ + ":vk_entrypoints_gen_py", + ":vk_xml", + ], + out: [ + "vk_cmd_enqueue_entrypoints.h", + ], + tools: [ + "vk_entrypoints_gen_gen", + ], + cmd: "python3 $(location vk_entrypoints_gen_gen) --xml $(location registry/vk.xml)" + + "--proto --weak --out-h $(location vk_cmd_enqueue_entrypoints.h) --out-c" + + ""$(genDir)/placeholder.c" --prefix vk_cmd_enqueue --prefix" + + "vk_cmd_enqueue_unless_primary --beta false", +} + +genrule { + name: "vk_cmd_enqueue_entrypoints_impl", + srcs: [ + ":vk_entrypoints_gen_py", + ":vk_xml", + ], + out: [ + "vk_cmd_enqueue_entrypoints.c", + ], + tools: [ + "vk_entrypoints_gen_gen", + ], + cmd: "python3 $(location vk_entrypoints_gen_gen) --xml $(location registry/vk.xml)" + + "--proto --weak --out-h "$(genDir)/vk_cmd_enqueue_entrypoints.h" --out-c" + + "$(location vk_cmd_enqueue_entrypoints.c) --prefix vk_cmd_enqueue --prefix" + + "vk_cmd_enqueue_unless_primary --beta false", +} + +genrule { + name: "vk_cmd_queue_header", + srcs: [ + ":vk_cmd_queue_gen_py", + ":vk_xml", + ], + out: [ + "vk_cmd_queue.h", + ], + tools: [ + "vk_cmd_queue_gen_gen", + ], + cmd: "python3 $(location vk_cmd_queue_gen_gen) --xml $(location registry/vk.xml)" + + "--out-c "$(genDir)/placeholder.c" --out-h $(location vk_cmd_queue.h) --beta" + + "false", +} + +genrule { + name: "vk_cmd_queue_impl", + srcs: [ + ":vk_cmd_queue_gen_py", + ":vk_xml", + ], + out: [ + "vk_cmd_queue.c", + ], + tools: [ + "vk_cmd_queue_gen_gen", + ], + cmd: "python3 $(location vk_cmd_queue_gen_gen) --xml $(location registry/vk.xml)" + + "--out-c $(location vk_cmd_queue.c) --out-h "$(genDir)/vk_cmd_queue.h" --beta" + + "false", +} + +genrule { + name: "vk_common_entrypoints_header", + srcs: [ + ":vk_entrypoints_gen_py", + ":vk_xml", + ], + out: [ + "vk_common_entrypoints.h", + ], + tools: [ + "vk_entrypoints_gen_gen", + ], + cmd: "python3 $(location vk_entrypoints_gen_gen) --xml $(location registry/vk.xml)" + + "--proto --weak --out-h $(location vk_common_entrypoints.h) --out-c" + + ""$(genDir)/placeholder.c" --prefix vk_common --beta false", +} + +genrule { + name: "vk_common_entrypoints_impl", + srcs: [ + ":vk_entrypoints_gen_py", + ":vk_xml", + ], + out: [ + "vk_common_entrypoints.c", + ], + tools: [ + "vk_entrypoints_gen_gen", + ], + cmd: "python3 $(location vk_entrypoints_gen_gen) --xml $(location registry/vk.xml)" + + "--proto --weak --out-h "$(genDir)/vk_common_entrypoints.h" --out-c $(location" + + "vk_common_entrypoints.c) --prefix vk_common --beta false", +} + +genrule { + name: "vk_dispatch_trampolines_header", + srcs: [ + ":vk_dispatch_trampolines_gen_py", + ":vk_xml", + ], + out: [ + "vk_dispatch_trampolines.h", + ], + tools: [ + "vk_dispatch_trampolines_gen_gen", + ], + cmd: "python3 $(location vk_dispatch_trampolines_gen_gen) --xml $(location" + + "registry/vk.xml) --out-c "$(genDir)/placeholder.c" --out-h $(location" + + "vk_dispatch_trampolines.h) --beta false", +} + +genrule { + name: "vk_dispatch_trampolines_impl", + srcs: [ + ":vk_dispatch_trampolines_gen_py", + ":vk_xml", + ], + out: [ + "vk_dispatch_trampolines.c", + ], + tools: [ + "vk_dispatch_trampolines_gen_gen", + ], + cmd: "python3 $(location vk_dispatch_trampolines_gen_gen) --xml $(location" + + "registry/vk.xml) --out-c $(location vk_dispatch_trampolines.c) --out-h" + + ""$(genDir)/vk_dispatch_trampolines.h" --beta false", +} + +genrule { + name: "vk_format_info_header", + srcs: [ + "registry/vk.xml", + ":vk_xml", + ], + out: [ + "vk_format_info.h", + ], + tools: [ + "vk_format_info_gen_gen", + ], + cmd: "python3 $(location vk_format_info_gen_gen) --xml $(location registry/vk.xml)" + + "--out-c "$(genDir)/placeholder.c" --out-h $(location vk_format_info.h)", +} + +genrule { + name: "vk_format_info_impl", + srcs: [ + "registry/vk.xml", + ":vk_xml", + ], + out: [ + "vk_format_info.c", + ], + tools: [ + "vk_format_info_gen_gen", + ], + cmd: "python3 $(location vk_format_info_gen_gen) --xml $(location registry/vk.xml)" + + "--out-c $(location vk_format_info.c) --out-h "$(genDir)/vk_format_info.h"", +} + +genrule { + name: "vk_physical_device_features_header", + srcs: [ + ":vk_physical_device_features_gen_py", + ":vk_xml", + ], + out: [ + "vk_physical_device_features.h", + ], + tools: [ + "vk_physical_device_features_gen_gen", + ], + cmd: "python3 $(location vk_physical_device_features_gen_gen) --xml $(location" + + "registry/vk.xml) --out-c "$(genDir)/placeholder.c" --out-h $(location" + + "vk_physical_device_features.h) --beta false", +} + +genrule { + name: "vk_physical_device_features_impl", + srcs: [ + ":vk_physical_device_features_gen_py", + ":vk_xml", + ], + out: [ + "vk_physical_device_features.c", + ], + tools: [ + "vk_physical_device_features_gen_gen", + ], + cmd: "python3 $(location vk_physical_device_features_gen_gen) --xml $(location" + + "registry/vk.xml) --out-c $(location vk_physical_device_features.c) --out-h" + + ""$(genDir)/vk_physical_device_features.h" --beta false", +} + +genrule { + name: "vk_physical_device_properties_header", + srcs: [ + ":vk_physical_device_properties_gen_py", + ":vk_xml", + ], + out: [ + "vk_physical_device_properties.h", + ], + tools: [ + "vk_physical_device_properties_gen_gen", + ], + cmd: "python3 $(location vk_physical_device_properties_gen_gen) --xml $(location" + + "registry/vk.xml) --out-c "$(genDir)/placeholder.c" --out-h $(location" + + "vk_physical_device_properties.h) --beta false", +} + +genrule { + name: "vk_physical_device_properties_impl", + srcs: [ + ":vk_physical_device_properties_gen_py", + ":vk_xml", + ], + out: [ + "vk_physical_device_properties.c", + ], + tools: [ + "vk_physical_device_properties_gen_gen", + ], + cmd: "python3 $(location vk_physical_device_properties_gen_gen) --xml $(location" + + "registry/vk.xml) --out-c $(location vk_physical_device_properties.c) --out-h" + + ""$(genDir)/vk_physical_device_properties.h" --beta false", +} + +genrule { + name: "vk_physical_device_spirv_caps", + srcs: [ + ":vk_physical_device_spirv_caps_gen_py", + ":vk_xml", + ], + out: [ + "vk_physical_device_spirv_caps.c", + ], + tools: [ + "vk_physical_device_spirv_caps_gen_gen", + ], + cmd: "python3 $(location vk_physical_device_spirv_caps_gen_gen) --xml $(location" + + "registry/vk.xml) --out-c $(location vk_physical_device_spirv_caps.c) --beta" + + "false", +} + +genrule { + name: "vk_synchronization_helpers", + srcs: [ + ":vk_synchronization_helpers_gen_py", + ":vk_xml", + ], + out: [ + "vk_synchronization_helpers.c", + ], + tools: [ + "vk_synchronization_helpers_gen_gen", + ], + cmd: "python3 $(location vk_synchronization_helpers_gen_gen) --xml $(location" + + "registry/vk.xml) --out-c $(location vk_synchronization_helpers.c) --beta false", +} + +cc_defaults { + name: "vulkan_instance_c_flags", + cflags: [ + "-DVK_LITE_RUNTIME_INSTANCE=0", + "-Werror=pointer-arith", + "-Werror=vla", + "-Werror=gnu-empty-initializer", + ], +} + +cc_defaults { + name: "vulkan_lite_instance_c_flags", + cflags: [ + "-DVK_LITE_RUNTIME_INSTANCE=1", + "-Werror=pointer-arith", + "-Werror=vla", + "-Werror=gnu-empty-initializer", + ], +} + +cc_library_static { + name: "vulkan_instance", + host_supported: false, + srcs: [ + "vk_instance.c", + ], + generated_headers: [ + "shader_stats.h", + "u_format_gen.h", + "nir_opcodes.h", + "nir_builder_opcodes.h", + "nir_intrinsics.h", + "nir_intrinsics_indices.h", + "ir_expression_operation.h", + "builtin_types.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "vulkan_instance_c_flags", + ], + static_libs: [ + "libsync", + "mesa_util", + "blake3", + "mesa_util_c11", + "vulkan_util", + "_mesa_u_gralloc", + "nir", + "compiler", + "vtn", + ], + shared_libs: [ + "m", + "libzstd", + "libdrm", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_nir", + "inc_compiler", + ] + +} + +cc_library_static { + name: "vulkan_lite_instance", + host_supported: false, + srcs: [ + "vk_instance.c", + ], + generated_headers: [ + "shader_stats.h", + "u_format_gen.h", + "nir_opcodes.h", + "nir_builder_opcodes.h", + "nir_intrinsics.h", + "nir_intrinsics_indices.h", + "ir_expression_operation.h", + "builtin_types.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "vulkan_lite_instance_c_flags", + ], + static_libs: [ + "libsync", + "mesa_util", + "blake3", + "mesa_util_c11", + "vulkan_util", + "_mesa_u_gralloc", + ], + shared_libs: [ + "m", + "libzstd", + "libdrm", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_nir", + "inc_compiler", + ] + +} + +cc_library_static { + name: "vulkan_lite_runtime", + host_supported: false, + srcs: [ + "rmv/vk_rmv_common.c", + "rmv/vk_rmv_exporter.c", + "vk_blend.c", + "vk_buffer.c", + "vk_buffer_view.c", + "vk_cmd_copy.c", + "vk_cmd_enqueue.c", + "vk_command_buffer.c", + "vk_command_pool.c", + "vk_debug_report.c", + "vk_debug_utils.c", + "vk_deferred_operation.c", + "vk_descriptor_set_layout.c", + "vk_descriptors.c", + "vk_descriptor_update_template.c", + "vk_device.c", + "vk_device_generated_commands.c", + "vk_device_memory.c", + "vk_fence.c", + "vk_framebuffer.c", + "vk_graphics_state.c", + "vk_image.c", + "vk_log.c", + "vk_meta_object_list.c", + "vk_object.c", + "vk_physical_device.c", + "vk_pipeline_layout.c", + "vk_query_pool.c", + "vk_queue.c", + "vk_render_pass.c", + "vk_sampler.c", + "vk_semaphore.c", + "vk_standard_sample_locations.c", + "vk_sync.c", + "vk_sync_binary.c", + "vk_sync_dummy.c", + "vk_sync_timeline.c", + "vk_synchronization.c", + "vk_video.c", + "vk_ycbcr_conversion.c", + "vk_drm_syncobj.c", + "vk_android.c", + ], + generated_headers: [ + "vk_cmd_enqueue_entrypoints_header", + "vk_cmd_queue_header", + "vk_common_entrypoints_header", + "vk_dispatch_trampolines_header", + "vk_format_info_header", + "vk_physical_device_features_header", + "vk_physical_device_properties_header", + "shader_stats.h", + "u_format_gen.h", + "nir_opcodes.h", + "nir_builder_opcodes.h", + "nir_intrinsics.h", + "nir_intrinsics_indices.h", + "ir_expression_operation.h", + "builtin_types.h", + ], + generated_sources: [ + "vk_cmd_enqueue_entrypoints_impl", + "vk_cmd_queue_impl", + "vk_common_entrypoints_impl", + "vk_dispatch_trampolines_impl", + "vk_format_info_impl", + "vk_physical_device_features_impl", + "vk_physical_device_properties_impl", + "vk_physical_device_spirv_caps", + "vk_synchronization_helpers", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "_trial_msvc", + ], + static_libs: [ + "libsync", + "mesa_util", + "blake3", + "mesa_util_c11", + "vulkan_util", + "_mesa_u_gralloc", + ], + shared_libs: [ + "m", + "libzstd", + "libdrm", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_nir", + "inc_compiler", + ] + +} + +cc_library_static { + name: "vulkan_runtime", + host_supported: false, + srcs: [ + "vk_meta.c", + "vk_meta_blit_resolve.c", + "vk_meta_clear.c", + "vk_meta_copy_fill_update.c", + "vk_meta_draw_rects.c", + "vk_nir.c", + "vk_nir_convert_ycbcr.c", + "vk_pipeline.c", + "vk_pipeline_cache.c", + "vk_shader.c", + "vk_shader_module.c", + "vk_texcompress_etc2.c", + "common/vk/barrier.c", + "common/util.c", + "radix_sort_u64.c", + "radix_sort_vk.c", + "vk_acceleration_structure.c", + "vk_texcompress_astc.c", + ], + generated_headers: [ + "init.comp.spv.h", + "fill.comp.spv.h", + "histogram.comp.spv.h", + "prefix.comp.spv.h", + "scatter_0_even.comp.spv.h", + "scatter_0_odd.comp.spv.h", + "scatter_1_even.comp.spv.h", + "scatter_1_odd.comp.spv.h", + "lbvh_generate_ir.spv.h", + "lbvh_main.spv.h", + "leaf.spv.h", + "morton.spv.h", + "ploc_internal.spv.h", + "astc_spv.h", + "shader_stats.h", + "u_format_gen.h", + "nir_opcodes.h", + "nir_builder_opcodes.h", + "nir_intrinsics.h", + "nir_intrinsics_indices.h", + "ir_expression_operation.h", + "builtin_types.h", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "_trial_msvc", + ], + static_libs: [ + "libsync", + "mesa_util", + "blake3", + "mesa_util_c11", + "vulkan_util", + "_mesa_u_gralloc", + "nir", + "compiler", + "vtn", + ], + shared_libs: [ + "m", + "libzstd", + "libdrm", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_nir", + "inc_compiler", + ] + +} + diff --git a/output-dir/src/vulkan/runtime/bvh/Android.bp b/output-dir/src/vulkan/runtime/bvh/Android.bp new file mode 100644 index 000000000..7b85635c4 --- /dev/null +++ b/output-dir/src/vulkan/runtime/bvh/Android.bp @@ -0,0 +1,160 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +genrule { + name: "lbvh_generate_ir.spv.h", + srcs: [ + "lbvh_generate_ir.comp", + ], + out: [ + "lbvh_generate_ir.spv.h", + ], + tools: [ + ], + cmd: "glslangValidator -V" + + "-I/usr/local/google/home/gurchetansingh/meson/temp_mesa//src/vulkan/runtime/bvh" + + "--target-env spirv1.5 -x -o $(location lbvh_generate_ir.spv.h) $(location" + + "lbvh_generate_ir.comp) --quiet -P#extension GL_GOOGLE_include_directive :" + + "require -P#extension GL_EXT_shader_explicit_arithmetic_types_int8 : require" + + "-P#extension GL_EXT_shader_explicit_arithmetic_types_int16 : require" + + "-P#extension GL_EXT_shader_explicit_arithmetic_types_int32 : require" + + "-P#extension GL_EXT_shader_explicit_arithmetic_types_int64 : require" + + "-P#extension GL_EXT_shader_explicit_arithmetic_types_float16 : require" + + "-P#extension GL_EXT_scalar_block_layout : require -P#extension" + + "GL_EXT_buffer_reference : require -P#extension GL_EXT_buffer_reference2 :" + + "require -P#extension GL_KHR_memory_scope_semantics : require -P#extension" + + "GL_KHR_shader_subgroup_arithmetic : require -P#extension" + + "GL_KHR_shader_subgroup_basic : require -P#extension" + + "GL_KHR_shader_subgroup_shuffle : require -P#extension" + + "GL_KHR_shader_subgroup_ballot : require -P#extension" + + "GL_KHR_shader_subgroup_clustered : require -P#extension" + + "GL_EXT_shader_atomic_int64 : require", +} + +genrule { + name: "lbvh_main.spv.h", + srcs: [ + "lbvh_main.comp", + ], + out: [ + "lbvh_main.spv.h", + ], + tools: [ + ], + cmd: "glslangValidator -V" + + "-I/usr/local/google/home/gurchetansingh/meson/temp_mesa//src/vulkan/runtime/bvh" + + "--target-env spirv1.5 -x -o $(location lbvh_main.spv.h) $(location" + + "lbvh_main.comp) --quiet -P#extension GL_GOOGLE_include_directive : require" + + "-P#extension GL_EXT_shader_explicit_arithmetic_types_int8 : require -P#extension" + + "GL_EXT_shader_explicit_arithmetic_types_int16 : require -P#extension" + + "GL_EXT_shader_explicit_arithmetic_types_int32 : require -P#extension" + + "GL_EXT_shader_explicit_arithmetic_types_int64 : require -P#extension" + + "GL_EXT_shader_explicit_arithmetic_types_float16 : require -P#extension" + + "GL_EXT_scalar_block_layout : require -P#extension GL_EXT_buffer_reference :" + + "require -P#extension GL_EXT_buffer_reference2 : require -P#extension" + + "GL_KHR_memory_scope_semantics : require -P#extension" + + "GL_KHR_shader_subgroup_arithmetic : require -P#extension" + + "GL_KHR_shader_subgroup_basic : require -P#extension" + + "GL_KHR_shader_subgroup_shuffle : require -P#extension" + + "GL_KHR_shader_subgroup_ballot : require -P#extension" + + "GL_KHR_shader_subgroup_clustered : require -P#extension" + + "GL_EXT_shader_atomic_int64 : require", +} + +genrule { + name: "leaf.spv.h", + srcs: [ + "leaf.comp", + ], + out: [ + "leaf.spv.h", + ], + tools: [ + ], + cmd: "glslangValidator -V" + + "-I/usr/local/google/home/gurchetansingh/meson/temp_mesa//src/vulkan/runtime/bvh" + + "--target-env spirv1.5 -x -o $(location leaf.spv.h) $(location leaf.comp) --quiet" + + "-P#extension GL_GOOGLE_include_directive : require -P#extension" + + "GL_EXT_shader_explicit_arithmetic_types_int8 : require -P#extension" + + "GL_EXT_shader_explicit_arithmetic_types_int16 : require -P#extension" + + "GL_EXT_shader_explicit_arithmetic_types_int32 : require -P#extension" + + "GL_EXT_shader_explicit_arithmetic_types_int64 : require -P#extension" + + "GL_EXT_shader_explicit_arithmetic_types_float16 : require -P#extension" + + "GL_EXT_scalar_block_layout : require -P#extension GL_EXT_buffer_reference :" + + "require -P#extension GL_EXT_buffer_reference2 : require -P#extension" + + "GL_KHR_memory_scope_semantics : require -P#extension" + + "GL_KHR_shader_subgroup_arithmetic : require -P#extension" + + "GL_KHR_shader_subgroup_basic : require -P#extension" + + "GL_KHR_shader_subgroup_shuffle : require -P#extension" + + "GL_KHR_shader_subgroup_ballot : require -P#extension" + + "GL_KHR_shader_subgroup_clustered : require -P#extension" + + "GL_EXT_shader_atomic_int64 : require", +} + +genrule { + name: "morton.spv.h", + srcs: [ + "morton.comp", + ], + out: [ + "morton.spv.h", + ], + tools: [ + ], + cmd: "glslangValidator -V" + + "-I/usr/local/google/home/gurchetansingh/meson/temp_mesa//src/vulkan/runtime/bvh" + + "--target-env spirv1.5 -x -o $(location morton.spv.h) $(location morton.comp)" + + "--quiet -P#extension GL_GOOGLE_include_directive : require -P#extension" + + "GL_EXT_shader_explicit_arithmetic_types_int8 : require -P#extension" + + "GL_EXT_shader_explicit_arithmetic_types_int16 : require -P#extension" + + "GL_EXT_shader_explicit_arithmetic_types_int32 : require -P#extension" + + "GL_EXT_shader_explicit_arithmetic_types_int64 : require -P#extension" + + "GL_EXT_shader_explicit_arithmetic_types_float16 : require -P#extension" + + "GL_EXT_scalar_block_layout : require -P#extension GL_EXT_buffer_reference :" + + "require -P#extension GL_EXT_buffer_reference2 : require -P#extension" + + "GL_KHR_memory_scope_semantics : require -P#extension" + + "GL_KHR_shader_subgroup_arithmetic : require -P#extension" + + "GL_KHR_shader_subgroup_basic : require -P#extension" + + "GL_KHR_shader_subgroup_shuffle : require -P#extension" + + "GL_KHR_shader_subgroup_ballot : require -P#extension" + + "GL_KHR_shader_subgroup_clustered : require -P#extension" + + "GL_EXT_shader_atomic_int64 : require", +} + +genrule { + name: "ploc_internal.spv.h", + srcs: [ + "ploc_internal.comp", + ], + out: [ + "ploc_internal.spv.h", + ], + tools: [ + ], + cmd: "glslangValidator -V" + + "-I/usr/local/google/home/gurchetansingh/meson/temp_mesa//src/vulkan/runtime/bvh" + + "--target-env spirv1.5 -x -o $(location ploc_internal.spv.h) $(location" + + "ploc_internal.comp) --quiet -P#extension GL_GOOGLE_include_directive : require" + + "-P#extension GL_EXT_shader_explicit_arithmetic_types_int8 : require -P#extension" + + "GL_EXT_shader_explicit_arithmetic_types_int16 : require -P#extension" + + "GL_EXT_shader_explicit_arithmetic_types_int32 : require -P#extension" + + "GL_EXT_shader_explicit_arithmetic_types_int64 : require -P#extension" + + "GL_EXT_shader_explicit_arithmetic_types_float16 : require -P#extension" + + "GL_EXT_scalar_block_layout : require -P#extension GL_EXT_buffer_reference :" + + "require -P#extension GL_EXT_buffer_reference2 : require -P#extension" + + "GL_KHR_memory_scope_semantics : require -P#extension" + + "GL_KHR_shader_subgroup_arithmetic : require -P#extension" + + "GL_KHR_shader_subgroup_basic : require -P#extension" + + "GL_KHR_shader_subgroup_shuffle : require -P#extension" + + "GL_KHR_shader_subgroup_ballot : require -P#extension" + + "GL_KHR_shader_subgroup_clustered : require -P#extension" + + "GL_EXT_shader_atomic_int64 : require", +} + diff --git a/output-dir/src/vulkan/runtime/radix_sort/shaders/Android.bp b/output-dir/src/vulkan/runtime/radix_sort/shaders/Android.bp new file mode 100644 index 000000000..1c297eac3 --- /dev/null +++ b/output-dir/src/vulkan/runtime/radix_sort/shaders/Android.bp @@ -0,0 +1,126 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +genrule { + name: "fill.comp.spv.h", + srcs: [ + "fill.comp", + ], + out: [ + "fill.comp.spv.h", + ], + tools: [ + ], + cmd: "glslangValidator -V --target-env spirv1.5 -x -o $(location fill.comp.spv.h)" + + "$(location fill.comp) -DRS_KEYVAL_DWORDS=2 --quiet", +} + +genrule { + name: "histogram.comp.spv.h", + srcs: [ + "histogram.comp", + ], + out: [ + "histogram.comp.spv.h", + ], + tools: [ + ], + cmd: "glslangValidator -V --target-env spirv1.5 -x -o $(location histogram.comp.spv.h)" + + "$(location histogram.comp) -DRS_KEYVAL_DWORDS=2 --quiet", +} + +genrule { + name: "init.comp.spv.h", + srcs: [ + "init.comp", + ], + out: [ + "init.comp.spv.h", + ], + tools: [ + ], + cmd: "glslangValidator -V --target-env spirv1.5 -x -o $(location init.comp.spv.h)" + + "$(location init.comp) -DRS_KEYVAL_DWORDS=2 --quiet", +} + +genrule { + name: "prefix.comp.spv.h", + srcs: [ + "prefix.comp", + ], + out: [ + "prefix.comp.spv.h", + ], + tools: [ + ], + cmd: "glslangValidator -V --target-env spirv1.5 -x -o $(location prefix.comp.spv.h)" + + "$(location prefix.comp) -DRS_KEYVAL_DWORDS=2 --quiet", +} + +genrule { + name: "scatter_0_even.comp.spv.h", + srcs: [ + "scatter_0_even.comp", + ], + out: [ + "scatter_0_even.comp.spv.h", + ], + tools: [ + ], + cmd: "glslangValidator -V --target-env spirv1.5 -x -o $(location" + + "scatter_0_even.comp.spv.h) $(location scatter_0_even.comp) -DRS_KEYVAL_DWORDS=2" + + "--quiet", +} + +genrule { + name: "scatter_0_odd.comp.spv.h", + srcs: [ + "scatter_0_odd.comp", + ], + out: [ + "scatter_0_odd.comp.spv.h", + ], + tools: [ + ], + cmd: "glslangValidator -V --target-env spirv1.5 -x -o $(location" + + "scatter_0_odd.comp.spv.h) $(location scatter_0_odd.comp) -DRS_KEYVAL_DWORDS=2" + + "--quiet", +} + +genrule { + name: "scatter_1_even.comp.spv.h", + srcs: [ + "scatter_1_even.comp", + ], + out: [ + "scatter_1_even.comp.spv.h", + ], + tools: [ + ], + cmd: "glslangValidator -V --target-env spirv1.5 -x -o $(location" + + "scatter_1_even.comp.spv.h) $(location scatter_1_even.comp) -DRS_KEYVAL_DWORDS=2" + + "--quiet", +} + +genrule { + name: "scatter_1_odd.comp.spv.h", + srcs: [ + "scatter_1_odd.comp", + ], + out: [ + "scatter_1_odd.comp.spv.h", + ], + tools: [ + ], + cmd: "glslangValidator -V --target-env spirv1.5 -x -o $(location" + + "scatter_1_odd.comp.spv.h) $(location scatter_1_odd.comp) -DRS_KEYVAL_DWORDS=2" + + "--quiet", +} + diff --git a/output-dir/src/vulkan/util/Android.bp b/output-dir/src/vulkan/util/Android.bp new file mode 100644 index 000000000..5986d172d --- /dev/null +++ b/output-dir/src/vulkan/util/Android.bp @@ -0,0 +1,271 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +filegroup { + name: "vk_entrypoints_gen_py", + srcs: ["vk_entrypoints_gen.py"], +} + +filegroup { + name: "vk_cmd_queue_gen_py", + srcs: ["vk_cmd_queue_gen.py"], +} + +filegroup { + name: "vk_dispatch_trampolines_gen_py", + srcs: ["vk_dispatch_trampolines_gen.py"], +} + +filegroup { + name: "vk_physical_device_features_gen_py", + srcs: ["vk_physical_device_features_gen.py"], +} + +filegroup { + name: "vk_physical_device_properties_gen_py", + srcs: ["vk_physical_device_properties_gen.py"], +} + +filegroup { + name: "vk_physical_device_spirv_caps_gen_py", + srcs: ["vk_physical_device_spirv_caps_gen.py"], +} + +filegroup { + name: "vk_synchronization_helpers_gen_py", + srcs: ["vk_synchronization_helpers_gen.py"], +} + +filegroup { + name: "vk_icd_gen_py", + srcs: ["vk_icd_gen.py"], +} + +python_binary_host { + name: "gen_enum_to_str_gen", + main: "gen_enum_to_str.py", + srcs: [ + "gen_enum_to_str.py", + "vk_extensions.py", + ], + libs: [ + "mako", + ], +} + +python_binary_host { + name: "vk_dispatch_table_gen_gen", + main: "vk_dispatch_table_gen.py", + srcs: [ + "vk_dispatch_table_gen.py", + "vk_entrypoints.py", + "vk_extensions.py", + ], + libs: [ + "mako", + ], +} + +python_binary_host { + name: "vk_extensions_gen_gen", + main: "vk_extensions_gen.py", + srcs: [ + "vk_extensions.py", + "vk_extensions_gen.py", + ], + libs: [ + "mako", + ], +} + +python_binary_host { + name: "vk_struct_type_cast_gen_gen", + main: "vk_struct_type_cast_gen.py", + srcs: [ + "vk_extensions.py", + "vk_struct_type_cast_gen.py", + ], + libs: [ + "mako", + ], +} + +genrule { + name: "vk_dispatch_table_header", + srcs: [ + "registry/vk.xml", + ":vk_xml", + ], + out: [ + "vk_dispatch_table.h", + ], + tools: [ + "vk_dispatch_table_gen_gen", + ], + cmd: "python3 $(location vk_dispatch_table_gen_gen) --xml $(location registry/vk.xml)" + + "--out-c "$(genDir)/placeholder.c" --out-h $(location vk_dispatch_table.h) --beta" + + "false", +} + +genrule { + name: "vk_dispatch_table_impl", + srcs: [ + "registry/vk.xml", + ":vk_xml", + ], + out: [ + "vk_dispatch_table.c", + ], + tools: [ + "vk_dispatch_table_gen_gen", + ], + cmd: "python3 $(location vk_dispatch_table_gen_gen) --xml $(location registry/vk.xml)" + + "--out-c $(location vk_dispatch_table.c) --out-h "$(genDir)/vk_dispatch_table.h"" + + "--beta false", +} + +genrule { + name: "vk_enum_to_str_header", + srcs: [ + "registry/vk.xml", + ":vk_xml", + ], + out: [ + "vk_enum_to_str.h", + "vk_enum_defines.h", + ], + tools: [ + "gen_enum_to_str_gen", + ], + cmd: "python3 $(location gen_enum_to_str_gen) --xml $(location registry/vk.xml)" + + "--outdir $(genDir) --beta false", +} + +genrule { + name: "vk_enum_to_str_impl", + srcs: [ + "registry/vk.xml", + ":vk_xml", + ], + out: [ + "vk_enum_to_str.c", + ], + tools: [ + "gen_enum_to_str_gen", + ], + cmd: "python3 $(location gen_enum_to_str_gen) --xml $(location registry/vk.xml)" + + "--outdir $(genDir) --beta false", +} + +genrule { + name: "vk_extensions_header", + srcs: [ + "registry/vk.xml", + ":vk_xml", + ], + out: [ + "vk_extensions.h", + ], + tools: [ + "vk_extensions_gen_gen", + ], + cmd: "python3 $(location vk_extensions_gen_gen) --xml $(location registry/vk.xml)" + + "--out-c "$(genDir)/placeholder.c" --out-h $(location vk_extensions.h)", +} + +genrule { + name: "vk_extensions_impl", + srcs: [ + "registry/vk.xml", + ":vk_xml", + ], + out: [ + "vk_extensions.c", + ], + tools: [ + "vk_extensions_gen_gen", + ], + cmd: "python3 $(location vk_extensions_gen_gen) --xml $(location registry/vk.xml)" + + "--out-c $(location vk_extensions.c) --out-h "$(genDir)/vk_extensions.h"", +} + +genrule { + name: "vk_struct_type_cast", + srcs: [ + "registry/vk.xml", + ":vk_xml", + ], + out: [ + "vk_struct_type_cast.h", + ], + tools: [ + "vk_struct_type_cast_gen_gen", + ], + cmd: "python3 $(location vk_struct_type_cast_gen_gen) --xml $(location" + + "registry/vk.xml) --outdir $(genDir) --beta false", +} + +cc_library_static { + name: "vulkan_util", + host_supported: false, + srcs: [ + "vk_alloc.c", + "vk_format.c", + "vk_util.c", + ], + generated_headers: [ + "vk_dispatch_table_header", + "vk_enum_to_str_header", + "vk_struct_type_cast", + "vk_extensions_header", + "shader_stats.h", + "u_format_gen.h", + "nir_opcodes.h", + "nir_builder_opcodes.h", + "nir_intrinsics.h", + "nir_intrinsics_indices.h", + "ir_expression_operation.h", + "builtin_types.h", + ], + generated_sources: [ + "vk_dispatch_table_impl", + "vk_enum_to_str_impl", + "vk_extensions_impl", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + "_trial_msvc", + ], + static_libs: [ + "libsync", + "mesa_util", + "blake3", + "mesa_util_c11", + ], + shared_libs: [ + "m", + "libzstd", + "libdrm", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + "inc_nir", + "inc_compiler", + ] + +} + diff --git a/output-dir/src/vulkan/wsi/Android.bp b/output-dir/src/vulkan/wsi/Android.bp new file mode 100644 index 000000000..058afe78a --- /dev/null +++ b/output-dir/src/vulkan/wsi/Android.bp @@ -0,0 +1,88 @@ +/* + * Copyright (C) 2024 Android Open Source Project + * SPDX-License-Identifier: Apache-2.0 + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["external_mesa3d_license"], +} + +genrule { + name: "wsi_entrypoints_header", + srcs: [ + ":vk_entrypoints_gen_py", + ":vk_xml", + ], + out: [ + "wsi_common_entrypoints.h", + ], + tools: [ + "vk_entrypoints_gen_gen", + ], + cmd: "python3 $(location vk_entrypoints_gen_gen) --xml $(location registry/vk.xml)" + + "--proto --weak --out-h $(location wsi_common_entrypoints.h) --out-c" + + ""$(genDir)/placeholder.c" --prefix wsi --beta false", +} + +genrule { + name: "wsi_entrypoints_impl", + srcs: [ + ":vk_entrypoints_gen_py", + ":vk_xml", + ], + out: [ + "wsi_common_entrypoints.c", + ], + tools: [ + "vk_entrypoints_gen_gen", + ], + cmd: "python3 $(location vk_entrypoints_gen_gen) --xml $(location registry/vk.xml)" + + "--proto --weak --out-h "$(genDir)/wsi_common_entrypoints.h" --out-c $(location" + + "wsi_common_entrypoints.c) --prefix wsi --beta false", +} + +cc_library_static { + name: "vulkan_wsi", + host_supported: false, + srcs: [ + "wsi_common.c", + "wsi_common_drm.c", + "wsi_common_headless.c", + ], + generated_headers: [ + "wsi_entrypoints_header", + "shader_stats.h", + "u_format_gen.h", + ], + generated_sources: [ + "wsi_entrypoints_impl", + ], + c_std: "c11", + cpp_std: "c++17", + defaults: [ + "mesa_c_project_args", + "mesa_cpp_project_args", + ], + static_libs: [ + "libsync", + "xmlconfig", + "mesa_util", + "blake3", + "mesa_util_c11", + ], + shared_libs: [ + "libdrm", + "m", + "libzstd", + "libcutils", + "hwvulkan_headers", + "liblog", + "libnativewindow", + ], + header_libs: [ + "inc_src", + ] + +} + diff --git a/tools/compiler-check.py b/tools/compiler-check.py new file mode 100755 index 000000000..958ac3086 --- /dev/null +++ b/tools/compiler-check.py @@ -0,0 +1,290 @@ +#!/usr/bin/env python3 +# SPDX-License-Identifier: Apache-2.0 +# Copyright 2024 The Meson Authors + +import argparse +import os +import sys +import tempfile + +from mesonbuild import environment, mesonlib, mlog, compilers +from mesonbuild.utils.universal import set_meson_command, File +from mesonbuild.coredata import CoreData + +def run_compiler_checks(cross_file): + with tempfile.TemporaryDirectory() as temp_dir: + options = argparse.Namespace(cross_file=[cross_file] if cross_file else [], native_file=[], cmd_line_options={}) + env = environment.Environment(os.getcwd(), temp_dir, options) + cc = compilers.detect_c_compiler(env, mesonlib.MachineChoice.HOST) + cpp = compilers.detect_cpp_compiler(env, mesonlib.MachineChoice.HOST) + + c_compiles_fails = [] + c_links_fails = [] + c_headers_fails = [] + c_header_symbols_fails = {} + c_functions_fails = [] + c_function_attributes_fails = [] + c_members_fails = {} + c_supported_arguments_fails = [] + c_supported_link_arguments_fails = [] + cpp_supported_arguments_fails = [] + + print("Hi, it's me, I'm the problem it seems") + mlog.log('compiler id:', cc.get_id()) + mlog.log('C compiler id:', cc.get_id()) + mlog.log('C++ compiler id:', cpp.get_id()) + + if cc.get_id() == 'gcc' and mesonlib.version_compare(cc.version, '< 4.4.6'): + raise mesonlib.MesonException('When using GCC, version 4.4.6 or later is required.') + + if not cc.has_multi_link_arguments(['-Wl,--gdb-index'], env)[0]: + c_supported_link_arguments_fails.append('-Wl,--gdb-index') + + for b in ['bswap32', 'bswap64', 'clz', 'clzll', 'ctz', 'expect', 'ffs', + 'ffsll', 'popcount', 'popcountll', 'unreachable', 'types_compatible_p']: + if not cc.has_function(b, '', env)[0]: + c_functions_fails.append(b) + + _attributes = [ + 'const', 'flatten', 'malloc', 'pure', 'unused', 'warn_unused_result', + 'weak', 'format', 'packed', 'returns_nonnull', 'alias', 'noreturn', + ] + for attr in _attributes: + if not cc.has_func_attribute(attr, env)[0]: + c_function_attributes_fails.append(attr) + + if not cc.has_func_attribute('visibility:hidden', env)[0]: + c_function_attributes_fails.append('visibility:hidden') + + if not cc.compiles('__uint128_t foo(void) { return 0; }', env, extra_args=[])[0]: + c_compiles_fails.append('__uint128_t') + + if not cc.has_function('reallocarray', '', env)[0]: + c_functions_fails.append('reallocarray') + if not cc.has_function('fmemopen', '', env)[0]: + c_functions_fails.append('fmemopen') + + if not cc.links('static char unused() { return 5; } int main() { return 0; }', + env, extra_args=['-Wl,--gc-sections'])[0]: + c_links_fails.append('gc-sections') + + if not cc.compiles('''#include + int main() { + struct { + uint64_t *v; + } x; + return (int)__atomic_load_n(x.v, __ATOMIC_ACQUIRE) & + (int)__atomic_add_fetch(x.v, (uint64_t)1, __ATOMIC_ACQ_REL); + }''', env)[0]: + c_compiles_fails.append('GCC atomic builtins') + if not cc.links('''#include + uint64_t v; + int main() { + return __sync_add_and_fetch(&v, (uint64_t)1); + }''', env)[0]: + c_links_fails.append('GCC 64bit atomics') + + if not (cc.has_header_symbol('sys/sysmacros.h', 'major', '', env)[0] and + cc.has_header_symbol('sys/sysmacros.h', 'minor', '', env)[0] and + cc.has_header_symbol('sys/sysmacros.h', 'makedev', '', env)[0]): + c_header_symbols_fails['sys/sysmacros.h'] = ['major', 'minor', 'makedev'] + + if not cc.check_header('sched.h', '', env)[0]: + c_headers_fails.append('sched.h') + elif not cc.has_function('sched_getaffinity', '', env)[0]: + c_functions_fails.append('sched_getaffinity') + + for h in ['xlocale.h', 'linux/futex.h', 'endian.h', 'dlfcn.h', 'sys/shm.h', + 'cet.h', 'sys/inotify.h', 'linux/udmabuf.h']: + if not cc.check_header(h, '', env)[0]: + c_headers_fails.append(h) + + if not cc.has_header_symbol('time.h', 'struct timespec', '', env)[0]: + c_header_symbols_fails['time.h'] = ['struct timespec'] + + if not cc.has_function('posix_memalign', '', env)[0]: + c_functions_fails.append('posix_memalign') + + if not cc.has_members('struct dirent', ['d_type'], prefix='''#include + #include ''', env=env)[0]: + c_members_fails['struct dirent'] = ['d_type'] + + if not cc.links('int main() { return 0; }', env, extra_args=['-Wl,-Bsymbolic'])[0]: + c_links_fails.append('Bsymbolic') + + if not cc.has_function('dladdr', '', env)[0]: + c_functions_fails.append('dladdr') + + if not cc.has_function('dl_iterate_phdr', '', env)[0]: + c_functions_fails.append('dl_iterate_phdr') + + if not cc.has_function('clock_gettime', '', env)[0]: + c_functions_fails.append('clock_gettime') + + if not cc.links('''#define _GNU_SOURCE +#include +#include +#ifdef HAVE_XLOCALE_H +#include +#endif +int main() { + locale_t loc = newlocale(LC_CTYPE_MASK, "C", NULL); + const char *s = "1.0"; + char *end; + double d = strtod_l(s, &end, loc); + float f = strtof_l(s, &end, loc); + freelocale(loc); + return 0; +}''', env)[0]: + c_links_fails.append('xlocale') + else: + functions_to_detect = { + 'strtof': '', + 'mkostemp': '', + 'memfd_create': '', + 'flock': '', + 'strtok_r': '', + 'getrandom': '', + 'qsort_s': '', + 'posix_fallocate': '', + 'sysconf': '#include ', + } + for f, prefix in functions_to_detect.items(): + if not cc.has_function(f, prefix, env)[0]: + c_functions_fails.append(f) + + if not cc.has_multi_link_arguments(['-Wl,--build-id=sha1'], env)[0]: + c_supported_link_arguments_fails.append('-Wl,--build-id=sha1') + + if cc.get_argument_syntax() != 'msvc': + _trial_c = [ + '-Werror=implicit-function-declaration', + '-Werror=missing-prototypes', + '-Werror=return-type', + '-Werror=empty-body', + '-Werror=gnu-empty-initializer', + '-Werror=incompatible-pointer-types', + '-Werror=int-conversion', + '-Werror=pointer-arith', + '-Werror=vla', + '-Wimplicit-fallthrough', + '-Wmisleading-indentation', + '-Wno-missing-field-initializers', + '-Wno-format-truncation', + '-fno-math-errno', + '-fno-trapping-math', + '-Qunused-arguments', + '-fno-common', + '-Wno-initializer-overrides', + '-Wno-override-init', + '-Wno-unknown-pragmas', + '-Wno-microsoft-enum-value', + '-Wno-unused-function', + '-Werror=format', + '-Wformat-security', + '-Werror=thread-safety', + '-ffunction-sections', + '-fdata-sections', + ] + _trial_cpp = [ + '-Werror=return-type', + '-Werror=empty-body', + '-Wmisleading-indentation', + '-Wno-non-virtual-dtor', + '-Wno-missing-field-initializers', + '-Wno-format-truncation', + '-fno-math-errno', + '-fno-trapping-math', + '-Qunused-arguments', + '-Wno-unknown-pragmas', + '-Wno-microsoft-enum-value', + '-Werror=format', + '-Wformat-security', + '-ffunction-sections', + '-fdata-sections', + '-Werror=pointer-arith', + '-Werror=vla', + '-Werror=gnu-empty-initializer', + ] + for arg in _trial_c: + args = [arg] if arg.startswith('-Werror=') else ['-Werror', arg] + if not cc.has_multi_arguments(args, env)[0]: + c_supported_arguments_fails.append(arg) + for arg in _trial_cpp: + args = [arg] if arg.startswith('-Werror=') else ['-Werror', arg] + if not cpp.has_multi_arguments(args, env)[0]: + cpp_supported_arguments_fails.append(arg) + + output = '\n' + + output += '[toolchain.c.compiles.fails]\n' + for i in c_compiles_fails: + output += f'"{i}" = true\n' + output += '\n' + + output += '[toolchain.c.links.fails]\n' + for i in c_links_fails: + output += f'"{i}" = true\n' + output += '\n' + + output += '[toolchain.c.check_header.fails]\n' + for i in c_headers_fails: + output += f'"{i}" = true\n' + output += '\n' + + output += '[toolchain.c.has_header_symbol.fails]\n' + for h, s_list in c_header_symbols_fails.items(): + symbols_str_list = [] + for s in s_list: + symbols_str_list.append(f'{s} = true') + output += f'"{h}" = {{ {", ".join(symbols_str_list)} }}\n' + output += '\n' + + output += '[toolchain.c.has_function.fails]\n' + for i in c_functions_fails: + output += f'{i} = true\n' + output += '\n' + + output += '[toolchain.c.has_function_attribute.fails]\n' + for i in c_function_attributes_fails: + output += f'"{i}" = true\n' + output += '\n' + + output += '[toolchain.c.has_member.fails]\n' + for s, m_list in c_members_fails.items(): + members_str_list = [] + for m in m_list: + members_str_list.append(f'{m} = true') + output += f'"{s}" = {{ {", ".join(members_str_list)} }}\n' + output += '\n' + + output += '[toolchain.c.supported_arguments.fails]\n' + output += 'args = [\n' + for i in c_supported_arguments_fails: + output += f' "{i}",\n' + output += ']\n\n' + + output += '[toolchain.c.supported_link_arguments.fails]\n' + output += 'args = [\n' + for i in c_supported_link_arguments_fails: + output += f' "{i}",\n' + output += ']\n\n' + + output += '[toolchain.cpp.supported_arguments.fails]\n' + output += 'args = [\n' + for i in cpp_supported_arguments_fails: + output += f' "{i}",\n' + output += ']\n\n' + + print(output) + +def main(): + mlog.set_quiet() + set_meson_command('NULL') + parser = argparse.ArgumentParser() + parser.add_argument('--cross-file', default=None) + args = parser.parse_args() + run_compiler_checks(args.cross_file) + +if __name__ == '__main__': + sys.exit(main()) diff --git a/tools/hermetic/README.md b/tools/hermetic/README.md new file mode 100644 index 000000000..984d28051 --- /dev/null +++ b/tools/hermetic/README.md @@ -0,0 +1,102 @@ +# meson2hermetic: Meson to Hermetic Build System Converter + +The `meson2hermetic` tool facilitates the integration of Meson-based projects into hermetic build +systems like Bazel, Soong, and potentially Buck2. It works by interpreting a Meson project and +generating the necessary build files for the target hermetic system. + +## How it Works + +The tool invokes Meson's interpreter to understand the project's structure, dependencies, and build +targets. It then uses this information, combined with a user-provided configuration file, to render +a series of build files from Jinja2 templates. These generated files can then be used by the target +hermetic build system. + +## Usage + +To use the tool, run the `meson2hermetic.py` script. You must provide a path to a configuration file +using the `--config` argument, and a path to a toolchain configuration file using the `--toolchain` +argument. + +By default, the script will use the current directory as the project directory. You can specify a +different project directory using the `--project-dir` option. + +The `--output-dir` option controls where the generated build files are placed. + +- If `--output-dir` is provided and is different from the project directory, the script will create + a new directory at that path. The generated build files will be placed within this new directory, + mirroring the subdirectory structure of the original project. +- If `--output-dir` is not provided, or if it is the same as the project directory, the generated + build files will be placed directly within the project's subdirectories. + +For now, since it's likely an user as installed meson on their system, `PYTHONPATH` must specify the +path to meson checkout. + +**Example:** + +```bash +PYTHONPATH=/path/to/meson python3 /path/to/meson/tools/hermetic/meson2hermetic.py \ + --config=/path/to/your/config.toml \ + --toolchain=/path/to/your/toolchain.toml \ + --project-dir=/path/to/your/project \ + --output-dir=/path/to/your/output +``` + +This will generate the hermetic build files in the appropriate subdirectories of +`/path/to/your/output`. For example, if you are targeting Soong, it will create `Android.bp` files. + +## Configuration + +The `meson2hermetic` tool uses TOML files for configuration. The main configuration file specifies +the target build system, project name, machine configurations, and any Meson options. The toolchain +configuration is specified in a separate file and passed to the script via the `--toolchain` +argument. + +**Example `config.toml`:** + +```toml +# The target hermetic build system. +build = 'soong' + +[project_config] +# The name of the project. +name = 'my_project' + +# Machine configuration for the host. +# See Meson's documentation for more details on machine configurations. +[project_config.host_machine] +cpu = 'aarch64' +cpu_family = 'aarch64' +system = 'android' +endian = 'little' + +# Optional: Machine configuration for the build machine. +# If empty, the script will default to the native machine specs. +[project_config.build_machine] +# cpu = 'x86_64' +# cpu_family = 'x86_64' +# system = 'linux' +# endian = 'little' + +# Meson options to be passed to the interpreter. +[project_config.meson_options] +vulkan-drivers = "freedreno,gfxstream" +gallium-drivers = "" +opengl = false +``` + +### Configuration Options: + +- `build`: (Required) The name of the target hermetic build system (e.g., `'soong'`). +- `[project_config]`: A table containing the main project configuration. + - `name`: The name of your project. +- `[project_config.host_machine]`: A table defining the host machine. +- `[project_config.build_machine]`: An optional table defining the build machine. +- `[project_config.target_machine]`: An optional table defining the target machine. +- `[project_config.meson_options]`: A table of Meson project options to be set during + interpretation. + +## Development Status + +This tool is currently under active development. While it is functional for many use cases, it may +not support all features of Meson or all target build systems. Contributions and feedback are +welcome. diff --git a/tools/hermetic/bazel_generator.py b/tools/hermetic/bazel_generator.py new file mode 100644 index 000000000..add82e29c --- /dev/null +++ b/tools/hermetic/bazel_generator.py @@ -0,0 +1,101 @@ +#!/usr/bin/env python3 +# SPDX-License-Identifier: Apache-2.0 +# Copyright 2024 The Meson Authors + +import typing as T +from tools.hermetic.hermetic_types import ( + Generator, + HermeticConfig, + HermeticCustomTarget, + HermeticFlag, + HermeticIncludeDirectory, + HermeticPythonTarget, + HermeticStaticLibrary, + HermeticState, + RustABI, +) + +BUILD_FILES = { + 'bazel': 'BUILD.bazel', +} + +class BazelCustomTarget(HermeticCustomTarget): + def __init__(self, target: HermeticCustomTarget): + self.__dict__.update(target.__dict__) + self.cmd = self._get_cmd() + + def _get_cmd(self) -> str: + final_cmd = [] + for p in self.cmd_parts: + if isinstance(p, str): + final_cmd.append(p) + elif isinstance(p, tuple): + if p[0] == 'location': + if p[2]: + final_cmd.append(f'$(location {p[1]})') + else: + final_cmd.append(f'$(location :{p[1]})') + elif p[0] == 'input': + final_cmd.append(f'$(location {p[2]})') + elif p[0] == 'output': + final_cmd.append(f'$(location {p[2]})') + elif p == 'gen_dir': + final_cmd.append('$(GENDIR)') + return ' '.join(final_cmd) + +class BazelGenerator(Generator): + def __init__(self, output_dir: str, hermetic_state: HermeticState, config: 'HermeticConfig'): + super().__init__('bazel', output_dir, hermetic_state, config) + + def generate(self): + copyright_template = self.jinja_env.get_template('copyright.tmpl') + copyright_string = copyright_template.render(**self.config.copyright) + + hermetic_targets = {} + for t in self.hermetic_state.static_libraries: + hermetic_targets.setdefault(t.subdir, []).append(t) + for t in self.hermetic_state.shared_libraries: + hermetic_targets.setdefault(t.subdir, []).append(t) + for t in self.hermetic_state.custom_targets: + hermetic_targets.setdefault(t.subdir, []).append(BazelCustomTarget(t)) + for t in self.hermetic_state.python_targets: + hermetic_targets.setdefault(t.subdir, []).append(t) + for t in self.hermetic_state.include_directories: + hermetic_targets.setdefault(t.subdir, []).append(t) + for t in self.hermetic_state.flags.values(): + hermetic_targets.setdefault(t.subdir, []).append(t) + + for subdir, targets in hermetic_targets.items(): + build_file_name = BUILD_FILES.get(self.build_system) + if not build_file_name: + exit(f'Build system {self.build_system} not supported.') + + targets.sort(key=lambda t: ( + 0 if isinstance(t, HermeticPythonTarget) else + 1 if isinstance(t, HermeticCustomTarget) else + 2 if isinstance(t, HermeticIncludeDirectory) else + 3 if isinstance(t, HermeticFlag) else + 4, t.name + )) + + content = copyright_string + for i, target in enumerate(targets): + if isinstance(target, HermeticIncludeDirectory): + template_name = 'include.txt' + elif isinstance(target, HermeticFlag): + template_name = 'flag.txt' + elif isinstance(target, HermeticStaticLibrary) and target.rust_abi != RustABI.NONE: + if target.rust_abi == RustABI.RUST: + template_name = 'rustlibrary.txt' + else: + # TODO: Add rust_ffi support to Bazel + template_name = 'rustlibrary.txt' + else: + template_name = f'{type(target).__name__.replace("Hermetic", "").replace("Bazel", "").lower()}.txt' + try: + template = self.jinja_env.get_template(template_name) + content += template.render(target=target, state=self.hermetic_state) + except Exception: + print(f'Could not find template for {template_name}') + + self.write_build_file(subdir, build_file_name, content) diff --git a/tools/hermetic/examples/aosp.toml b/tools/hermetic/examples/aosp.toml new file mode 100644 index 000000000..42268dfdb --- /dev/null +++ b/tools/hermetic/examples/aosp.toml @@ -0,0 +1,93 @@ +# Copyright 2024 Brandon Nguyen +# SPDX-License-Identifier: Apache-2.0 +build = 'soong' + +[copyright] +holder = "Android Open Source Project" +year = 2024 +license = "Apache-2.0" +license_name = "external_mesa3d_license" + +# Base project config which contain shared attributes which +# all other projects must contain / override +[project_config] +name = 'android_aarch64_drivers' + +# minimum_literal = {'cpu', 'cpu_family', 'endian', 'system'} +[project_config.host_machine] +cpu = 'aarch64' +cpu_family = 'aarch64' +system = 'android' +endian = 'little' + +# If host/build machine are empty, the script will default to the native +# machine specs +[project_config.build_machine] +# cpu = 'aarch64' +# cpu_family = 'aarch64' +# system = 'linux' +# endian = 'little' + +[project_config.target_machine] +cpu = 'aarch64' +cpu_family = 'aarch64' +system = 'android' +endian = 'little' + +[project_config.meson_options] +platforms="android" +vulkan-drivers="gfxstream,freedreno,swrast,panfrost" +gallium-drivers="" +virtgpu_kumquat=true +opengl=false +egl="disabled" + +[project_config.dependencies] +libdrm = [ + { target_name = 'libdrm', target_type = 'SHARED_LIBRARY' } +] +libzstd = [ + { target_name = 'libzstd', target_type = 'SHARED_LIBRARY' } +] +hardware = [ + { target_name = 'libhardware', target_type = 'SHARED_LIBRARY' }, + { target_name = 'hwvulkan_headers', target_type = 'HEADER_LIBRARY' } +] +cutils = [ + { target_name = 'libcutils', target_type = 'SHARED_LIBRARY' } +] +log = [ + { target_name = 'liblog', target_type = 'SHARED_LIBRARY' } +] +nativewindow = [ + { target_name = 'libnativewindow', target_type = 'SHARED_LIBRARY' } +] +sync = [ + { target_name = 'libsync', target_type = 'STATIC_LIBRARY' } +] +rustix = [ + { target_name = 'librustix', target_type = 'STATIC_LIBRARY' } +] +cfg_if = [ + { target_name = 'libcfg_if', target_type = 'STATIC_LIBRARY' } +] +log_rust = [ + { target_name = 'liblog_rust', target_type = 'STATIC_LIBRARY' } +] +thiserror = [ + { target_name = 'libthiserror', target_type = 'STATIC_LIBRARY' } +] +zerocopy = [ + { target_name = 'libzerocopy', target_type = 'STATIC_LIBRARY' } +] +libclc = [ + { target_name = "libclc_aosp_mesa", target_type = 'SHARED_LIBRARY', pkgconfig = {'libexecdir' = 'external/mesa3d/llvm-fake/clc-dir'}} +] +llvm = [ + { target_name = 'libLLVM16_swiftshader', target_type = 'SHARED_LIBRARY', version = '16.0', configtool = { "has-rtti" = "YES", "libdir" = "/tmp/" } } +] + +[host_tools.python3] +dependencies = ["mako"] + + diff --git a/tools/hermetic/examples/aosp.toolchain.toml b/tools/hermetic/examples/aosp.toolchain.toml new file mode 100644 index 000000000..f0575578f --- /dev/null +++ b/tools/hermetic/examples/aosp.toolchain.toml @@ -0,0 +1,158 @@ +# Copyright 2024 Brandon Nguyen +# SPDX-License-Identifier: Apache-2.0 + +# New Toolchain Section +[toolchain] +name = "AndroidNDK_r34" + +[toolchain.c] +type = "clang" +version = "18.0.3" +linker = "lld" + +[toolchain.cpp] +type = "clang++" +version = "18.0.3" +linker = "lld" + +[toolchain.rust] +type = "rustc" +version = "1.82.0" +linker = "rust-lld" + +[toolchain.linkers] +[toolchain.linkers.lld] +type = "gnu-like" + +[toolchain.linkers.rust-lld] +type = "gnu-like" + +[toolchain.c.compiles] +"__uint128_t" = true +"GCC atomic builtins" = true + +[toolchain.c.links] +"gc-sections" = true +"Bsymbolic" = true +"strtod has locale support" = true +"GCC 64bit atomics" = true + +[toolchain.c.check_header] +"sched.h" = true +"xlocale.h" = true +"linux/futex.h" = true +"endian.h" = true +"dlfcn.h" = true +"sys/shm.h" = true +"cet.h" = true +"sys/inotify.h" = true +"linux/udmabuf.h" = true + +[toolchain.c.has_header_symbol] +"sys/sysmacros.h" = { major = true, minor = true, makedev = true } +"time.h" = { "struct timespec" = true } + +[toolchain.c.has_function] +bswap32 = true +bswap64 = true +clz = true +clzll = true +ctz = true +expect = true +ffs = true +ffsll = true +popcount = true +popcountll = true +unreachable = true +types_compatible_p = true +reallocarray = true +fmemopen = true +sched_getaffinity = true +dladdr = true +dl_iterate_phdr = true +clock_gettime = true +strtof = true +mkostemp = true +memfd_create = true +flock = true +strtok_r = true +getrandom = true +posix_fallocate = true +sysconf = true +posix_memalign = true + +[toolchain.c.has_function_attribute] +const = true +flatten = true +malloc = true +pure = true +unused = true +warn_unused_result = true +weak = true +format = true +packed = true +returns_nonnull = true +alias = true +noreturn = true +"visibility:hidden" = true + +[toolchain.c.has_member] +"struct dirent" = { d_type = true } + +[toolchain.c.supported_arguments] +args = [ + "-Werror=implicit-function-declaration", + "-Werror=missing-prototypes", + "-Werror=return-type", + "-Werror=empty-body", + "-Werror=gnu-empty-initializer", + "-Werror=incompatible-pointer-types", + "-Werror=int-conversion", + "-Werror=pointer-arith", + "-Werror=vla", + "-Wimplicit-fallthrough", + "-Wmisleading-indentation", + "-Wno-missing-field-initializers", + "-Wno-format-truncation", + "-fno-math-errno", + "-fno-trapping-math", + "-Qunused-arguments", + "-fno-common", + "-Wno-initializer-overrides", + "-Wno-override-init", + "-Wno-unknown-pragmas", + "-Wno-microsoft-enum-value", + "-Wno-unused-function", + "-Werror=format", + "-Wformat-security", + "-Werror=thread-safety", + "-ffunction-sections", + "-fdata-sections", +] + +[toolchain.c.supported_link_arguments] +args = [ + "-Wl,--build-id=sha1", + "-Wl,--gdb-index", +] +[toolchain.cpp.supported_arguments] +args = [ + "-Werror=return-type", + "-Werror=empty-body", + "-Wmisleading-indentation", + "-Wno-non-virtual-dtor", + "-Wno-missing-field-initializers", + "-Wno-format-truncation", + "-fno-math-errno", + "-fno-trapping-math", + "-Qunused-arguments", + "-Wno-unknown-pragmas", + "-Wno-microsoft-enum-value", + "-Werror=format", + "-Wformat-security", + "-ffunction-sections", + "-fdata-sections", + "-Werror=pointer-arith", + "-Werror=vla", + "-Werror=gnu-empty-initializer", +] diff --git a/tools/hermetic/examples/fuchsia.toml b/tools/hermetic/examples/fuchsia.toml new file mode 100644 index 000000000..5f7005821 --- /dev/null +++ b/tools/hermetic/examples/fuchsia.toml @@ -0,0 +1,53 @@ +# Copyright 2024 Google LLC +# SPDX-License-Identifier: Apache-2.0 +build = 'bazel' + +[copyright] +holder = "Google Inc." +year = 2024 +license = "BSD-2-Clause" +license_name = "fuchsia_license" + +[project_config] +name = 'fuchsia_aarch64_drivers' + +[project_config.host_machine] +cpu_family = 'aarch64' +cpu = 'aarch64' +system = 'fuchsia' +endian = 'little' + +[project_config.build_machine] +cpu_family = 'x86_64' +cpu = 'x86_64' +system = 'linux' +endian = 'little' + +[project_config.target_machine] +cpu_family = 'aarch64' +cpu = 'aarch64' +system = 'fuchsia' +endian = 'little' + +[project_config.meson_options] +platforms = "" +gallium-drivers = '' +vulkan-drivers = 'freedreno' +freedreno-kmds = 'kgsl' +platform-sdk-version = 33 +shader-cache = 'disabled' + +[project_config.dependencies] +zlib = [ + { target_name = '@zlib//:zlib', target_type = 'STATIC_LIBRARY' } +] +libmagma = [ + { target_name = '@fuchsia_sdk//pkg/magma_client', target_type = 'STATIC_LIBRARY' } +] +libmagma_virt = [ + # No targets +] +fuchsia_io = [ + { target_name = '@fuchsia_sdk//fidl/fuchsia.io:fuchsia.io_cpp', target_type = 'STATIC_LIBRARY' } +] + diff --git a/tools/hermetic/examples/fuchsia.toolchain.toml b/tools/hermetic/examples/fuchsia.toolchain.toml new file mode 100644 index 000000000..16c7bf18c --- /dev/null +++ b/tools/hermetic/examples/fuchsia.toolchain.toml @@ -0,0 +1,99 @@ +# Copyright 2024 The Meson Authors +# SPDX-License-Identifier: Apache-2.0 + +[toolchain] +name = "Fuchsia SDK" + +[toolchain.c] +type = "clang" +version = "17.0.3" +linker = "lld" + +[toolchain.cpp] +type = "clang++" +version = "17.0.3" +linker = "lld" + +[toolchain.rust] +type = "rustc" +version = "1.70.0" +linker = "rust-lld" + +[toolchain.linkers] +[toolchain.linkers.lld] +type = "gnu-like" + +[toolchain.linkers.rust-lld] +type = "gnu-like" + +[toolchain.c.compiles] +"__uint128_t" = true +"POWER8 intrinsics" = true +"GCC atomic builtins" = true + +[toolchain.c.links] +"gc-sections" = true +"split TLSDESC" = true +"GNU qsort_r" = true +"BSD qsort_r" = false +"strtod has locale support" = true +"Bsymbolic" = true +"version-script" = true +"dynamic-list" = true +"GCC atomic builtins required -latomic" = false +"GCC 64bit atomics" = true + +[toolchain.c.check_header] +"sched.h" = true +"sys/sysctl.h" = true +"xlocale.h" = true +"linux/futex.h" = true +"endian.h" = true +"dlfcn.h" = true +"sys/shm.h" = true +"cet.h" = true +"pthread_np.h" = true +"sys/inotify.h" = true +"linux/udmabuf.h" = true + +[toolchain.c.has_header_symbol] +"sys/sysmacros.h" = { major = true, minor = true, makedev = true } +"sys/mkdev.h" = { major = false, minor = false, makedev = false } +"va/va.h" = { VASurfaceAttribDRMFormatModifiers = true } +"time.h" = { "struct timespec" = true } +"errno.h" = { program_invocation_name = true } +"math.h" = { issignaling = true } + +[toolchain.c.has_function] +"bswap32" = true +"bswap64" = true +"clz" = true +"clzll" = true +"ctz" = true +"expect" = true +"ffs" = true +"ffsll" = true +"popcount" = true +"popcountll" = true +"unreachable" = true +"types_compatible_p" = true +"reallocarray" = true +"fmemopen" = true +"strtof" = true +"mkostemp" = true +"memfd_create" = true +"random_r" = true +"flock" = true +"strtok_r" = true +"getrandom" = true +"qsort_s" = false +"posix_fallocate" = true +"secure_getenv" = false +"sysconf" = true +"thrd_create" = true +"dlopen" = true +"dladdr" = true +"dl_iterate_phdr" = true +"pthread_setaffinity_np" = true +"sched_getaffinity" = true +"__builtin_ia32_clflushopt" = true \ No newline at end of file diff --git a/tools/hermetic/hermetic_templates/bazel/copyright.tmpl b/tools/hermetic/hermetic_templates/bazel/copyright.tmpl new file mode 100644 index 000000000..dc8eb772c --- /dev/null +++ b/tools/hermetic/hermetic_templates/bazel/copyright.tmpl @@ -0,0 +1,3 @@ +# Copyright {{ year }} {{ holder }} +# SPDX-License-Identifier: {{ license }} + diff --git a/tools/hermetic/hermetic_templates/bazel/customtarget.txt b/tools/hermetic/hermetic_templates/bazel/customtarget.txt new file mode 100644 index 000000000..44e451a26 --- /dev/null +++ b/tools/hermetic/hermetic_templates/bazel/customtarget.txt @@ -0,0 +1,23 @@ +{# Copyright © 2024 The Meson Authors + SPDX-License-Identifier: MIT +#} +genrule( + name = "{{ target.name }}", + srcs = [ + {%- for src in target.srcs %} + "{{ src }}", + {%- endfor %} + ], + outs = [ + {%- for out in target.out %} + "{{ out }}", + {%- endfor %} + ], + tools = [ + {%- for tool in target.tools %} + "{{ tool }}", + {%- endfor %} + ], + cmd = "{{ target.cmd | wordwrap(80, wrapstring='" + + "') }}", +) diff --git a/tools/hermetic/hermetic_templates/bazel/flag.txt b/tools/hermetic/hermetic_templates/bazel/flag.txt new file mode 100644 index 000000000..1e97c985b --- /dev/null +++ b/tools/hermetic/hermetic_templates/bazel/flag.txt @@ -0,0 +1,8 @@ +{{ target.name }} = [ + {%- for flag in target.cflags %} + "{{ flag }}", + {%- endfor %} + {%- for flag in target.cppflags %} + "{{ flag }}", + {%- endfor %} +] diff --git a/tools/hermetic/hermetic_templates/bazel/include.txt b/tools/hermetic/hermetic_templates/bazel/include.txt new file mode 100644 index 000000000..b1cef411d --- /dev/null +++ b/tools/hermetic/hermetic_templates/bazel/include.txt @@ -0,0 +1,9 @@ +cc_library( + name = "{{ target.name }}", + hdrs = glob([ + {%- for dir in target.paths %} + "{{ dir }}/**/*.h", + {%- endfor %} + ]), + visibility = [ "//visibility:public" ], +) diff --git a/tools/hermetic/hermetic_templates/bazel/pythontarget.txt b/tools/hermetic/hermetic_templates/bazel/pythontarget.txt new file mode 100644 index 000000000..3377f2f24 --- /dev/null +++ b/tools/hermetic/hermetic_templates/bazel/pythontarget.txt @@ -0,0 +1,17 @@ +{# Copyright © 2024 The Meson Authors + SPDX-License-Identifier: MIT +#} +py_binary( + name = "{{ target.name }}", + main = "{{ target.main }}", + srcs = [ + {%- for src in target.srcs %} + "{{ src }}", + {%- endfor %} + ], + imports = [ + {%- for import in target.imports %} + "{{ import }}", + {%- endfor %} + ], +) diff --git a/tools/hermetic/hermetic_templates/bazel/rustlibrary.txt b/tools/hermetic/hermetic_templates/bazel/rustlibrary.txt new file mode 100644 index 000000000..4ed8f3bae --- /dev/null +++ b/tools/hermetic/hermetic_templates/bazel/rustlibrary.txt @@ -0,0 +1,20 @@ +{#- Copyright © 2024 The Meson Authors + SPDX-License-Identifier: Apache-2.0 +-#} +load("@rules_rust//rust:defs.bzl", "rust_library") + +rust_library( + name = "{{ target.name }}", + srcs = glob([ + {%- for subdir in target.src_subdirs %} + "{{ subdir }}/**/*.rs", + {%- endfor %} + ]), + crate_root = "{{ target.crate_root }}", + edition = "2021", + deps = [ + {%- for lib in target.static_libs %} + "//{{ lib.replace(':', '/') }}", + {%- endfor %} + ], +) diff --git a/tools/hermetic/hermetic_templates/bazel/sharedlibrary.txt b/tools/hermetic/hermetic_templates/bazel/sharedlibrary.txt new file mode 100644 index 000000000..3599f8828 --- /dev/null +++ b/tools/hermetic/hermetic_templates/bazel/sharedlibrary.txt @@ -0,0 +1,15 @@ +{# Copyright © 2024 The Meson Authors + SPDX-License-Identifier: MIT +#} +cc_shared_library( + name = "{{ target.name }}", + copts = {{ " + ".join(target.flags) if target.flags else "[]" }}, + deps = [ + {%- for dep in target.deps %} + "{{ dep }}", + {%- endfor %} + ], + visibility = [ "//visibility:public" ], + {# Fuchsia Vulkan ICDs may not have shared c++ dependency #} + user_link_flags = ["-static-libstdc++"], +) diff --git a/tools/hermetic/hermetic_templates/bazel/staticlibrary.txt b/tools/hermetic/hermetic_templates/bazel/staticlibrary.txt new file mode 100644 index 000000000..5101e04ce --- /dev/null +++ b/tools/hermetic/hermetic_templates/bazel/staticlibrary.txt @@ -0,0 +1,47 @@ +{# Copyright © 2024 The Meson Authors + SPDX-License-Identifier: MIT +#} +cc_library( + name = "{{ target.name }}", + srcs = [ + {%- for src in target.srcs %} + "{{ src }}", + {%- endfor %} + ], + hdrs = [ + {%- for hdr in target.generated_headers %} + "{{ hdr }}", + {%- endfor -%} + ], + {# Tells Bazel to use -isystem for targets that depend on this one, + which is needed for clients that include package headers with angle brackets. + #} + includes = [ + {%- for include_dir in target.local_include_dirs %} + "{{ include_dir }}", + {%- endfor %} + {%- for include_dir in target.export_include_dirs %} + "{{ include_dir }}", + {%- endfor %} + ], + copts = {{ " + ".join(target.flags) if target.flags else "[]" }}, + deps = [ + {%- for dep in target.deps %} + "{{ dep }}", + {%- endfor %} + {%- for dep in target.include_dirs %} + ":{{ dep }}", + {%- endfor %} + ], + target_compatible_with = [ + {%- for target_compat in target.target_compatible_with %} + "{{ target_compat }}", + {%- endfor %} + ], + visibility = [ "//visibility:public" ], + {# Bazel doesn't seem to have a 'whole_static_libs' + option for targets that link against static libs; + workaround is to specify every static lib as alwaysLink + #} + alwayslink = True, +) \ No newline at end of file diff --git a/tools/hermetic/hermetic_templates/soong/copyright.tmpl b/tools/hermetic/hermetic_templates/soong/copyright.tmpl new file mode 100644 index 000000000..9306ad0e3 --- /dev/null +++ b/tools/hermetic/hermetic_templates/soong/copyright.tmpl @@ -0,0 +1,10 @@ +/* + * Copyright (C) {{ year }} {{ holder }} + * SPDX-License-Identifier: {{ license }} + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["{{ license_name }}"], +} + diff --git a/tools/hermetic/hermetic_templates/soong/customtarget.txt b/tools/hermetic/hermetic_templates/soong/customtarget.txt new file mode 100644 index 000000000..38ce95d62 --- /dev/null +++ b/tools/hermetic/hermetic_templates/soong/customtarget.txt @@ -0,0 +1,24 @@ +{#- Copyright © 2024 The Meson Authors + SPDX-License-Identifier: Apache-2.0 +-#} +genrule { + name: "{{ target.name }}", + srcs: [ + {%- for src in target.srcs %} + "{{ src }}", + {%- endfor %} + ], + out: [ + {%- for o in target.out %} + "{{ o }}", + {%- endfor %} + ], + tools: [ + {%- for tool in target.tools %} + "{{ tool }}", + {%- endfor %} + ], + cmd: "{{ target.cmd | wordwrap(80, wrapstring='" + + "') }}", +} + diff --git a/tools/hermetic/hermetic_templates/soong/filegroup.txt b/tools/hermetic/hermetic_templates/soong/filegroup.txt new file mode 100644 index 000000000..640d9747a --- /dev/null +++ b/tools/hermetic/hermetic_templates/soong/filegroup.txt @@ -0,0 +1,8 @@ +{#- Copyright © 2024 The Meson Authors + SPDX-License-Identifier: Apache-2.0 +-#} +filegroup { + name: "{{ fg.name }}", + srcs: ["{{ fg.src }}"], +} + diff --git a/tools/hermetic/hermetic_templates/soong/flag.txt b/tools/hermetic/hermetic_templates/soong/flag.txt new file mode 100644 index 000000000..1020f0369 --- /dev/null +++ b/tools/hermetic/hermetic_templates/soong/flag.txt @@ -0,0 +1,21 @@ +{#- Copyright © 2024 The Meson Authors + SPDX-License-Identifier: Apache-2.0 +-#} +cc_defaults { + name: "{{ target.name }}", +{%- if target.cflags %} + cflags: [ +{%- for flag in target.cflags %} + "{{ flag }}", +{%- endfor %} + ], +{%- endif %} +{%- if target.cppflags %} + cppflags: [ +{%- for flag in target.cppflags %} + "{{ flag }}", +{%- endfor %} + ], +{%- endif %} +} + diff --git a/tools/hermetic/hermetic_templates/soong/include.txt b/tools/hermetic/hermetic_templates/soong/include.txt new file mode 100644 index 000000000..a9327165f --- /dev/null +++ b/tools/hermetic/hermetic_templates/soong/include.txt @@ -0,0 +1,12 @@ +{#- Copyright © 2024 The Meson Authors + SPDX-License-Identifier: Apache-2.0 +-#} +cc_library_headers { + name: "{{ target.name }}", + export_include_dirs: [ + {%- for dir in target.paths %} + "{{ dir }}", + {%- endfor %} + ], +} + diff --git a/tools/hermetic/hermetic_templates/soong/pythontarget.txt b/tools/hermetic/hermetic_templates/soong/pythontarget.txt new file mode 100644 index 000000000..f687d7039 --- /dev/null +++ b/tools/hermetic/hermetic_templates/soong/pythontarget.txt @@ -0,0 +1,18 @@ +{#- Copyright © 2024 The Meson Authors + SPDX-License-Identifier: Apache-2.0 +-#} +python_binary_host { + name: "{{ target.name }}", + main: "{{ target.main }}", + srcs: [ + {%- for src in target.srcs %} + "{{ src }}", + {%- endfor %} + ], + libs: [ + {%- for lib in target.libs %} + "{{ lib }}", + {%- endfor %} + ], +} + diff --git a/tools/hermetic/hermetic_templates/soong/rustffi.txt b/tools/hermetic/hermetic_templates/soong/rustffi.txt new file mode 100644 index 000000000..9a52967c6 --- /dev/null +++ b/tools/hermetic/hermetic_templates/soong/rustffi.txt @@ -0,0 +1,22 @@ +{#- Copyright © 2024 The Meson Authors + SPDX-License-Identifier: Apache-2.0 +-#} +rust_ffi_static { + name: "{{ target.name }}", + host_supported: {{ target.host_supported }}, + crate_name: "{{ target.name.replace('lib', '') }}", + cargo_env_compat: true, + cargo_pkg_version: "0.1.0", + crate_root: "{{ target.crate_root }}", + srcs: [ + {%- for src in target.srcs %} + "{{ src }}", + {%- endfor %} + ], + edition: "2021", + rustlibs: [ + {%- for lib in target.static_libs %} + "{{ lib }}", + {%- endfor %} + ], +} diff --git a/tools/hermetic/hermetic_templates/soong/rustlibrary.txt b/tools/hermetic/hermetic_templates/soong/rustlibrary.txt new file mode 100644 index 000000000..9e47017d3 --- /dev/null +++ b/tools/hermetic/hermetic_templates/soong/rustlibrary.txt @@ -0,0 +1,22 @@ +{#- Copyright © 2024 The Meson Authors + SPDX-License-Identifier: Apache-2.0 +-#} +rust_library { + name: "{{ target.name }}", + host_supported: {{ target.host_supported }}, + crate_name: "{{ target.name.replace('lib', '') }}", + cargo_env_compat: true, + cargo_pkg_version: "0.1.0", + crate_root: "{{ target.crate_root }}", + srcs: [ + {%- for src in target.srcs %} + "{{ src }}", + {%- endfor %} + ], + edition: "2021", + rustlibs: [ + {%- for lib in target.static_libs %} + "{{ lib }}", + {%- endfor %} + ], +} diff --git a/tools/hermetic/hermetic_templates/soong/sharedlibrary.txt b/tools/hermetic/hermetic_templates/soong/sharedlibrary.txt new file mode 100644 index 000000000..fb7b454d1 --- /dev/null +++ b/tools/hermetic/hermetic_templates/soong/sharedlibrary.txt @@ -0,0 +1,81 @@ +{#- Copyright © 2024 The Meson Authors + SPDX-License-Identifier: Apache-2.0 +-#} +cc_library_shared { + name: "{{ target.name }}", + host_supported: {{ target.host_supported }}, + srcs: [ + {%- for src in target.srcs if not src.endswith(('.h', '.hh', '.hpp', '.hxx')) %} + "{{ src }}", + {%- endfor %} + ], + {% if target.generated_headers -%} + generated_headers: [ + {%- for generated in target.generated_headers %} + "{{ generated }}", + {%- endfor %} + ], + {% endif -%} + {% if target.generated_sources -%} + generated_sources: [ + {%- for generated in target.generated_sources %} + "{{ generated }}", + {%- endfor %} + ], + {% endif -%} + {% if state.c_std -%} + c_std: "{{ state.c_std }}", + {% endif -%} + {% if state.cpp_std -%} + cpp_std: "{{ state.cpp_std }}", + {% endif -%} + {% if target.local_include_dirs -%} + local_include_dirs: [ + {%- for inc in target.local_include_dirs %} + "{{ inc }}", + {%- endfor %} + ], + {% endif -%} + {% if target.flags -%} + defaults: [ + {%- for flag in target.flags %} + "{{ flag }}", + {%- endfor %} + ], + {% endif -%} + {% if target.static_libs -%} + static_libs: [ +{%- for lib in target.static_libs %} + "{{ lib }}", +{%- endfor %} +{%- for lib in target.hermetic_dependencies %} + "{{ lib }}", +{%- endfor %} + ], + {% endif -%} + {% if target.whole_static_libs -%} + whole_static_libs: [ + {%- for lib in target.whole_static_libs %} + "{{ lib }}", + {%- endfor %} + ], + {% endif -%} + {% if target.shared_libs -%} + shared_libs: [ + {%- for lib in target.shared_libs %} + "{{ lib }}", + {%- endfor %} + ], + {% endif -%} + {% if target.header_libs or target.include_dirs -%} + header_libs: [ + {%- for lib in target.header_libs %} + "{{ lib }}", + {%- endfor %} + {%- for lib in target.include_dirs %} + "{{ lib }}", + {%- endfor %} + ] + {% endif %} +} + diff --git a/tools/hermetic/hermetic_templates/soong/staticlibrary.txt b/tools/hermetic/hermetic_templates/soong/staticlibrary.txt new file mode 100644 index 000000000..c7c624f6a --- /dev/null +++ b/tools/hermetic/hermetic_templates/soong/staticlibrary.txt @@ -0,0 +1,81 @@ +{#- Copyright © 2024 The Meson Authors + SPDX-License-Identifier: Apache-2.0 +-#} +cc_library_static { + name: "{{ target.name }}", + host_supported: {{ target.host_supported }}, + srcs: [ + {%- for src in target.srcs if not src.endswith(('.h', '.hh', '.hpp', '.hxx')) %} + "{{ src }}", + {%- endfor %} + ], + {% if target.generated_headers -%} + generated_headers: [ + {%- for generated in target.generated_headers %} + "{{ generated }}", + {%- endfor %} + ], + {% endif -%} + {% if target.generated_sources -%} + generated_sources: [ + {%- for generated in target.generated_sources %} + "{{ generated }}", + {%- endfor %} + ], + {% endif -%} + {% if state.c_std -%} + c_std: "{{ state.c_std }}", + {% endif -%} + {% if state.cpp_std -%} + cpp_std: "{{ state.cpp_std }}", + {% endif -%} + {% if target.local_include_dirs -%} + local_include_dirs: [ + {%- for inc in target.local_include_dirs %} + "{{ inc }}", + {%- endfor %} + ], + {% endif -%} + {% if target.flags -%} + defaults: [ + {%- for flag in target.flags %} + "{{ flag }}", + {%- endfor %} + ], + {% endif -%} + {% if target.static_libs -%} + static_libs: [ +{%- for lib in target.static_libs %} + "{{ lib }}", +{%- endfor %} +{%- for lib in target.hermetic_dependencies %} + "{{ lib }}", +{%- endfor %} + ], + {% endif -%} + {% if target.whole_static_libs -%} + whole_static_libs: [ + {%- for lib in target.whole_static_libs %} + "{{ lib }}", + {%- endfor %} + ], + {% endif -%} + {% if target.shared_libs -%} + shared_libs: [ + {%- for lib in target.shared_libs %} + "{{ lib }}", + {%- endfor %} + ], + {% endif -%} + {% if target.header_libs or target.include_dirs -%} + header_libs: [ + {%- for lib in target.header_libs %} + "{{ lib }}", + {%- endfor %} + {%- for lib in target.include_dirs %} + "{{ lib }}", + {%- endfor %} + ] + {% endif %} +} + diff --git a/tools/hermetic/hermetic_types.py b/tools/hermetic/hermetic_types.py new file mode 100644 index 000000000..3bda1c713 --- /dev/null +++ b/tools/hermetic/hermetic_types.py @@ -0,0 +1,715 @@ +#!/usr/bin/env python3 +# SPDX-License-Identifier: Apache-2.0 +# Copyright 2024 The Meson Authors + +from __future__ import annotations +import contextlib +import enum +import tomllib +import typing as T +from pathlib import Path +import os +import hashlib + +from jinja2 import Environment, FileSystemLoader + +from mesonbuild import build, environment, coredata, interpreter, mlog, programs, mparser +from mesonbuild.dependencies import base as dependency_base +from mesonbuild.dependencies import Dependency, InternalDependency +from mesonbuild.envconfig import MachineInfo +from mesonbuild.interpreterbase import InterpreterObject, ObjectHolder, noArgsFlattening +from mesonbuild.interpreterbase.decorators import noKwargs +from mesonbuild.mesonlib import MachineChoice, HoldableObject +from mesonbuild.compilers.c import ClangCCompiler +from mesonbuild.compilers.cpp import ClangCPPCompiler +from mesonbuild.compilers.rust import RustCompiler +from mesonbuild.linkers.linkers import GnuBFDDynamicLinker +from mesonbuild.compilers.compilers import CompileResult +from mesonbuild.utils import universal +from mesonbuild.utils.core import MesonException +from enum import Enum +from mesonbuild import options + + +if T.TYPE_CHECKING: + from mesonbuild.coredata import SharedCMDOptions + + class CMDOptions(SharedCMDOptions): + configdir: str + +def get_stable_id(obj: T.Any) -> T.Optional[str]: + if isinstance(obj, build.IncludeDirs): + canonical_string = '|'.join([ + obj.curdir, + ','.join(sorted(obj.incdirs)), + str(obj.is_system), + ','.join(sorted(obj.extra_build_dirs)), + ]) + return hashlib.sha1(canonical_string.encode()).hexdigest() + elif isinstance(obj, list): + if all(isinstance(i, str) for i in obj): + canonical_string = ','.join(sorted(obj)) + return hashlib.sha1(canonical_string.encode()).hexdigest() + return None + +class HermeticFlag: + def __init__(self, name: str, subdir: str): + self.name = name + self.subdir = subdir + self.cflags: T.List[str] = [] + self.cppflags: T.List[str] = [] + +class HermeticIncludeDirectory: + def __init__(self, inc: build.IncludeDirs, name: str): + self.name = name + self.subdir: str = inc.get_curdir() + self.paths: T.Tuple[str, ...] = tuple(sorted(inc.get_incdirs())) + +class HermeticState: + + def __init__(self): + self.shared_libraries: T.List[HermeticSharedLibrary] = [] + self.static_libraries: T.List[HermeticStaticLibrary] = [] + self.rust_libraries: T.List[HermeticRustLibrary] = [] + self.custom_targets: T.List[HermeticCustomTarget] = [] + self.python_targets: T.List[HermeticPythonTarget] = [] + self.filegroups: T.Dict[str, T.List[str]] = {} + self.dependencies: T.List[MesonDeclaredDependency] = [] + self.include_directories: T.List[HermeticIncludeDirectory] = [] + self.flags: T.Dict[str, HermeticFlag] = {} + + self.c_std: str = '' + self.cpp_std: str = '' + self.root_subdir: str = '' + + def copts(self): + pass + + def __str__(self): + return f'HermeticState:\n\tshared_libraries len: {len(self.shared_libraries)}' \ + f'\n\tstatic_libraries len: {len(self.static_libraries)}' \ + f'\n\tcustom_targets len: {len(self.custom_targets)}' \ + f'\n\tpython_targets len: {len(self.python_targets)}' + + +class RustABI(Enum): + RUST = 'rust' + C = 'c' + NONE = None + +class HermeticAssignment: + def __init__(self, name: str, subdir: str): + self.name: str = name + self.subdir: str = subdir + +class HermeticStaticLibrary: + + def __init__(self): + self.name: str = '' + self.subdir: str = '' # Location of this StaticLibrary's definition + self.host_supported: str = 'false' + self.dirs: T.List[str] = [] + self.visibility: T.List[str] = [] + self.srcs: T.List[str] = [] + self.rust_abi: RustABI = RustABI.NONE + self.crate_root: str = '' + self.src_subdirs: T.Set[str] = set() + self.c_args: T.List[str] = [] + self.cpp_args: T.List[str] = [] + + self.generated_headers: T.List[str] = [] + self.generated_sources: T.List[str] = [] + + self.deps: T.List[str] = [] + self.target_compatible_with: T.List[str] = [] + + self.include_dirs: T.List[str] = [] + self.local_include_dirs: T.List[str] = [] + self.static_libs: T.List[str] = [] + self.whole_static_libs: T.List[str] = [] + self.shared_libs: T.List[str] = [] + self.flags: T.List[str] = [] + self.header_libs: T.List[str] = [] + + def convert_from_meson(self, meson_sl: build.StaticLibrary, assignment_tracker: T.Dict[str, HermeticAssignment], projects: T.Dict[str, str]) -> (T.Optional[HermeticFlag], T.Optional[HermeticFlag]): + self.name = meson_sl.get_basename() + self.srcs = [s.fname for s in meson_sl.sources] + self.subdir = meson_sl.subdir + project_name = projects[meson_sl.subproject] + self.flags.append(f'{project_name}_c_project_args') + self.flags.append(f'{project_name}_cpp_project_args') + rust_abi = meson_sl.original_kwargs.get('rust_abi') + if rust_abi: + self.rust_abi = RustABI(rust_abi) + for s in self.srcs: + if os.path.basename(s) == 'lib.rs': + self.crate_root = s + break + if not self.crate_root and self.srcs: + self.crate_root = self.srcs[0] + + for s in self.srcs: + self.src_subdirs.add(os.path.dirname(s)) + + for d in meson_sl.get_dependencies(): + if isinstance(d, InternalDependency): + for lib in d.libraries: + if isinstance(lib, build.StaticLibrary): + self.static_libs.append(lib.name) + elif isinstance(lib, build.SharedLibrary): + self.shared_libs.append(lib.name) + else: + self.deps.append(d.name) + + for d in meson_sl.external_deps: + if d.found() and isinstance(d, dependency_base.ExternalDependency): + if d.static: + self.static_libs.append(d.name) + else: + self.shared_libs.append(d.name) + + c_args = meson_sl.get_extra_args('c') + cpp_args = meson_sl.get_extra_args('cpp') + + c_flag_ret = None + cpp_flag_ret = None + + if c_args: + stable_id = get_stable_id(c_args) + name = '' + subdir = '' + if stable_id in assignment_tracker: + name = assignment_tracker[stable_id].name + subdir = assignment_tracker[stable_id].subdir + else: + name = f'{self.name}_c_flags' + subdir = self.subdir + c_flag_ret = HermeticFlag(name, subdir) + c_flag_ret.cflags = c_args + self.flags.append(name) + + if cpp_args: + stable_id = get_stable_id(cpp_args) + name = '' + subdir = '' + if stable_id in assignment_tracker: + name = assignment_tracker[stable_id].name + subdir = assignment_tracker[stable_id].subdir + else: + name = f'{self.name}_cpp_flags' + subdir = self.subdir + cpp_flag_ret = HermeticFlag(name, subdir) + cpp_flag_ret.cppflags = cpp_args + self.flags.append(name) + + for include_dir in meson_sl.include_dirs: + stable_id = get_stable_id(include_dir) + if stable_id in assignment_tracker: + name = assignment_tracker[stable_id].name + # why does meson have duplicate IncludeDirectories? + if name not in self.header_libs: + self.header_libs.append(name) + + processed_targets = set() + for target in meson_sl.get_generated_sources(): + if not isinstance(target, build.CustomTarget): + continue + if target.name in processed_targets: + continue + processed_targets.add(target.name) + + has_headers = any(o.endswith('.h') for o in target.outputs) + has_sources = any(not o.endswith('.h') for o in target.outputs) + + if has_headers and has_sources: + if f'{target.name}_header' not in self.generated_headers: + self.generated_headers.append(f'{target.name}_header') + if f'{target.name}_impl' not in self.generated_sources: + self.generated_sources.append(f'{target.name}_impl') + elif has_headers: + if target.name not in self.generated_headers: + self.generated_headers.append(target.name) + else: + if target.name not in self.generated_sources: + self.generated_sources.append(target.name) + + for target in meson_sl.link_targets: + if isinstance(target, build.StaticLibrary): + self.static_libs.append(target.name) + elif isinstance(target, build.SharedLibrary): + self.shared_libs(target.name) + + for target in meson_sl.link_whole_targets: + if isinstance(target, build.StaticLibrary): + self.whole_static_libs.append(target.name) + + return c_flag_ret, cpp_flag_ret + + + def __str__(self): + return f'@StaticLibrary({self.name})' + +class HermeticSharedLibrary(HermeticStaticLibrary): + ''' + Exactly same metadata as StaticLibrary besides how it's generated in Soong and Bazel files + ''' + def convert_from_meson(self, meson_sl: build.SharedLibrary, assignment_tracker: T.Dict[str, HermeticAssignment], projects: T.Dict[str, str]) -> (T.Optional[HermeticFlag], T.Optional[HermeticFlag]): + return super().convert_from_meson(meson_sl, assignment_tracker, projects) + + def __str__(self): + return f'@SharedLibrary({self.name})' + +class HermeticCustomTarget: + + def __init__(self): + self.name: str = '' + self.subdir: str = '' + self.srcs: T.List[str] = [] + self.out: T.List[str] = [] # 'outs' in bazel + self.generated_headers: T.List[str] = [] + self.generated_sources: T.List[str] = [] + self.tools: T.List[str] = [] + self.export_include_dirs: T.List[str] = [] + self.cmd: T.List[str] = [] + self.cmd_parts: T.List[T.Any] = [] + + self.python_script = '' + self.python_script_target_name = '' + + def convert_from_meson(self, custom_target: build.CustomTarget) -> None: + self.name = custom_target.name + self.subdir = custom_target.subdir + + for out in custom_target.outputs: + self.out.append(out) + if out.endswith('.h'): + self.generated_headers.append(out) + else: + self.generated_sources.append(out) + + self.depend_files = [f.fname for f in custom_target.depend_files if isinstance(f, universal.File)] + + if custom_target.command and isinstance(custom_target.command[0], programs.ExternalProgram) and custom_target.command[0].get_name() == 'python3': + script = custom_target.command[1] + if isinstance(script, universal.File): + self.python_script = script + self.python_script_target_name = os.path.splitext(os.path.basename(script.fname))[0] + '_gen' + elif isinstance(script, str) and script.startswith('@INPUT'): + index_str = script.replace('@INPUT', '').rstrip('@') + index = int(index_str) if index_str else 0 + self.python_script = custom_target.sources[index] + self.python_script_target_name = os.path.splitext(os.path.basename(self.python_script.fname))[0] + '_gen' + + for src in custom_target.sources: + if self.python_script and src == self.python_script: + continue + if isinstance(src, (universal.File)): + self.srcs.append(src.fname) + elif isinstance(src, (build.CustomTarget, build.CustomTargetIndex)): + self.srcs.extend(str(s) for s in src.get_outputs()) + elif isinstance(src, (build.StaticLibrary)): + self.srcs.append(src.filename) + else: + # TODO: handle all other possible types + raise MesonException(f'Type: {type(src)} not handled, exiting...') + + if custom_target.command: + cmd_parts = [] + i = 0 + while i < len(custom_target.command): + part = custom_target.command[i] + part_str = str(part) + if isinstance(part, build.BuildTarget): + if not self.tools or self.tools[-1] != part.name: + self.tools.append(part.name) + cmd_parts.append(('location', part.name, None)) + elif isinstance(part, universal.File): + if part == self.python_script: + self.tools.append(self.python_script_target_name) + cmd_parts.append(('location', self.python_script_target_name, None)) + else: + cmd_parts.append(('location', part.fname, part.fname)) + elif isinstance(part, programs.ExternalProgram): + cmd_parts.append(part.name) + elif part_str == '@INPUT@': + for j, src in enumerate(custom_target.sources): + if self.python_script and src == self.python_script: + if self.python_script_target_name not in self.tools: + self.tools.append(self.python_script_target_name) + cmd_parts.append(('location', self.python_script_target_name, None)) + else: + if isinstance(src, (build.CustomTarget, build.CustomTargetIndex)): + cmd_parts.append(('input', j, src.get_outputs()[0])) + elif isinstance(src, (build.StaticLibrary)): + cmd_parts.append(('input', j, src.filename)) + else: + cmd_parts.append(('input', j, src.fname)) + elif part_str.startswith('@INPUT'): + index_str = part_str.replace('@INPUT', '').rstrip('@') + index = int(index_str) if index_str else 0 + src = custom_target.sources[index] + + if self.python_script and src == self.python_script: + self.tools.append(self.python_script_target_name) + cmd_parts.append(('location', self.python_script_target_name, None)) + else: + if isinstance(src, (build.CustomTarget, build.CustomTargetIndex)): + cmd_parts.append(('input', index, src.get_outputs()[0])) + elif isinstance(src, (build.StaticLibrary)): + cmd_parts.append(('input', index, src.filename)) + else: + cmd_parts.append(('input', index, src.fname)) + elif part_str.startswith('@OUTPUT'): + index_str = part_str.replace('@OUTPUT', '').rstrip('@') + if not index_str: + cmd_parts.append(('output', 0, self.out[0])) + else: + index = int(index_str) + cmd_parts.append(('output', index, self.out[index])) + elif part_str == os.path.join(custom_target.environment.get_build_dir(), custom_target.subdir): + cmd_parts.append('gen_dir') + else: + cmd_parts.append(part_str) + i += 1 + self.cmd_parts = cmd_parts + + if custom_target.capture: + if len(self.out) >= 1: + self.cmd_parts.extend(['&>', ('output', 0, self.out[0])]) + + self.export_include_dirs.append(custom_target.subdir) + + def emit_python_target(self, host_tools_config: T.Dict[str, T.Any]) -> T.Union[HermeticPythonTarget, None]: + ''' + Not all custom targets have valid python targets. + Function may return None for those cases. + ''' + if not self.python_script: + return None + + python_custom_target = HermeticPythonTarget(self, host_tools_config) + return python_custom_target + + def __str__(self): + return f'HermeticCustomTarget({self.name})' + +class HermeticPythonTarget(HermeticCustomTarget): + + def __init__(self, custom_target: T.Optional[HermeticCustomTarget] = None, host_tools_config: T.Dict[str, T.Any] = None): + super().__init__() + self.main: str = '' + self.imports: T.List[str] = [] + self.version: T.Dict[T.Any, T.Any] = {} + self.libs: T.List[str] = [] + if custom_target is None: + return + + self.main = os.path.basename(str(custom_target.python_script)) + self.name = custom_target.python_script_target_name + self.subdir = custom_target.subdir + + self.srcs = [self.main] + [s for s in custom_target.depend_files if s.endswith('.py')] + self.srcs = sorted(list(set(self.srcs))) + + if host_tools_config: + tool_config = host_tools_config.get('python3', {}) or host_tools_config.get('python', {}) + self.libs.extend(tool_config.get('dependencies', [])) + + self.out = custom_target.out.copy() + self.export_include_dirs = custom_target.export_include_dirs.copy() + +class ToolchainFactory: + def __init__(self, toolchain_config: T.Dict[str, T.Any], for_machine: MachineChoice, info: MachineInfo): + self.config = toolchain_config + self.for_machine = for_machine + self.info = info + self.linkers = self._create_linkers() + + def _create_linkers(self) -> T.Dict[str, GnuBFDDynamicLinker]: + linkers = {} + for name, conf in self.config.get('linkers', {}).items(): + if conf['type'] == 'gnu-like': + linker = GnuBFDDynamicLinker(['/dev/null/ld'], self.for_machine, '-Wl,', []) + linker.id = name + linkers[name] = linker + return linkers + + def get_linker(self, name: str) -> GnuBFDDynamicLinker: + return self.linkers.get(name) + + def create_compiler(self, lang: str) -> T.Any: + conf = self.config.get(lang) + if not conf: + return None + + linker = self.get_linker(conf['linker']) + compiler_type = conf['type'] + version = conf['version'] + exelist = [f'/dev/null/{compiler_type}'] + + compiler = None + if compiler_type == 'clang': + compiler = ClangCCompiler([], exelist, version, self.for_machine, True, self.info, linker=linker, full_version=version) + elif compiler_type == 'clang++': + compiler = ClangCPPCompiler([], exelist, version, self.for_machine, True, self.info, linker=linker, full_version=version) + elif compiler_type == 'rustc': + compiler = RustCompiler(exelist, version, self.for_machine, True, self.info, linker=linker, full_version=version) + + if compiler: + def find_library(libname, env, *args, **kwargs): + return dependency_base.NotFoundDependency(libname, env) + compiler.find_library = find_library + + original_get_options = compiler.get_options + def new_get_options(self) -> 'options.MutableKeyedOptionDictType': + opts = original_get_options() + key = self.form_compileropt_key('args') + opts[key] = options.UserStringArrayOption( + self.make_option_name(key), + 'Extra arguments passed to the compiler', + [], + ) + key = self.form_compileropt_key('link_args') + opts[key] = options.UserStringArrayOption( + self.make_option_name(key), + 'Extra arguments passed to the linker', + [], + ) + return opts + compiler.get_options = new_get_options.__get__(compiler) + compiler.sanity_check = lambda work_dir, env: None + compiler.get_default_include_dirs = lambda: [] + compiler.get_define = lambda *args, **kwargs: ('', False) + compiler.cross_compute_int = lambda *args, **kwargs: 0 + + compiles_results = conf.get('compiles', {}) + compiler.compiles = lambda snippet, name, **kwargs: (compiles_results.get(name, True), True) + + links_results = conf.get('links', {}) + compiler.links = lambda snippet, name, **kwargs: (links_results.get(name, True), True) + + check_header_results = conf.get('check_header', {}) + compiler.check_header = lambda header, *args, **kwargs: (check_header_results.get(header, True), True) + + has_header_symbol_results = conf.get('has_header_symbol', {}) + def has_header_symbol(header, symbol, *args, **kwargs): + header_symbols = has_header_symbol_results.get(header, {}) + return (header_symbols.get(symbol, True), True) + compiler.has_header_symbol = has_header_symbol + + has_function_results = conf.get('has_function', {}) + compiler.has_function = lambda func, *args, **kwargs: (has_function_results.get(func, True), True) + + has_member_results = conf.get('has_member', {}) + def has_member(typename, member, prefix): + type_members = has_member_results.get(typename, {}) + return type_members.get(member, True) + compiler.has_member = has_member + + supported_args = conf.get('supported_arguments', []) + compiler.get_supported_arguments = lambda args: [a for a in args if a in supported_args] + + supported_link_args = conf.get('supported_link_arguments', []) + compiler.get_supported_link_arguments = lambda args: [a for a in args if a in supported_link_args] + + has_function_attribute_results = conf.get('has_function_attribute', {}) + compiler.has_function_attribute = lambda attribute: has_function_attribute_results.get(attribute, True) + + get_supported_function_attributes_results = conf.get('has_function_attribute', {}) + compiler.get_supported_function_attributes = lambda attributes: [a for a in attributes if a in get_supported_function_attributes_results] + + @contextlib.contextmanager + def mock_compile(*args, **kwargs): + yield CompileResult('', '', [], 0, '') + + compiler.compile = mock_compile + if isinstance(compiler, RustCompiler): + compiler.native_static_libs = [] + + return compiler + +class MachineHolder(InterpreterObject): + def __init__(self, machine_info): + super().__init__() + self.holder = machine_info + + @InterpreterObject.method('system') + @noKwargs + def system_method(self, args, kwargs): + return self.holder.system + + @InterpreterObject.method('cpu_family') + @noKwargs + def cpu_family_method(self, args, kwargs): + return self.holder.cpu_family + + @InterpreterObject.method('cpu') + @noKwargs + def cpu_method(self, args, kwargs): + return self.holder.cpu + +class HermeticInterpreter(interpreter.Interpreter): + def __init__(self, build, config, **kwargs): + super().__init__(build, **kwargs) + self.config = config + self.assignment_tracker: T.Dict[str, HermeticAssignment] = {} + self.hermetic_includes: T.List[HermeticIncludeDirectory] = [] + self.hermetic_project_args: T.Dict[str, T.Dict[str, T.List[str]]] = {} + self.variables['host_machine'] = MachineHolder(self.build.environment.machines.host) + self.variables['build_machine'] = MachineHolder(self.build.environment.machines.build) + self.variables['target_machine'] = MachineHolder(self.build.environment.machines.target) + self.funcs['add_project_arguments'] = self.func_add_project_arguments + + @noArgsFlattening + def func_add_project_arguments(self, node: mparser.BaseNode, args: T.List[T.Any], kwargs: T.Dict[str, T.Any]): + args_flat = [] + for arg in args: + if isinstance(arg, list): + args_flat.extend(arg) + else: + args_flat.append(arg) + + args_str = [str(x) for x in args_flat] + + # This is not entirely correct, as it doesn't respect `native:` kwarg. + # But for non-cross builds it should be fine. + langs = kwargs.get('language', []) + if not isinstance(langs, list): + langs = [langs] + + for lang in langs: + self.hermetic_project_args.setdefault(self.subproject, {}).setdefault(lang, []).extend(args_str) + + def _redetect_machines(self): + pass + + def assignment(self, node: mparser.AssignmentNode): + var_name = node.var_name.value + super().assignment(node) + value_holder = self.variables[var_name] + + raw_obj = value_holder + if isinstance(value_holder, ObjectHolder): + raw_obj = value_holder.held_object + + if isinstance(raw_obj, build.IncludeDirs): + hermetic_inc = HermeticIncludeDirectory(raw_obj, var_name) + self.hermetic_includes.append(hermetic_inc) + + stable_id = get_stable_id(raw_obj) + if stable_id: + self.assignment_tracker[stable_id] = HermeticAssignment(var_name, self.subdir) + + def func_dependency(self, node, args, kwargs): + dep_name = args[0] if args else kwargs.get('name', 'unnamed') + if dep_name in self.config.dependencies: + dep_info = self.config.dependencies[dep_name] + + dep = dependency_base.ExternalDependency('system', self.environment, kwargs) + dep.is_found = True + dep.version = dep_info[0].get('version', 'hermetic') if dep_info else 'hermetic' + + configtool_checks = dep_info[0].get('configtool', {}) if dep_info else {} + pkgconfig_checks = dep_info[0].get('pkgconfig', {}) if dep_info else {} + def get_variable(*args, **kwargs): + ct_var = kwargs.get('configtool') + if ct_var and ct_var in configtool_checks: + return configtool_checks[ct_var] + pc_var = kwargs.get('pkgconfig') + if pc_var and pc_var in pkgconfig_checks: + return pkgconfig_checks[pc_var] + return None + dep.get_variable = get_variable + + for d in dep_info: + dep.name = d.get('target_name') + target_type = d.get('target_type') + + if target_type == 'STATIC_LIBRARY': + dep.static = True + + return dep + + return dependency_base.NotFoundDependency(dep_name, self.environment) + +class HermeticConfig: + def __init__(self, config_file: Path, toolchain_file: T.Optional[Path] = None): + self._path: Path = config_file + self._toolchain_path: T.Optional[Path] = toolchain_file + self._toml_data: dict[str, T.Any] = {} + try: + with open(self._path, "rb") as f: + self._toml_data = tomllib.load(f) + if self._toolchain_path: + with open(self._toolchain_path, "rb") as f: + toolchain_data = tomllib.load(f) + self._toml_data.update(toolchain_data) + except Exception as e: + exit(f'Error trying to open config file: {e}') + + @property + def build(self): + return self._toml_data.get('build') + + @property + def project_config(self): + return self._toml_data.get('project_config', {}) + + @property + def host_machine(self) -> dict[str, str]: + return self.project_config.get('host_machine', {}) + + @property + def build_machine(self) -> dict[str, str]: + return self.project_config.get('build_machine', {}) + + @property + def target_machine(self) -> dict[str, str]: + return self.project_config.get('target_machine', {}) + + @property + def meson_options(self): + return self.project_config.get('meson_options', {}) + + @property + def dependencies(self): + return self.project_config.get('dependencies', {}) + + @property + def host_tools(self): + return self._toml_data.get('host_tools', {}) + + @property + def toolchain(self): + return self._toml_data.get('toolchain', {}) + + @property + def copyright(self): + return self._toml_data.get('copyright', {}) + + def project_options(self) -> list[str]: + return [f'{k}={str(v).lower()}' for k, v in self.meson_options.items()] + +class DefaultCMDOptions(enum.Enum): + SOURCE_DIR = os.getcwd() + BUILD_DIR = os.getcwd() + '/hermetic-build' + CROSS_FILE = [] + NATIVE_FILE = [] + BACKEND = 'hermetic' + +class Generator: + def __init__(self, build_system: str, output_dir: str, hermetic_state: HermeticState, config: 'HermeticConfig'): + self.build_system = build_system + self.output_dir = output_dir + self.hermetic_state = hermetic_state + self.config = config + self.jinja_env = Environment(keep_trailing_newline=True) + self.jinja_env.loader = FileSystemLoader(Path(__file__).parent.resolve() / f'hermetic_templates/{build_system}') + + def generate(self): + raise NotImplementedError + + def write_build_file(self, subdir: str, build_file_name: str, content: str): + output_path = Path(self.output_dir) / subdir + output_path.mkdir(parents=True, exist_ok=True) + (output_path / build_file_name).write_text(content, encoding='utf-8') diff --git a/tools/hermetic/meson2hermetic.py b/tools/hermetic/meson2hermetic.py new file mode 100644 index 000000000..a6cd9cdc3 --- /dev/null +++ b/tools/hermetic/meson2hermetic.py @@ -0,0 +1,218 @@ +#!/usr/bin/env python3 +# SPDX-License-Identifier: Apache-2.0 +# Copyright 2024 The Meson Authors + +''' +Converts meson build files to a hermetic build system (Soong, Bazel) +Emits the hermetic build files directly in directory. + +Intended Usage: + Within the target directory run command: + ``` + python ~///tools/hermetic/meson2hermetic.py --config=/path/to/aosp.toml + ``` + +This scripts requires python 3.11 to run. + +Dependencies Used: + - jinja2 +''' + +import argparse +import typing as T +import os +from pathlib import Path +import tempfile + +from mesonbuild import build, environment, coredata, mlog +from mesonbuild.options import OptionKey +from mesonbuild.utils.universal import set_meson_command, File +from mesonbuild.mesonlib import MachineChoice + +from tools.hermetic.hermetic_types import ( + ToolchainFactory, + HermeticInterpreter, + HermeticConfig, + HermeticState, + HermeticStaticLibrary, + HermeticSharedLibrary, + HermeticCustomTarget, + HermeticIncludeDirectory, + HermeticFlag, +) +from tools.hermetic.soong_generator import SoongGenerator +from tools.hermetic.bazel_generator import BazelGenerator + +if T.TYPE_CHECKING: + from tools.hermetic.hermetic_types import CMDOptions + +def create_hermetic_state(b: build.Build, intr: HermeticInterpreter) -> HermeticState: + hermetic_state = HermeticState() + hermetic_state.c_std = intr.environment.coredata.optstore.get_value_for(OptionKey('c_std')) + hermetic_state.cpp_std = intr.environment.coredata.optstore.get_value_for(OptionKey('cpp_std')) + hermetic_state.root_subdir = '' + + hermetic_state.include_directories.extend(intr.hermetic_includes) + + static_libs = [] + shared_libs = [] + targets = b.get_build_targets() + for target in targets: + library = targets[target] + if isinstance(library, build.StaticLibrary): + static_libs.append(library) + elif isinstance(library, build.SharedLibrary): + shared_libs.append(library) + + for lib in static_libs: + hermetic_sl = HermeticStaticLibrary() + c_flag, cpp_flag = hermetic_sl.convert_from_meson(lib, intr.assignment_tracker, b.projects) + hermetic_state.static_libraries.append(hermetic_sl) + if c_flag and c_flag.name not in hermetic_state.flags: + hermetic_state.flags[c_flag.name] = c_flag + if cpp_flag and cpp_flag.name not in hermetic_state.flags: + hermetic_state.flags[cpp_flag.name] = cpp_flag + + for subproject, args in intr.hermetic_project_args.items(): + project_name = intr.build.projects[subproject] + c_args = args.get('c', []) + if c_args: + flag = HermeticFlag(f'{project_name}_c_project_args', '') + flag.cflags = c_args + hermetic_state.flags[flag.name] = flag + cpp_args = args.get('cpp', []) + if cpp_args: + flag = HermeticFlag(f'{project_name}_cpp_project_args', '') + flag.cppflags = cpp_args + hermetic_state.flags[flag.name] = flag + + for lib in shared_libs: + hermetic_sl = HermeticSharedLibrary() + c_flag, cpp_flag = hermetic_sl.convert_from_meson(lib, intr.assignment_tracker, b.projects) + hermetic_state.shared_libraries.append(hermetic_sl) + if c_flag and c_flag.name not in hermetic_state.flags: + hermetic_state.flags[c_flag.name] = c_flag + if cpp_flag and cpp_flag.name not in hermetic_state.flags: + hermetic_state.flags[cpp_flag.name] = cpp_flag + + targets = b.get_custom_targets() + host_tools_config = intr.config.host_tools + processed_python_targets = set() + for target in targets: + custom_target = targets[target] + hermetic_ct = HermeticCustomTarget() + hermetic_ct.convert_from_meson(custom_target) + + new_srcs = [] + for i, src in enumerate(custom_target.sources): + original_src = hermetic_ct.srcs[i] if i < len(hermetic_ct.srcs) else '' + if isinstance(src, File): + if src.subdir != custom_target.subdir: + fg_name = os.path.basename(src.fname).replace('.', '_') + if fg_name not in [fg['name'] for fg in hermetic_state.filegroups.get(src.subdir, [])]: + hermetic_state.filegroups.setdefault(src.subdir, []).append({ + 'name': fg_name, + 'src': src.fname, + }) + new_srcs.append(f':{fg_name}') + for j, part in enumerate(hermetic_ct.cmd_parts): + if part == ('location', src.fname, src.fname): + hermetic_ct.cmd_parts[j] = ('location', f':{fg_name}', None) + elif original_src: + new_srcs.append(original_src) + hermetic_ct.srcs = new_srcs + + hermetic_state.custom_targets.append(hermetic_ct) + + python_target = hermetic_ct.emit_python_target(host_tools_config) + if python_target: + if python_target.name not in processed_python_targets: + hermetic_state.python_targets.append(python_target) + processed_python_targets.add(python_target.name) + + return hermetic_state + +def generate(config: HermeticConfig, cmd_opts: argparse.Namespace): + env = environment.Environment(cmd_opts.sourcedir, cmd_opts.builddir, cmd_opts) + + if config.host_machine: + env.machines.host = env.machines.host.from_literal(config.host_machine) + if config.build_machine: + env.machines.build = env.machines.build.from_literal(config.build_machine) + if config.target_machine: + env.machines.target = env.machines.target.from_literal(config.target_machine) + + factory = ToolchainFactory(config.toolchain, MachineChoice.HOST, env.machines.host) + env.coredata.compilers[MachineChoice.HOST]['c'] = factory.create_compiler('c') + env.coredata.compilers[MachineChoice.HOST]['cpp'] = factory.create_compiler('cpp') + env.coredata.compilers[MachineChoice.HOST]['rust'] = factory.create_compiler('rust') + + b = build.Build(env) + + if env.is_cross_build(): + pass + + user_defined_options = T.cast('CMDOptions', argparse.Namespace(**vars(cmd_opts))) + d = {OptionKey.from_string(k): v for k, v in config.meson_options.items()} + d.update(user_defined_options.cmd_line_options) + user_defined_options.cmd_line_options = d + + intr = HermeticInterpreter(b, config, user_defined_options=user_defined_options) + + try: + print(f'Interpreting {cmd_opts.sourcedir}/meson.build ...') + intr.run() + except Exception as e: + raise e + + hermetic_state = create_hermetic_state(b, intr) + + build_system = config.build + if not build_system: + exit('Build system not specified in config file.') + + output_dir = cmd_opts.output_dir if cmd_opts.output_dir else cmd_opts.project_dir + + generator = None + if build_system == 'soong': + generator = SoongGenerator(output_dir, hermetic_state, config) + elif build_system == 'bazel': + generator = BazelGenerator(output_dir, hermetic_state, config) + else: + exit(f'Build system {build_system} not supported.') + + generator.generate() + +def create_default_options(args: argparse.Namespace) -> argparse.Namespace: + options = T.cast('CMDOptions', args) + options.sourcedir = args.project_dir + options.builddir = os.path.join(args.project_dir, 'hermetic-build') + options.cross_file = [] + options.backend = 'hermetic' + options.projectoptions = [] + options.native_file = [] + options.cmd_line_options = {} + return options + +def main(): + parser = argparse.ArgumentParser(description='Generates hermetic build files from meson') + parser.add_argument('--config', required=True, help='The path to a valid config file (toml).') + parser.add_argument('--toolchain', required=True, help='The path to a valid toolchain config file (toml).') + parser.add_argument('--project-dir', default=os.getcwd(), help='The path to the project directory.') + parser.add_argument('--output-dir', help='The path to the output directory for generated files. Defaults to the project directory.') + + args = parser.parse_args() + config = HermeticConfig(Path(args.config), Path(args.toolchain)) + + mlog.set_quiet() + set_meson_command('NULL') + + options = create_default_options(args) + options.projectoptions = config.project_options() + coredata.parse_cmd_line_options(options) + with tempfile.TemporaryDirectory() as temp_build_dir: + options.builddir = temp_build_dir + generate(config, options) + +if __name__ == '__main__': + main() diff --git a/tools/hermetic/soong_generator.py b/tools/hermetic/soong_generator.py new file mode 100644 index 000000000..8a1b1bc32 --- /dev/null +++ b/tools/hermetic/soong_generator.py @@ -0,0 +1,149 @@ +#!/usr/bin/env python3 +# SPDX-License-Identifier: Apache-2.0 +# Copyright 2024 The Meson Authors + +import typing as T +from tools.hermetic.hermetic_types import ( + Generator, + HermeticConfig, + HermeticCustomTarget, + HermeticFlag, + HermeticIncludeDirectory, + HermeticPythonTarget, + HermeticStaticLibrary, + HermeticState, + RustABI, +) + +BUILD_FILES = { + 'soong': 'Android.bp', +} + +class SoongCustomTarget(HermeticCustomTarget): + def __init__(self, target: HermeticCustomTarget): + self.__dict__.update(target.__dict__) + self.cmd = self._get_cmd() + + def _get_cmd(self) -> str: + final_cmd = [] + for p in self.cmd_parts: + if p == 'gen_dir': + final_cmd.append('$(genDir)') + elif isinstance(p, str): + final_cmd.append(p) + elif isinstance(p, tuple): + if p[0] == 'location': + final_cmd.append(f'$(location {p[1]})') + elif p[0] == 'input': + final_cmd.append(f'$(location {p[2]})') + elif p[0] == 'output': + final_cmd.append(f'$(location {p[2]})') + elif p[0] == 'placeholder': + if p[1].endswith('.h'): + final_cmd.append(f'"$(genDir)/{p[1]}"') + else: + final_cmd.append('"$(genDir)/placeholder.c"') + return ' '.join(final_cmd) + +class SoongGenerator(Generator): + def __init__(self, output_dir: str, hermetic_state: HermeticState, config: 'HermeticConfig'): + super().__init__('soong', output_dir, hermetic_state, config) + + def generate(self): + copyright_template = self.jinja_env.get_template('copyright.tmpl') + copyright_string = copyright_template.render(**self.config.copyright) + + hermetic_targets = {} + for t in self.hermetic_state.static_libraries: + hermetic_targets.setdefault(t.subdir, []).append(t) + for t in self.hermetic_state.shared_libraries: + hermetic_targets.setdefault(t.subdir, []).append(t) + for t in self.hermetic_state.custom_targets: + if t.generated_headers and t.generated_sources: + # Split into two targets + header_target = SoongCustomTarget(t) + header_target.name = f'{t.name}_header' + header_target.out = t.generated_headers + + # Modify cmd_parts for header_target + new_cmd_parts = [] + for part in t.cmd_parts: + if isinstance(part, tuple) and part[0] == 'output': + # part is ('output', index, filename) + if part[2] in t.generated_sources: + # This is a source output, redirect it + new_cmd_parts.append(('placeholder', part[2])) + else: + new_cmd_parts.append(part) + else: + new_cmd_parts.append(part) + header_target.cmd_parts = new_cmd_parts + header_target.cmd = header_target._get_cmd() + + source_target = SoongCustomTarget(t) + source_target.name = f'{t.name}_impl' + source_target.out = t.generated_sources + + # Modify cmd_parts for source_target + new_cmd_parts = [] + for part in t.cmd_parts: + if isinstance(part, tuple) and part[0] == 'output': + if part[2] in t.generated_headers: + # This is a header output, redirect it + new_cmd_parts.append(('placeholder', part[2])) + else: + new_cmd_parts.append(part) + else: + new_cmd_parts.append(part) + source_target.cmd_parts = new_cmd_parts + source_target.cmd = source_target._get_cmd() + + hermetic_targets.setdefault(t.subdir, []).append(header_target) + hermetic_targets.setdefault(t.subdir, []).append(source_target) + else: + hermetic_targets.setdefault(t.subdir, []).append(SoongCustomTarget(t)) + for t in self.hermetic_state.python_targets: + hermetic_targets.setdefault(t.subdir, []).append(t) + for t in self.hermetic_state.include_directories: + hermetic_targets.setdefault(t.subdir, []).append(t) + for t in self.hermetic_state.flags.values(): + hermetic_targets.setdefault(t.subdir, []).append(t) + + for subdir, targets in hermetic_targets.items(): + build_file_name = BUILD_FILES.get(self.build_system) + if not build_file_name: + exit(f'Build system {self.build_system} not supported.') + + targets.sort(key=lambda t: ( + 0 if isinstance(t, HermeticPythonTarget) else + 1 if isinstance(t, HermeticCustomTarget) else + 2 if isinstance(t, HermeticIncludeDirectory) else + 3 if isinstance(t, HermeticFlag) else + 4, t.name + )) + + content = copyright_string + if subdir in self.hermetic_state.filegroups: + template = self.jinja_env.get_template('filegroup.txt') + for fg in self.hermetic_state.filegroups[subdir]: + content += template.render(fg=fg) + + for i, target in enumerate(targets): + if isinstance(target, HermeticIncludeDirectory): + template_name = 'include.txt' + elif isinstance(target, HermeticFlag): + template_name = 'flag.txt' + elif isinstance(target, HermeticStaticLibrary) and target.rust_abi != RustABI.NONE: + if target.rust_abi == RustABI.RUST: + template_name = 'rustlibrary.txt' + else: + template_name = 'rustffi.txt' + else: + template_name = f'{type(target).__name__.replace("Hermetic", "").replace("Soong", "").lower()}.txt' + try: + template = self.jinja_env.get_template(template_name) + content += template.render(target=target, state=self.hermetic_state) + except Exception: + print(f'Could not find template for {template_name}') + + self.write_build_file(subdir, build_file_name, content)