#-------------------------------------------------------------------------------
# Advanced emulator features
#-------------------------------------------------------------------------------

# GLPipeChecksum----------------------------------------------------------------
# For every GL call that transfers between host and guest, GLPipeChecksum = on
# will compute a checksum consisting of some function of the actual bit vector
# corresponding to the GL command, verifying that the same checksum shows up
# on both the host and guest. Violations of the checksum (mismatches) result
# in an abort() and crash report being sent.
#
# Currently, the checksum is mainly making sure that the command itself and all
# arrays passed through the pipe are of proper length.
GLPipeChecksum = on
# ------------------------------------------------------------------------------

# GrallocSync-------------------------------------------------------------------
# Most apps that display images do so through OpenGL, but there are some apps
# that write directly to gralloc color buffers. In our goldfish-driver gralloc
# implementation, which represents gralloc color buffers as host OpenGL color
# buffers.
#
# For example, in the camera app, the emulated webcam driver will pull frames
# to a gralloc color buffer directly, and then in another thread or process,
# the color buffer representing the camera frame preview could be posted
# onscreen.
#
# These operations aren't guaranteed to have their order preserved when arriving
# from the guest, and if executed on the host in the wrong order, we could
# end up with out of order webcam frames, for instance.
#
# GrallocSync = on adds synchronization to the host for this use case where apps
# directly write to gralloc color buffers and then post them.
# Gralloc sync disabled for now because it is making CTS sad.
GrallocSync = off
# ------------------------------------------------------------------------------

# GLAsyncSwap-------------------------------------------------------------------
# OpenGL apps in the guest present their contents indirectly through
# SurfaceFlinger. The goldfish driver's implementation of eglSwapBuffers is
# based on queuing the finished frame (buffer) to SurfaceFlinger.
# SurfaceFlinger then acquires that finished buffer from the OpenGL app,
# does the actual posting to the display (which may involve a call in turn
# to eglSwapBuffers, esp. if we are not using hardware composer),
# and releases the buffer, allowing the OpenGL app to dequeue a fresh
# buffer for whatever to draw next.
#
# The problem is that when we are using host GPU, the rubber meets the road #
# in the host not the guest (what the user sees is not due to any concrete
# action inside the guest, but due to the host GPU communicating with the host
# display), so it's not always clear what a "finished frame" means. In
# particular, the frame is not necessarily finished when the buffer is queued
# in the guest, depending on host driver quirks. So, posting unfinished or
# even older buffers to SurfaceFlinger will result in out of order frames.
#
# GLAsyncSwap = off pretends this issue doesn't exist and it's up to the host
# driver to properly synchronize upon calling rcFlushWindowColorBuffer.
# GLAsyncSwap = on uses the host GL driver's fence commands and fence fd's in
# the guest in order to have explicit signals of buffer swaps complete. This
# preserves frame ordering at a slight performance cost, but the cost is less
# than that of other solutions like calling glFinish() on the host.
# Disabled by default for now
GLAsyncSwap = off
# ------------------------------------------------------------------------------

# EncryptUserData---------------------------------------------------------------
# CTS requires that userdata be encrypted, at least for api23 and later. However
# for non Google images or older system images, this is not required or not
# implemted. Emulator will enable this feature only if the system says it supports
# encryption. It is on by default on the host, and according to the current rule,
# a feature is only on if both host and guest support it; so it effectively leaves
# to guest to decide.
EncryptUserData = on
# ------------------------------------------------------------------------------

# RefCountPipe------------------------------------------------------------------
# RefCount Pipe is a different approach to simplify the Color Buffer management
# on host. In guest, the handle returned by gralloc allocator can be passed around
# between processes through Binder. Android system ensures that the handle on both
# calling and receiving end willl be properly closed. Thus, when gralloc allocates
# buffer for the first time, we establish a Refcount pipe between guest and host,
# and assign its fd to the handle. In the desturctor of the handle, close the fd.
# Guest kernel will decide when to really close the fd and thus trigger the pipe's
# closing on host. On the host side, we only need to destroy the color buffer
# immediately and not worry about any reference counting at all. This approach will
# not only simplify the the logic between guest and host, but also reduce memory leaks.
RefCountPipe = on
# ------------------------------------------------------------------------------

# IntelPerformanceMonitoringUnit------------------------------------------------
# Some CTS tests (mainly SimplePerf) require that the CPU expose some kind of
# counters that can be used to measure CPU performance in cycles,
# cache hit/miss, etc.
# However, the use of this on the vCPU requires that the guest kernel be in
# a fairly recent state, otherwise the emulator will kernel panic on startup.
IntelPerformanceMonitoringUnit = on
# ------------------------------------------------------------------------------

