Android O SDK.
[android_tools.git] / sdk / emulator / lib / advancedFeatures.ini
blobc2ea86139ddffaa25a9bfdc04f8c8ef9e6734ac0
1 #-------------------------------------------------------------------------------
2 # Advanced emulator features
3 #-------------------------------------------------------------------------------
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.
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 # ------------------------------------------------------------------------------
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.
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.
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.
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 # ------------------------------------------------------------------------------
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.
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.
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 # ------------------------------------------------------------------------------
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 # ------------------------------------------------------------------------------
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 # ------------------------------------------------------------------------------
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 # ------------------------------------------------------------------------------
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 # ------------------------------------------------------------------------------
103 # PlayStoreImage ---------------------------------------------------------------
104 # The playstore image has CTS requirements that emulator should check and ensure
105 # Guest image will indicate whether it has it or not;
106 PlayStoreImage = on
107 # ------------------------------------------------------------------------------
109 # ForceANGLE--------------------------------------------------------------------
110 # This feature attempts to default the renderer to ANGLE, but can be itself
111 # overridden by:
112 # -gpu command line argument
113 # UI setting
114 # The override (and others) are done through the UI, so the user is aware
115 # and if the user changes to a setting other than "auto", the user setting
116 # is respected.
117 ForceANGLE = off
118 # ------------------------------------------------------------------------------
120 # ForceSwiftshader--------------------------------------------------------------
121 # This feature attempts to default the renderer to Swiftshader. Otherwise,
122 # same behavior as ForceANGLE.
123 ForceSwiftshader = off
124 # ------------------------------------------------------------------------------
126 # Wifi -------------------------------------------------------------------------
127 # This feature indicates that the system image and the emulator support Wifi.
128 # When this is enabled the network configuration of the system image will be
129 # significantly different and the emulator will send different network setup
130 # information via RIL.
131 Wifi = off