Home | History | Annotate | Download | only in lib
      1 #-------------------------------------------------------------------------------
      2 # Advanced emulator features
      3 #-------------------------------------------------------------------------------
      4 
      5 # GLPipeChecksum----------------------------------------------------------------
      6 # For every GL call that transfers between host and guest, GLPipeChecksum = on
      7 # will compute a checksum consisting of some function of the actual bit vector
      8 # corresponding to the GL command, verifying that the same checksum shows up
      9 # on both the host and guest. Violations of the checksum (mismatches) result
     10 # in an abort() and crash report being sent.
     11 #
     12 # Currently, the checksum is mainly making sure that the command itself and all
     13 # arrays passed through the pipe are of proper length.
     14 GLPipeChecksum = on
     15 # ------------------------------------------------------------------------------
     16 
     17 # GrallocSync-------------------------------------------------------------------
     18 # Most apps that display images do so through OpenGL, but there are some apps
     19 # that write directly to gralloc color buffers. In our goldfish-driver gralloc
     20 # implementation, which represents gralloc color buffers as host OpenGL color
     21 # buffers.
     22 #
     23 # For example, in the camera app, the emulated webcam driver will pull frames
     24 # to a gralloc color buffer directly, and then in another thread or process,
     25 # the color buffer representing the camera frame preview could be posted
     26 # onscreen.
     27 #
     28 # These operations aren't guaranteed to have their order preserved when arriving
     29 # from the guest, and if executed on the host in the wrong order, we could
     30 # end up with out of order webcam frames, for instance.
     31 #
     32 # GrallocSync = on adds synchronization to the host for this use case where apps
     33 # directly write to gralloc color buffers and then post them.
     34 # Gralloc sync disabled for now because it is making CTS sad.
     35 GrallocSync = off
     36 # ------------------------------------------------------------------------------
     37 
     38 # GLAsyncSwap-------------------------------------------------------------------
     39 # OpenGL apps in the guest present their contents indirectly through
     40 # SurfaceFlinger. The goldfish driver's implementation of eglSwapBuffers is
     41 # based on queuing the finished frame (buffer) to SurfaceFlinger.
     42 # SurfaceFlinger then acquires that finished buffer from the OpenGL app,
     43 # does the actual posting to the display (which may involve a call in turn
     44 # to eglSwapBuffers, esp. if we are not using hardware composer),
     45 # and releases the buffer, allowing the OpenGL app to dequeue a fresh
     46 # buffer for whatever to draw next.
     47 #
     48 # The problem is that when we are using host GPU, the rubber meets the road #
     49 # in the host not the guest (what the user sees is not due to any concrete
     50 # action inside the guest, but due to the host GPU communicating with the host
     51 # display), so it's not always clear what a "finished frame" means. In
     52 # particular, the frame is not necessarily finished when the buffer is queued
     53 # in the guest, depending on host driver quirks. So, posting unfinished or
     54 # even older buffers to SurfaceFlinger will result in out of order frames.
     55 #
     56 # GLAsyncSwap = off pretends this issue doesn't exist and it's up to the host
     57 # driver to properly synchronize upon calling rcFlushWindowColorBuffer.
     58 # GLAsyncSwap = on uses the host GL driver's fence commands and fence fd's in
     59 # the guest in order to have explicit signals of buffer swaps complete. This
     60 # preserves frame ordering at a slight performance cost, but the cost is less
     61 # than that of other solutions like calling glFinish() on the host.
     62 # Disabled by default for now
     63 GLAsyncSwap = off
     64 # ------------------------------------------------------------------------------
     65 
     66 # EncryptUserData---------------------------------------------------------------
     67 # CTS requires that userdata be encrypted, at least for api23 and later. However
     68 # for non Google images or older system images, this is not required or not
     69 # implemted. Emulator will enable this feature only if the system says it supports
     70 # encryption. It is on by default on the host, and according to the current rule,
     71 # a feature is only on if both host and guest support it; so it effectively leaves
     72 # to guest to decide.
     73 EncryptUserData = on
     74 # ------------------------------------------------------------------------------
     75 
     76 # IntelPerformanceMonitoringUnit------------------------------------------------
     77 # Some CTS tests (mainly SimplePerf) require that the CPU expose some kind of
     78 # counters that can be used to measure CPU performance in cycles,
     79 # cache hit/miss, etc.
     80 # However, the use of this on the vCPU requires that the guest kernel be in
     81 # a fairly recent state, otherwise the emulator will kernel panic on startup.
     82 IntelPerformanceMonitoringUnit = on
     83 # ------------------------------------------------------------------------------
     84 
     85 # GLDMA-------------------------------------------------------------------------
     86 # Video playback can approach 1080p60 and be solid 720p60 if we map guest memory
     87 # to host and use it to perofrm color buffer updates, and perform YV12->RGB
     88 # on the host as well, in an OpenGL shader.
     89 GLDMA = on
     90 # ------------------------------------------------------------------------------
     91 
     92 # GLESDynamicVersion------------------------------------------------------------
     93 # This feature attempts to detect the maximum supported GLES version depending on
     94 # which OpenGL function pointers have been found on the GL libraries used
     95 # on the host system. Different platforms / hardware + video driver setups can
     96 # have different support.
     97 # For example, OS X is not known to support GLES 3.1.
     98 # If this feature is set to "off", the max supported GLES version is assumed to
     99 # be <= 2 and also depend on the system image only (some images only support ES 1).
    100 GLESDynamicVersion = off
    101 # ------------------------------------------------------------------------------
    102 
    103 # Wifi -------------------------------------------------------------------------
    104 # This feature indicates that the system image and the emulator support Wifi.
    105 # When this is enabled the network configuration of the system image will be
    106 # significantly different and the emulator will send different network setup
    107 # information via RIL.
    108 Wifi = on
    109 
    110 # ForceANGLE--------------------------------------------------------------------
    111 # This feature attempts to default the renderer to ANGLE, but can be itself
    112 # overridden by:
    113 # -gpu command line argument
    114 # UI setting
    115 # The override (and others) are done through the UI, so the user is aware
    116 # and if the user changes to a setting other than "auto", the user setting
    117 # is respected.
    118 ForceANGLE = off
    119 # ------------------------------------------------------------------------------
    120 
    121 # ForceSwiftshader--------------------------------------------------------------
    122 # This feature attempts to default the renderer to Swiftshader. Otherwise,
    123 # same behavior as ForceANGLE.
    124 ForceSwiftshader = off
    125 # ------------------------------------------------------------------------------
    126 
    127 # PlayStoreImage ---------------------------------------------------------------
    128 # The playstore image has CTS requirements that emulator should check and ensure
    129 # Guest image will indicate whether it has it or not;
    130 PlayStoreImage = on
    131 # ------------------------------------------------------------------------------
    132 
    133 # LogcatPipe ---------------------------------------------------------------
    134 # The pipe based logcat is meant to replace the 'adb shell logcat'
    135 # Guest image will indicate whether it has it or not;
    136 LogcatPipe = on
    137 # ------------------------------------------------------------------------------
    138 
    139 # Hypervisor feature flags. Assumed mutually exclusive. If all flags are off,
    140 # then we have:
    141 # Mac/Win: HAXM
    142 # Linux: KVM
    143 # If a flag is on, then attempts are made to detect host support, and if there
    144 # is support, then the hypervisor in question is actually used.
    145 HYPERV = off
    146 HVF = on
    147 KVM = off
    148 HAXM = off
    149 
    150 # FastSnapshotV1 ---------------------------------------------------------------
    151 # Enable the new implementation of snapshotting in the emulator and use it for
    152 # quick boot.
    153 FastSnapshotV1 = on
    154 # ------------------------------------------------------------------------------
    155 
    156 # ScreenRecording --------------------------------------------------------------
    157 # Enables the host-side screen recording feature.
    158 ScreenRecording = on
    159 # ------------------------------------------------------------------------------
    160 
    161 # VirtualScene -----------------------------------------------------------------
    162 # Enables the host-side virtual scene feature.
    163 VirtualScene = on
    164 
    165 # system as root  --------------------------------------------------------------
    166 # Guest feature: when this is on, emulator should use system partition as root fs
    167 # instead of using ramdisk as root fs.
    168 SystemAsRoot = on
    169 
    170 # IgnoreHostOpenGLErrors--------------------------------------------------------
    171 # Don't query the host for OpenGL errors. Only use if rendering is OK for you
    172 # already. Should decrease jank in UI by quite a bit.
    173 IgnoreHostOpenGLErrors = off
    174 
    175 # GenericSnapshotsUI------------------------------------------------------------
    176 # Show the generic snapshots UI.
    177 GenericSnapshotsUI = on
    178 
    179 # AllowSnapshotMigration--------------------------------------------------------
    180 # Skip snapshot file consistency checks, allowing for snapshot migration.
    181 AllowSnapshotMigration = off
    182 
    183 # WindowsOnDemandSnapshotLoad---------------------------------------------------
    184 # On-demand snapshot load for Windows.
    185 WindowsOnDemandSnapshotLoad = on
    186 
    187 # Windows Hypervisor Platform---------------------------------------------------
    188 # Allow WHPX
    189 WindowsHypervisorPlatform = on
    190