goldfish-opengl: be more platform agnostic with
- enable HostVisibleVirtualization on Linux builds
- don't need to #ifdef mRenderNodeFd since it's just an int
BUG=202552093
TEST=./deqp-vk
Change-Id: Iafa9e60a1b10686e01c7e567166b3d659d024578
diff --git a/system/vulkan_enc/Android.mk b/system/vulkan_enc/Android.mk
index 3fa99df..583d3bf 100644
--- a/system/vulkan_enc/Android.mk
+++ b/system/vulkan_enc/Android.mk
@@ -44,6 +44,7 @@
-fstrict-aliasing \
-DVK_USE_PLATFORM_ANDROID_KHR \
-DVK_NO_PROTOTYPES \
+ -DVIRTIO_GPU
LOCAL_SRC_FILES := AndroidHardwareBuffer.cpp \
CommandBufferStagingStream.cpp \
diff --git a/system/vulkan_enc/CMakeLists.txt b/system/vulkan_enc/CMakeLists.txt
index bf6c47f..3584939 100644
--- a/system/vulkan_enc/CMakeLists.txt
+++ b/system/vulkan_enc/CMakeLists.txt
@@ -1,10 +1,10 @@
# This is an autogenerated file! Do not edit!
# instead run make from .../device/generic/goldfish-opengl
# which will re-generate this file.
-android_validate_sha256("${GOLDFISH_DEVICE_ROOT}/system/vulkan_enc/Android.mk" "b1d2aa0910307fc5084d14e06fee02a540235b844672aeefa772327651bff9b6")
+android_validate_sha256("${GOLDFISH_DEVICE_ROOT}/system/vulkan_enc/Android.mk" "c24e604f7cd8a39732ec2aae658ded8a919a8e566deee75b74389ccd718e3a36")
set(vulkan_enc_src AndroidHardwareBuffer.cpp CommandBufferStagingStream.cpp DescriptorSetVirtualization.cpp HostVisibleMemoryVirtualization.cpp Resources.cpp Validation.cpp VulkanStreamGuest.cpp VulkanHandleMapping.cpp ResourceTracker.cpp VkEncoder.cpp goldfish_vk_extension_structs_guest.cpp goldfish_vk_marshaling_guest.cpp goldfish_vk_reserved_marshaling_guest.cpp goldfish_vk_deepcopy_guest.cpp goldfish_vk_counting_guest.cpp goldfish_vk_handlemap_guest.cpp goldfish_vk_transform_guest.cpp func_table.cpp)
android_add_library(TARGET vulkan_enc SHARED LICENSE Apache-2.0 SRC AndroidHardwareBuffer.cpp CommandBufferStagingStream.cpp DescriptorSetVirtualization.cpp HostVisibleMemoryVirtualization.cpp Resources.cpp Validation.cpp VulkanStreamGuest.cpp VulkanHandleMapping.cpp ResourceTracker.cpp VkEncoder.cpp goldfish_vk_extension_structs_guest.cpp goldfish_vk_marshaling_guest.cpp goldfish_vk_reserved_marshaling_guest.cpp goldfish_vk_deepcopy_guest.cpp goldfish_vk_counting_guest.cpp goldfish_vk_handlemap_guest.cpp goldfish_vk_transform_guest.cpp func_table.cpp)
target_include_directories(vulkan_enc PRIVATE ${GOLDFISH_DEVICE_ROOT}/shared/GoldfishAddressSpace/include ${GOLDFISH_DEVICE_ROOT}/system/renderControl_enc ${GOLDFISH_DEVICE_ROOT}/shared/OpenglCodecCommon ${GOLDFISH_DEVICE_ROOT}/android-emu ${GOLDFISH_DEVICE_ROOT}/shared/qemupipe/include-types ${GOLDFISH_DEVICE_ROOT}/shared/qemupipe/include ${GOLDFISH_DEVICE_ROOT}/system/vulkan_enc ${GOLDFISH_DEVICE_ROOT}/./host/include/libOpenglRender ${GOLDFISH_DEVICE_ROOT}/./system/include ${GOLDFISH_DEVICE_ROOT}/./../../../external/qemu/android/android-emugl/guest ${GOLDFISH_DEVICE_ROOT}/./../../../external/qemu/android/android-emugl/host/include ${GOLDFISH_DEVICE_ROOT}/./../../../external/qemu/android/android-emugl/host/include/vulkan)
-target_compile_definitions(vulkan_enc PRIVATE "-DPLATFORM_SDK_VERSION=29" "-DGOLDFISH_HIDL_GRALLOC" "-DEMULATOR_OPENGL_POST_O=1" "-DHOST_BUILD" "-DANDROID" "-DGL_GLEXT_PROTOTYPES" "-DPAGE_SIZE=4096" "-DGFXSTREAM" "-DLOG_TAG=\"goldfish_vulkan\"" "-DVK_ANDROID_native_buffer" "-DVK_EXT_device_memory_report" "-DVK_GOOGLE_gfxstream" "-DVK_USE_PLATFORM_ANDROID_KHR" "-DVK_NO_PROTOTYPES" "-D__ANDROID_API__=28")
+target_compile_definitions(vulkan_enc PRIVATE "-DPLATFORM_SDK_VERSION=29" "-DGOLDFISH_HIDL_GRALLOC" "-DEMULATOR_OPENGL_POST_O=1" "-DHOST_BUILD" "-DANDROID" "-DGL_GLEXT_PROTOTYPES" "-DPAGE_SIZE=4096" "-DGFXSTREAM" "-DLOG_TAG=\"goldfish_vulkan\"" "-DVK_ANDROID_native_buffer" "-DVK_EXT_device_memory_report" "-DVK_GOOGLE_gfxstream" "-DVK_USE_PLATFORM_ANDROID_KHR" "-DVK_NO_PROTOTYPES" "-DVIRTIO_GPU" "-D__ANDROID_API__=28")
target_compile_options(vulkan_enc PRIVATE "-fvisibility=default" "-Wno-unused-parameter" "-Wno-missing-field-initializers" "-Werror" "-fstrict-aliasing")
target_link_libraries(vulkan_enc PRIVATE gui log android-emu-shared _renderControl_enc OpenglCodecCommon_host cutils utils androidemu PRIVATE GoldfishAddressSpace_host qemupipe_host)
\ No newline at end of file
diff --git a/system/vulkan_enc/ResourceTracker.cpp b/system/vulkan_enc/ResourceTracker.cpp
index 75db67e..2c38dad 100644
--- a/system/vulkan_enc/ResourceTracker.cpp
+++ b/system/vulkan_enc/ResourceTracker.cpp
@@ -68,11 +68,6 @@
#include "../egl/goldfish_sync.h"
#include "AndroidHardwareBuffer.h"
-#ifndef HOST_BUILD
-#include "virtgpu_drm.h"
-#include <xf86drm.h>
-#endif
-
#else
#include <android/hardware_buffer.h>
@@ -144,13 +139,17 @@
#include <stdlib.h>
#include <sync/sync.h>
-#ifdef VK_USE_PLATFORM_ANDROID_KHR
+#if defined(__ANDROID__) || defined(__linux__)
#include <sys/mman.h>
+#include <unistd.h>
#include <sys/syscall.h>
#ifdef HOST_BUILD
#include "android/utils/tempfile.h"
+#else
+#include "virtgpu_drm.h"
+#include <xf86drm.h>
#endif
static inline int
@@ -163,8 +162,9 @@
return syscall(SYS_memfd_create, name, flags);
#endif
}
+
#define memfd_create inline_memfd_create
-#endif // !VK_USE_PLATFORM_ANDROID_KHR
+#endif
#define RESOURCE_TRACKER_DEBUG 0
@@ -1048,7 +1048,7 @@
if (mFeatureInfo->hasVulkanQueueSubmitWithCommands) {
ResourceTracker::streamFeatureBits |= VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
}
-#if !defined(HOST_BUILD) && defined(VK_USE_PLATFORM_ANDROID_KHR)
+#if !defined(HOST_BUILD) && defined(VIRTIO_GPU)
if (mFeatureInfo->hasVirtioGpuNext) {
ALOGD("%s: has virtio-gpu-next; create auxiliary rendernode\n", __func__);
mRendernodeFd = drmOpenRender(128 /* RENDERNODE_MINOR */);
@@ -3715,7 +3715,7 @@
(unsigned long long)directMappedAddr);
mLock.lock();
} else if (mFeatureInfo->hasVirtioGpuNext) {
-#if !defined(HOST_BUILD) && defined(VK_USE_PLATFORM_ANDROID_KHR)
+#if !defined(HOST_BUILD) && defined(VIRTIO_GPU)
uint64_t hvaSizeId[3];
int rendernodeFdForMem = drmOpenRender(128 /* RENDERNODE_MINOR */);
@@ -7910,9 +7910,7 @@
std::vector<VkExtensionProperties> mHostDeviceExtensions;
int mSyncDeviceFd = -1;
-#ifdef VK_USE_PLATFORM_ANDROID_KHR
int mRendernodeFd = -1;
-#endif
#ifdef VK_USE_PLATFORM_FUCHSIA
fidl::WireSyncClient<fuchsia_hardware_goldfish::ControlDevice>
diff --git a/system/vulkan_enc/meson.build b/system/vulkan_enc/meson.build
index e7a8280..ab53b6a 100644
--- a/system/vulkan_enc/meson.build
+++ b/system/vulkan_enc/meson.build
@@ -27,5 +27,6 @@
cpp_args: cpp_args,
include_directories: [inc_android_emu, inc_host, inc_android_compat,
inc_opengl_codec, inc_render_enc,
- inc_goldfish_address_space]
+ inc_goldfish_address_space],
+ dependencies: dependency('libdrm'),
)