-
Notifications
You must be signed in to change notification settings - Fork 39
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Dev 14 patches #170
Dev 14 patches #170
Conversation
i915 would be a better choice than virtio-GPU for the sake of performance. Use virtio-GPU only when no i915 device is found. And we would like explicitly search for i915 and virtio-GPU devices rather than depending on card id. Tracked-On: OAM-128303 Signed-off-by: Weifeng Liu <[email protected]>
In virtualized environment it's possible that incompatible tiling mode are applied for scan-out buffers so that we cannot have them displayed correctly in host side. It would be beneficial to show what tiling mode is currently used. Tracked-On: OAM-128303 Signed-off-by: Weifeng Liu <[email protected]>
Tiling-4 is not supported by RPL/MBL iGPU and it's possible that frameout buffers are rendered by dGPU while displayed by iGPU. As a workaround, disable tiling-4 for scan-out buffers to support this use case for now. A better solution would be to add a way of tiling negotiation between display GPU in host and virtio-GPU. Tracked-On: OAM-128303 Signed-off-by: Weifeng Liu <[email protected]>
1, In dual gpu scenario, make iGpu alloc video bo, and make dGpu alloc render bo. 2, Limit dGpu alloc x-tiling most for render. Tracked-On: OAM-128303 Signed-off-by: ZhuChenyanX <[email protected]>
So far in the following two scenario, need use virtio to allocat scanout buffer, otherwise Android boot with black screen. 1. On qnx, the virtio is ivshmem, it has blob feature. But ivshm and i915 memory are in different region, ivshm couldn't import i915 memory. 2. On redhat, the virtio is virtio-gpu, it do not have blob on kernel 6.8. The virtio couldn't import buffer from i915 although they are in the same memroy region. Test Done: 1. Android VM boot without issue. 2. Android display well on QNX. 3. Video playback without issue. Tracked-On: OAM-128303 Signed-off-by: He, Yue <[email protected]>
If it is virtio-gpu with blob, close drv_kms_. use i915 to allocate all buffers. Otherwise use drv_kms_ to allocat scanout non-video buffers. Test Done: 1. Android VM boot without issue. 2. Android display well on QNX. 3. Video playback without issue. Tracked-On: OAM-128303 Signed-off-by: Weifeng Liu <[email protected]> Signed-off-by: He, Yue <[email protected]>
Open the first available ivshm node. If it is sancout buffer with certain resolution, use the ivshm node to allocate buffer. Tracked-On: OAM-128303 Signed-off-by: He, Yue <[email protected]>
Tracked-On: OAM-128303 Signed-off-by: HeYue <[email protected]>
Unify some struct member. Clean duplicated code. Tracked-On: OAM-128303 Signed-off-by: ZhuChenyanX <[email protected]>
VM3 dgpu passthrough, after probe ivshm, gralloc will deem it as QNX case. Check if the first render node is dGPU and first virtiogpu is ivshm, it is dgpu + ivshm case. The GPU scenario and the drv_kms_ value: 1. iGPU VF + virtio-pci w blob (SRIOV): kms=render 2. iGPU VF + virtio-pci wo blob (redhat): kms(virtio-pci) 3. iGPU VF + virtio-ivshm (QNX): kms(ivshm) 4. iGPU VF + virtio-pci + dGPU (dual gpu): like case 1 5. dGPU passthrough +probe ivshm: ivhm = kms; kms = render 6. dGPU VF + virtio-pci: like case 1 7. iGPU/dGPU BM: kms=render Tracked-On: OAM-128303 Signed-off-by: He, Yue <[email protected]>
Tracked-On: OAM-128303 Signed-off-by: He, Yue <[email protected]>
The retain buffer do not have scanout flag. Tracked-On: OAM-128303 Signed-off-by: He, Yue <[email protected]>
Tracked-On: OAM-128303 Signed-off-by: He, Yue <[email protected]>
The scenarios we need to support become complicated. It's time for us to reorganize the code and make it clearer. * Use a bitmap and a vector to manage all known devices. * Extract driver/device selection logic into functions. * Merge multiple feature detection functions into a single is_feature_support function. * Remove redundant drv_init function. We don't need to separate create and initialization of device driver now, and the separation itself could cause resource management issue. * Introduce new function to select driver. Tracked-On: OAM-128303 Signed-off-by: Weifeng Liu <[email protected]>
We don't have that many devices on the system. Tracked-On: OAM-128303 Signed-off-by: Weifeng Liu <[email protected]>
Tracked-On: OAM-128303 Signed-off-by: Weifeng Liu <[email protected]>
The QNX scenario uses ivshmem-backed virtio-GPU for display, a special use case for us. We distinguish this scenario by checking whether the ivshmem virtio-GPU is the only virtio-GPU on the system. Tracked-On: OAM-128303 Signed-off-by: Weifeng Liu <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Android CI has started Engineering Build for this issue ,Please check the linked Tracked-On issue/Android CI Web for more details. |
FAILURE: Android CI has completed Engineering Build for this issue.Please check the linked Tracked-On issue/Android CI Web for more details. |
Android CI has started Engineering Build for this issue ,Please check the linked Tracked-On issue/Android CI Web for more details. |
SUCCESS: Android CI has completed Engineering Build for this issue.Please check the linked Tracked-On issue/Android CI Web for more details. |
Android CI has started MERGE Build for this pr ,Please check the linked Tracked-On issue/Android CI Web for more details. |
Android CI has completed MERGE Build for this pr, build is SUCCESS. Please check the linked Tracked-On issue/Android CI Web for more details. For Binaries: /cactus-absp-or-local/celadon-merge/897 |
Porting minigbm patches from android 14 to android 15.