# GLDMA-------------------------------------------------------------------------
# Video playback can approach 1080p60 and be solid 720p60 if we map guest memory
# to host and use it to perofrm color buffer updates, and perform YV12->RGB
# on the host as well, in an OpenGL shader.
GLDMA = on
# ------------------------------------------------------------------------------

# GLESDynamicVersion------------------------------------------------------------
# This feature attempts to detect the maximum supported GLES version depending on
# which OpenGL function pointers have been found on the GL libraries used
# on the host system. Different platforms / hardware + video driver setups can
# have different support.
# For example, OS X is not known to support GLES 3.1.
# If this feature is set to "off", the max supported GLES version is assumed to
# be <= 2 and also depend on the system image only (some images only support ES 1).
GLESDynamicVersion = off
# ------------------------------------------------------------------------------

# Wifi -------------------------------------------------------------------------
# This feature indicates that the system image and the emulator support Wifi.
# When this is enabled the network configuration of the system image will be
# significantly different and the emulator will send different network setup
# information via RIL.
Wifi = on

# ForceANGLE--------------------------------------------------------------------
# This feature attempts to default the renderer to ANGLE, but can be itself
# overridden by:
# -gpu command line argument
# UI setting
# The override (and others) are done through the UI, so the user is aware
# and if the user changes to a setting other than "auto", the user setting
# is respected.
ForceANGLE = off
# ------------------------------------------------------------------------------

# ForceSwiftshader--------------------------------------------------------------
# This feature attempts to default the renderer to Swiftshader. Otherwise,
# same behavior as ForceANGLE.
ForceSwiftshader = off
# ------------------------------------------------------------------------------

# PlayStoreImage ---------------------------------------------------------------
# The playstore image has CTS requirements that emulator should check and ensure
# Guest image will indicate whether it has it or not;
PlayStoreImage = on
# ------------------------------------------------------------------------------

# LogcatPipe ---------------------------------------------------------------
# The pipe based logcat is meant to replace the 'adb shell logcat'
# Guest image will indicate whether it has it or not;
LogcatPipe = on
# ------------------------------------------------------------------------------

# Hypervisor feature flags. Assumed mutually exclusive. If all flags are off,
# then we have:
# Mac/Win: HAXM
# Linux: KVM
# If a flag is on, then attempts are made to detect host support, and if there
# is support, then the hypervisor in question is actually used.
HYPERV = off
HVF = on
KVM = off
HAXM = off

# FastSnapshotV1 ---------------------------------------------------------------
# Enable the new implementation of snapshotting in the emulator and use it for
# quick boot.
FastSnapshotV1 = on
# ------------------------------------------------------------------------------

# ScreenRecording --------------------------------------------------------------
# Enables the host-side screen recording feature.
ScreenRecording = on
# ------------------------------------------------------------------------------

# VirtualScene -----------------------------------------------------------------
# Enables the host-side virtual scene feature.
VirtualScene = on

# VideoPlayback
# Enables the camera video playback feature.
VideoPlayback = off

# system as root  --------------------------------------------------------------
# Guest feature: when this is on, emulator should use system partition as root fs
# instead of using ramdisk as root fs.
SystemAsRoot = on

# IgnoreHostOpenGLErrors--------------------------------------------------------
# Don't query the host for OpenGL errors. Only use if rendering is OK for you
# already. Should decrease jank in UI by quite a bit.
IgnoreHostOpenGLErrors = off

# GenericSnapshotsUI------------------------------------------------------------
# Show the generic snapshots UI.
GenericSnapshotsUI = on

# AllowSnapshotMigration--------------------------------------------------------
# Skip snapshot file consistency checks, allowing for snapshot migration.
AllowSnapshotMigration = off

# WindowsOnDemandSnapshotLoad---------------------------------------------------
# On-demand snapshot load for Windows.
WindowsOnDemandSnapshotLoad = on

# Windows Hypervisor Platform---------------------------------------------------
# Allow WHPX
WindowsHypervisorPlatform = on

# Device Tree Blob--------------------------------------------------------------
KernelDeviceTreeBlobSupport = on

# Dynamic partition support --------------------------------------------------------------
DynamicPartition = on

# Location UI v2----------------------------------------------------------------
LocationUiV2 = on

# SnapshotAdb-------------------------------------------------------------------
SnapshotAdb = off

# QuickbootFileBacked-----------------------------------------------------------
QuickbootFileBacked = on

# HWComposer Host Composition---------------------------------------------------
HostComposition = on

# On-demand RAM load for snapshots----------------------------------------------
# Currently disabled due to issues with MemoryWatch and host side
# EFAULT's and recent guest kernels + Linux KVM
OnDemandSnapshotLoad = off

# WifiConfigurable--------------------------------------------------------------
WifiConfigurable = off

# Vulkan------------------------------------------------------------------------
# If enabled, the guest Vulkan HAL (if installed) will activate.
Vulkan = off

