New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 834032 link

Starred by 2 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 3
Type: Bug



Sign in to add a comment

youtube android app doesn't work under virgl

Project Member Reported by lepton@chromium.org, Apr 17 2018

Issue description

In logcat:

E [minigbm:gralloc0.cc(119)]: Unsupported combination -- HAL format: 842094169, HAL usage: 10544, drv_format: 9997, use_flags: 131584
04-17 13:57:49.972    22    30 E Gralloc1On0Adapter: gralloc0 allocation failed: -22 (Invalid argument)
04-17 13:57:49.972    22    30 E GraphicBufferAllocator: Failed to allocate (1920 x 798) format 842094169 usage 10544: 5

 

Comment 1 by lepton@chromium.org, May 15 2018

Components: OS>Kernel>Graphics

Comment 2 by lepton@chromium.org, May 26 2018

I've got some hack to make this work. But it's hack, I asked upstream to seek some more advices:

https://lists.freedesktop.org/archives/virglrenderer-devel/2018-May/000593.html
Cc: dcasta...@chromium.org
Why can't one buffer object backing the YV12 texture not work?  It's what we do for all other drivers.
I'm not sure I understand how we end up with three BOs for YV12 to begin with.
lepton: do you mind clarifying the path of allocation for those buffers and why we end up with three BOs instead of one?

Comment 5 Deleted

Comment 6 by lepton@chromium.org, May 31 2018

In current code path for virgl, we are creating 3 bo for multi plane format buffer here:

https://chromium.googlesource.com/chromiumos/platform/minigbm/+/master/virtio_gpu.c#84

arc-cros-gralloc doesn't like this with code here:
https://chromium.googlesource.com/chromiumos/platform/minigbm/+/master/cros_gralloc/cros_gralloc_buffer.cc#59
https://chromium.googlesource.com/chromiumos/platform/minigbm/+/master/cros_gralloc/cros_gralloc_driver.cc#123


I have a WIP CL which change them to one bo,  but then here come another issue:

In current virgl code, every guest buffer is backed by one host gl texture and you can only create one guest texture from one host texture. But in mesa yv12 code path,
actually we need 3 textures for 1 yuv12 buffer to create sampler view. For example, this is a code piece for a real hardware, you can see it can create "different" texture with same buffer but different offset:

https://chromium.googlesource.com/chromiumos/third_party/mesa/+/master/src/gallium/drivers/r600/r600_texture.c#1119


Over all, I am working on a solution which will add something to virgl so we can create multiple texture with same buffer.
Yes, one buffer with different offsets for different planes should work (it works for AMD, another Gallium driver).  Does this not work for Virgl?
Status: Assigned (was: Untriaged)
This bug has an owner, thus, it's been triaged. Changing status to "assigned".

Sign in to add a comment