#-------------------------------------------------------------------------------
# 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
# ------------------------------------------------------------------------------

# 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

# 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