# CarVHalTable--------------------------------------------------------------
# if enabled, Car Vhal Table will show in extended window -> CarData
CarVHalTable = on

# VirtioInput-------------------------------------------------------------------
# VirtioInput is a guest side feature which indicates that CONFIG_VIRTIO_INPUT is
# enabled in kernel. If enabled, emulator will use virtio input device instead of
# goldfish_events to implement multi-touch functionality.
VirtioInput = on

# IpDisconnectOnLoad------------------------------------------------------------
# Reset IP connection state when loading from snapshots
IpDisconnectOnLoad = off

# VulkanSnapshots---------------------------------------------------------------
# Reset IP connection state when loading from snapshots
VulkanSnapshots = off

# MultiDisplay------------------------------------------------------------------
# MultiDisplay is a guest side feature
MultiDisplay = on

# VulkanNullOptionalStrings-----------------------------------------------------
# When we want to encode null optional vulkan strings as actual nulls instead of
# empty strings
# Requires guest support as well.
# On Fuchsia, hardcoded to on.
VulkanNullOptionalStrings = on

# DynamicMediaProfile-----------------------------------------------------------
# Enables changing the media_codecs_google_video.xml to link to another file by
# setting a boot property ro.kernel.qemu.mediaprofile.video to the location of the
# configuration file.
DynamicMediaProfile = off

# YUV420888toNV21---------------------------------------------------------------
# YUV420888toNV21 is a guest side feature which unifies the pixel format
# HAL_PIXEL_FORMAT_YCbCr_420_888 as NV21 in gralloc and camera HAL
YUV420888toNV21 = on

# YUVCache---------------------------------------------------------------
# YUVCache is a guest side feature which asks the host to cache the
# HAL_PIXEL_FORMAT_YCbCr_420_888 and HAL_PIXEL_FORMAT_YV12 frame.
YUVCache = on

# KeycodeForwarding-------------------------------------------------------------
# KeycodeForwarding is a guest side feature which emulator host will capture the keypress
# and forward Liunx keycode to Android system.
KeycodeForwarding = on

# VulkanIgnoredHandles----------------------------------------------------------
# Change in the Vulkan protocol to ignore handles in some situations
# (VkWriteDescriptorSet, and others)
# Requires guest support
VulkanIgnoredHandles = on

# VirtioGpuNext-----------------------------------------------------------------
# Whether virtio-gpu-next is supported. Requires guest support.
VirtioGpuNext = on

# Mac80211hwsimUserspaceManaged-------------------------------------------------
# Do not create mac80211_hwsim radios by the kernel on boot, create radios from
# userspace instead.
Mac80211hwsimUserspaceManaged = on

# HasSharedSlotsHostMemoryAllocator---------------------------------------------
# Host supports AddressSpaceSharedSlotsHostMemoryAllocatorContext
HasSharedSlotsHostMemoryAllocator = on

# CarVHalReplay--------------------------------------------------------------
# if enabled, Car Vhal Load and Play button will show in extended window -> CarData
CarVhalReplay = off

# HardwareDecoder--------------------------------------------------------------
# if enabled, emulator will add qemu.hwcodec.avcdec=2 and qemu.hwcodec.vpxdec=2
# to the kernel command line to tell guest the two decoders can be enabled
HardwareDecoder = on

# NoDelayCloseColorBuffer------------------------------------------------------
# Used in conjunction with RefCountPipe = off, in systems where the guest
# properly associates a color buffer with an OS handle, so we can safely
# clean up the color buffer immediately.
NoDelayCloseColorBuffer = off

# NoDeviceFrame----------------------------------------------------------------
# Don't show the device frame, regardless of AVD config or Qt setting.
NoDeviceFrame = off

# VirtioGpuNativeSync----------------------------------------------------------
# Use virtio-gpu instead of goldfish sync for syncfd support.
# TODO: test with goldfish
VirtioGpuNativeSync = off

# VirtioWifi--------------------------------------------------------------------
# if enabled, emulator will add ro.kernel.qemu.virtiowifi to the kernel command line
# to tell the geust that VirtioWifi kernel driver will be used instead of mac80211_hwsim.
VirtioWifi = on

# VulkanShaderFloat16Int8-------------------------------------------------------
# Enables struct defs for VK_KHR_shader_float16_int8.
VulkanShaderFloat16Int8 = on

# CarRotary--------------------------------------------------------------
# if enabled, Car rotary controller will be visible in extended window on Automotive AVDs.
CarRotary = on

# ModemSimulator--------------------------------------------------------------
# turn on the modem simulator, instead of the legacy modem
ModemSimulator = on

# TvRemote
# When enabled, the dpad is replaced with a remote specific to Android TV devices.
TvRemote = off
