Status Update
Comments
cc...@google.com <cc...@google.com> #2
Hi,
Thank you for your feedback. Could you help provide logs when the issue occurs and if possible a code snippet of the part that uses CameraX, it will help us find the root cause.
A quick question: does this issue occur on other devices, or only on Samsung Galaxy M55.
ra...@google.com <ra...@google.com> #3
attaching the logs.
The issue is only reproducible of M55. We have not met this on any other.
lo...@gmail.com <lo...@gmail.com> #4
Thank you,
CameraX uses OpenGL for sharing stream between Preview
and VideoCapture
to provide use case combinations beyond device's native capabilities. When using Preview + ImageAnalysis or Preview + VideoCapture, the device capabilities are usually not exceeded, so stream sharing is not used. So this could be a device specified issue related to OpenGL.
We will attempt to acquire the reported device model for testing.
ra...@google.com <ra...@google.com>
ra...@google.com <ra...@google.com> #5
Yes I'm aware that stream sharing is not a hardware supported feature.
Please let me know if we could assist in any way to solve the issue.
ap...@google.com <ap...@google.com> #6
Is there any update on this? Were you able to find the phone? Could we assist here somehow?
na...@google.com <na...@google.com> #7
Thank you for your kind reply! I think we will receive the phone in a while and we will update if we find anything.
Description
Component used: Version used: Latest (1.3.0-alpha04) Devices/Android versions reproduced on: all devices
TL;DR
Macrobenchmark tests fails with
IllegalArgumentException: At least one result is necessary
when usingFrameTimingMetric
together with tooling that adds trace sections to the root of the main thread section stacks. See attached screenshot for an example of what that might look like.Details
FrameTimingQuery
(Unfortunately, this assumption is broken when 3rd party code inserts additional sections to the top of the main thread section stack.
For example, the papa library adds a top trace section to every running main thread section ( source ), leveraging the logged name provided through
Looper.getMainLooper().setMessageLogging()
(see screenshot for what that looks like).Side note 1: I'm aware that
Looper.getMainLooper().setMessageLogging()
wasn't exactly designed for this purpose, but having toString() details for all messages that run on the main thread is incredibly useful to help understand perfetto traces. Ideally there would be a dedicated API to help understand what runs on main.Side note2: if anyone using papa runs into this issue, you can disable the additional tracing with a boolean resource override for
R.bool.papa_trace_main_thread
. Unfortunately that will make your perfetto traces a lot less easy to investigate.