Android includes APIs and facilities to build "Virtual Reality" (VR) applications including high quality mobile VR experiences. Device implementations MUST properly implement these APIs and behaviors, as detailed in this section.
Android includes support for [VR Mode]( https://developer.android.com/reference/android/app/Activity.html#setVrModeEnabled%28boolean, android.content.ComponentName%29), a feature which handles stereoscopic rendering of notifications and disables monocular system UI components while a VR application has user focus.
If device implementations support VR mode, they:
android.hardware.vr.high_performance
feature.android.hardware.vulkan.level
0.android.hardware.vulkan.level
1 or higher.EGL_KHR_mutable_render_buffer
, EGL_ANDROID_front_buffer_auto_refresh
, EGL_ANDROID_get_native_client_buffer
, EGL_KHR_fence_sync
, EGL_KHR_wait_sync
, EGL_IMG_context_priority
, EGL_EXT_protected_content
, EGL_EXT_image_gl_colorspace
, and expose the extensions in the list of available EGL extensions.GL_EXT_multisampled_render_to_texture2
, GL_OVR_multiview
, GL_OVR_multiview2
, GL_OVR_multiview_multisampled_render_to_texture
, GL_EXT_protected_textures
, and expose the extensions in the list of available GL extensions.GL_EXT_external_buffer
, GL_EXT_EGL_image_array
, and expose the extensions in the list of available GL extensions.VK_ANDROID_external_memory_android_hardware_buffer
, VK_GOOGLE_display_timing
, VK_KHR_shared_presentable_image
, and expose it in the list of available Vulkan extensions.flags
contain both VK_QUEUE_GRAPHICS_BIT
and VK_QUEUE_COMPUTE_BIT
, and queueCount
is at least 2.AHardwareBuffer
flags AHARDWAREBUFFER_USAGE_GPU_DATA_BUFFER
, AHARDWAREBUFFER_USAGE_SENSOR_DIRECT_DATA
and AHARDWAREBUFFER_USAGE_PROTECTED_CONTENT
as described in the NDK.AHardwareBuffer
s with any combination of the usage flags AHARDWAREBUFFER_USAGE_GPU_COLOR_OUTPUT
, AHARDWAREBUFFER_USAGE_GPU_SAMPLED_IMAGE
, AHARDWAREBUFFER_USAGE_PROTECTED_CONTENT
for at least the following formats: AHARDWAREBUFFER_FORMAT_R5G6B5_UNORM
, AHARDWAREBUFFER_FORMAT_R8G8B8A8_UNORM
, AHARDWAREBUFFER_FORMAT_R10G10B10A2_UNORM
, AHARDWAREBUFFER_FORMAT_R16G16B16A16_FLOAT
.AHardwareBuffer
s with more than one layer and flags and formats specified in C-1-10.HardwarePropertiesManager.getDeviceTemperatures
API and return accurate values for skin temperature.TYPE_ACCELEROMETER
TYPE_ACCELEROMETER_UNCALIBRATED
TYPE_GYROSCOPE
TYPE_GYROSCOPE_UNCALIBRATED
TYPE_MAGNETIC_FIELD
TYPE_MAGNETIC_FIELD_UNCALIBRATED
TYPE_HARDWARE_BUFFER
direct channel type for all Direct Channel Types listed above.android.hardware.hifi_sensors
, as specified in section 7.3.9.android.hardware.sensor.hifi_sensors
feature.Process.getExclusiveCores
API to return the numbers of the cpu cores that are exclusive to the top foreground application.If exclusive core is supported, then the core: