// // Copyright (C) 2018 The Android Open Source Project // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // package { // http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // the below license kinds from "external_swiftshader_license": // SPDX-license-identifier-Apache-2.0 // SPDX-license-identifier-BSD default_applicable_licenses: ["external_swiftshader_license"], } cc_defaults { name: "libswiftshadervk_llvm_defaults", host_supported: true, header_libs: [ "swiftshader_platform_headers", ], srcs: [ "Reactor/Assert.cpp", "Reactor/CPUID.cpp", "Reactor/Debug.cpp", "Reactor/ExecutableMemory.cpp", "Reactor/LLVMJIT.cpp", "Reactor/LLVMReactor.cpp", "Reactor/Pragma.cpp", "Reactor/Reactor.cpp", "Reactor/SIMD.cpp", ], cflags: [ "-DREACTOR_ANONYMOUS_MMAP_NAME=swiftshader_jit", "-Wno-unused-parameter", "-Wno-implicit-fallthrough", ], static_libs: [ "libLLVM16_swiftshader", ], shared_libs: [ "libcutils", "liblog", ], } cc_library_static { name: "libswiftshadervk_llvm", vendor: true, defaults: [ "libswiftshadervk_llvm_defaults" ], } cc_library_static { name: "libswiftshadervk_llvm_debug", vendor: true, defaults: [ "libswiftshadervk_llvm_defaults" ], cflags: [ "-UNDEBUG", ], } genrule { name: "commit_header", out: ["commit.h"], tool_files: ["commit_id.py"], cmd: "$(location commit_id.py) gen $(genDir)/commit.h", } cc_defaults { name: "libvk_swiftshader_defaults", host_supported: true, vendor: true, defaults: [ "swiftshader_common" ], cflags: [ "-D_GNU_SOURCE", "-D__STDC_LIMIT_MACROS", "-D__STDC_CONSTANT_MACROS", "-D__STDC_FORMAT_MACROS", "-Wno-implicit-fallthrough", "-Wno-unused-parameter", "-Wno-unused-local-typedef", "-Wno-missing-field-initializers", // Enable to output commit hash when SwiftShader is initialized //"-DENABLE_BUILD_VERSION_OUTPUT", ], cppflags: [ "-Wno-sign-promo", "-Wno-non-virtual-dtor", ], ldflags: [ // -Bsymbolic binds symbol references to their global definitions within // a shared object, thereby preventing symbol preemption. "-Wl,-Bsymbolic", ], local_include_dirs: [ "Vulkan" ], generated_headers: [ "commit_header" ], target: { android: { relative_install_path: "hw", header_libs: [ "swiftshader_platform_headers", "vulkan_headers", "hwvulkan_headers", ], shared_libs: [ "libnativewindow", "libhardware", "libsync", "liblog", ], static_libs: [ "libarect", ], version_script: "Vulkan/android_vk_swiftshader.lds", }, host: { version_script: "Vulkan/android_host_vk_swiftshader.lds", }, }, } cc_library_static { name: "swiftshader_debug", host_supported: true, vendor_available: true, cflags: [ "-DLOG_TAG=\"swiftshader\"", ], srcs: [ "System/Debug.cpp", ], export_include_dirs: [ ".", ], shared_libs: [ "liblog", ], } cc_defaults { name: "libvk_swiftshader_common_defaults", cflags: [ "-DLOG_TAG=\"swiftshader\"", "-DSWIFTSHADER_ENABLE_ASTC", // TODO(b/150130101) "-DSWIFTSHADER_DEVICE_MEMORY_REPORT", ], srcs: [ "System/Build.cpp", "System/Configurator.cpp", "System/CPUID.cpp", "System/Half.cpp", "System/Linux/MemFd.cpp", "System/Math.cpp", "System/Memory.cpp", "System/Socket.cpp", "System/SwiftConfig.cpp", "System/Timer.cpp", "Device/*.cpp", "Pipeline/*.cpp", "Vulkan/libVulkan.cpp", "Vulkan/main.cpp", "Vulkan/VkBuffer.cpp", "Vulkan/VkBufferView.cpp", "Vulkan/VkCommandBuffer.cpp", "Vulkan/VkCommandPool.cpp", "Vulkan/VkDebugUtilsMessenger.cpp", "Vulkan/VkDescriptorPool.cpp", "Vulkan/VkDescriptorSet.cpp", "Vulkan/VkDescriptorSetLayout.cpp", "Vulkan/VkDescriptorUpdateTemplate.cpp", "Vulkan/VkDevice.cpp", "Vulkan/VkDeviceMemory.cpp", "Vulkan/VkDeviceMemoryExternalHost.cpp", "Vulkan/VkFormat.cpp", "Vulkan/VkFramebuffer.cpp", "Vulkan/VkGetProcAddress.cpp", "Vulkan/VkImage.cpp", "Vulkan/VkImageView.cpp", "Vulkan/VkInstance.cpp", "Vulkan/VkMemory.cpp", "Vulkan/VkPhysicalDevice.cpp", "Vulkan/VkPipelineCache.cpp", "Vulkan/VkPipeline.cpp", "Vulkan/VkPipelineLayout.cpp", "Vulkan/VkPromotedExtensions.cpp", "Vulkan/VkQueryPool.cpp", "Vulkan/VkQueue.cpp", "Vulkan/VkRenderPass.cpp", "Vulkan/VkSampler.cpp", "Vulkan/VkSemaphore.cpp", "Vulkan/VkShaderModule.cpp", "Vulkan/VkSpecializationInfo.cpp", "Vulkan/VkStringify.cpp", "Vulkan/VkTimelineSemaphore.cpp", "WSI/HeadlessSurfaceKHR.cpp", "WSI/VkSurfaceKHR.cpp", ], static_libs: [ "swiftshader_astc", "swiftshader_debug", "swiftshader_marl", "swiftshader_spirv-tools", ], include_dirs: [ "external/swiftshader/third_party/SPIRV-Headers/include", "external/swiftshader/include", ], target: { android: { srcs: [ "Vulkan/VkDeviceMemoryExternalAndroid.cpp", ], cflags: [ "-DSWIFTSHADER_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER", ], }, host: { srcs: [ "WSI/VkSwapchainKHR.cpp", ], cflags: [ "-DSWIFTSHADER_EXTERNAL_MEMORY_OPAQUE_FD", // Allocations which may be mapped into a KVM based virtual // machine must be page aligned. "-DSWIFTSHADER_DEVICE_MEMORY_ALLOCATION_ALIGNMENT=4096", ], }, }, } cc_library_shared { name: "vulkan.pastel", static_libs: [ "libswiftshadervk_llvm", "libLLVM16_swiftshader", ], target: { host: { strip: { keep_symbols_and_debug_frame: true, }, }, }, defaults: [ "libvk_swiftshader_common_defaults", "libvk_swiftshader_defaults" ], } cc_library_shared { name: "vulkan.pastel.debug", static_libs: [ "libswiftshadervk_llvm_debug", "libLLVM16_swiftshader_debug", ], cflags: [ "-UNDEBUG", "-g", "-O0", "-DDEFAULT_THREAD_COUNT=1", ], defaults: [ "libvk_swiftshader_common_defaults", "libvk_swiftshader_defaults", ], } filegroup { name: "swiftshader_icd_json_template", srcs: [ "Vulkan/vk_swiftshader_icd.json.tmpl", ], }