virtio-gpu-gfxstream: clean-up flags
- GFXSTREAM_RENDERER_FLAGS_* -> STREAM_RENDERER_*
- Make USE_VK an affirmative rather than on by default. With Magma
we likely not enable it.
- Nuke FLAGS_GUEST_USES_ANGLE, since not enabling GLES is sufficient
- Nuke FLAGS_ASYNC_FENCE_CB, everyone already does enable it
- Nuke GLES31_BIT, both CF, AAOS, and B* always enable it when using
GLES. AEMU doesn't use this interface yet, and likely can have
an environment variable as well if needed. There are no plans
to plumb this flag in the upstream QEMU proposal.
BUG=278138335
TEST=launch_cvd --gpu_mode=gfxstream
launch_cvd --gpu_mode=gfxstream_guest_angle
Change-Id: If3377460ce1d0d5b5bbbab78afdda097db56ea04
diff --git a/stream-servers/virtio-gpu-gfxstream-renderer.cpp b/stream-servers/virtio-gpu-gfxstream-renderer.cpp
index 29fd89b..855fd4e 100644
--- a/stream-servers/virtio-gpu-gfxstream-renderer.cpp
+++ b/stream-servers/virtio-gpu-gfxstream-renderer.cpp
@@ -547,7 +547,7 @@
<< "Could not get address space device control ops!";
}
mVirtioGpuTimelines =
- VirtioGpuTimelines::create(flags & GFXSTREAM_RENDERER_FLAGS_ASYNC_FENCE_CB);
+ VirtioGpuTimelines::create(true);
VGPLOG("done");
return 0;
}
@@ -2148,7 +2148,7 @@
// Flags processing
// TODO: hook up "gfxstream egl" to the renderer flags
- // GFXSTREAM_RENDERER_FLAGS_USE_EGL_BIT in crosvm
+ // STREAM_RENDERER_FLAGS_USE_EGL_BIT in crosvm
// as it's specified from launch_cvd.
// At the moment, use ANDROID_GFXSTREAM_EGL=1
// For test on GCE
@@ -2160,24 +2160,24 @@
// end for test on GCE
android::base::setEnvironmentVariable("ANDROID_EMU_HEADLESS", "1");
- bool enableVk = !(renderer_flags & GFXSTREAM_RENDERER_FLAGS_NO_VK_BIT);
- bool enableGles = (renderer_flags & GFXSTREAM_RENDERER_FLAGS_USE_GLES_BIT);
+ bool enableVk = (renderer_flags & STREAM_RENDERER_FLAGS_USE_VK_BIT);
+ bool enableGles = (renderer_flags & STREAM_RENDERER_FLAGS_USE_GLES_BIT);
bool egl2eglByEnv = android::base::getEnvironmentVariable("ANDROID_EGL_ON_EGL") == "1";
- bool egl2eglByFlag = renderer_flags & GFXSTREAM_RENDERER_FLAGS_USE_EGL_BIT;
+ bool egl2eglByFlag = renderer_flags & STREAM_RENDERER_FLAGS_USE_EGL_BIT;
bool enable_egl2egl = egl2eglByFlag || egl2eglByEnv;
if (enable_egl2egl) {
android::base::setEnvironmentVariable("ANDROID_GFXSTREAM_EGL", "1");
android::base::setEnvironmentVariable("ANDROID_EGL_ON_EGL", "1");
}
- bool surfaceless = renderer_flags & GFXSTREAM_RENDERER_FLAGS_USE_SURFACELESS_BIT;
- bool enableGlEs31Flag = renderer_flags & GFXSTREAM_RENDERER_FLAGS_ENABLE_GLES31_BIT;
- bool useExternalBlob = renderer_flags & GFXSTREAM_RENDERER_FLAGS_USE_EXTERNAL_BLOB;
- bool useSystemBlob = renderer_flags & GFXSTREAM_RENDERER_FLAGS_USE_SYSTEM_BLOB;
+ bool surfaceless = renderer_flags & STREAM_RENDERER_FLAGS_USE_SURFACELESS_BIT;
+ bool enableGlEs31Flag = enableGles;
+ bool useExternalBlob = renderer_flags & STREAM_RENDERER_FLAGS_USE_EXTERNAL_BLOB;
+ bool useSystemBlob = renderer_flags & STREAM_RENDERER_FLAGS_USE_SYSTEM_BLOB;
bool guestUsesAngle = enableVk && !enableGles;
bool useVulkanNativeSwapchain =
- renderer_flags & GFXSTREAM_RENDERER_FLAGS_VULKAN_NATIVE_SWAPCHAIN_BIT;
+ renderer_flags & STREAM_RENDERER_FLAGS_VULKAN_NATIVE_SWAPCHAIN_BIT;
GFXS_LOG("GLES enabled? %d", enableGles);
GFXS_LOG("Vulkan enabled? %d", enableVk);
@@ -2221,10 +2221,7 @@
feature_set_enabled_override(kFeature_VulkanQueueSubmitWithCommands, true);
feature_set_enabled_override(kFeature_VulkanNativeSwapchain, useVulkanNativeSwapchain);
feature_set_enabled_override(kFeature_VulkanBatchedDescriptorSetUpdate, true);
- // TODO: Strictly speaking, renderer_flags check is insufficient because
- // fence contexts require us to be running a new-enough guest kernel.
- feature_set_enabled_override(kFeature_VirtioGpuFenceContexts,
- (renderer_flags & GFXSTREAM_RENDERER_FLAGS_ASYNC_FENCE_CB));
+ feature_set_enabled_override(kFeature_VirtioGpuFenceContexts, true);
feature_set_enabled_override(kFeature_ExternalBlob, useExternalBlob);
feature_set_enabled_override(kFeature_SystemBlob, useSystemBlob);