-
Notifications
You must be signed in to change notification settings - Fork 5k
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
Increase number of DRM planes supported per device #5220
Conversation
Only against 6.1 as that was the branch I happened to be on here. |
c263fb3
to
96232dd
Compare
dbf802e
to
a3b7ce3
Compare
a3b7ce3
to
56da667
Compare
a887da3
to
a03d8e0
Compare
70a5069
to
5725471
Compare
b91c411
to
5ca32de
Compare
de96d11
to
2373697
Compare
Sorry for the belated answer. I've reviewed the UAPI, and I think you're right, it doesn't look like the plane mask is exported to the userspace. Only the plane ID is, but it's going to be far lower than the maximum value for u64. |
Is it worth sending this upstream? With wlroots starting to use multiple planes when available, 32 planes does become a limitation. I guess the other thing to look at is abstracting it out so that it is only internal to drm core. The size could then be totally arbitrary. One for another day. |
We can definitely try to send it, yeah. Worst case scenario is that it's rejected for some reason :) |
Is this PR ready for merging? It at least needs to be rebased. |
Let's see what mainline think to it. |
67c499b
to
128370f
Compare
1fe10b9
to
eaf07c3
Compare
0cb594c
to
3c734d4
Compare
cc10c13
to
e9b8fd9
Compare
0c9bfdb
to
b698502
Compare
02928eb
to
e3376fb
Compare
97f63b5
to
fb76892
Compare
The limit of 32 planes per DRM device is dictated by the use of planes_mask returning a u32. Change to a u64 such that 64 planes can be supported by a device. Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
The HVS can accept an arbitrary number of planes, provided that the overall pixel read load is within limits, and the display list can fit into the dlist memory. Now that DRM will support 64 planes per device, increase the number of overlay planes from 16 to 48 so that the dlist complexity can be increased (eg 4x4 video wall on each of 3 displays). Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
(Sorry for the churn on here - I pushed to the wrong branch. This is now rebased, but I still haven't sent it upstream). |
Closing as 6.1 is definitely superceded, and being investigated with #6319 |
DRM had a somewhat arbitrary limit of 32 planes per device due to internally using a u32 for a bitmask.
HVS can support more planes than that, so switch to a u64 and increase the limit to 64.
@mripard thoughts?
I don't see the bitmask being exported to uapi, therefore this shouldn't cause grief.