Skip to content
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

Closed
wants to merge 2 commits into from

Conversation

6by9
Copy link
Contributor

@6by9 6by9 commented Oct 21, 2022

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.

@6by9
Copy link
Contributor Author

6by9 commented Oct 21, 2022

Only against 6.1 as that was the branch I happened to be on here.

@mripard
Copy link
Contributor

mripard commented Jan 6, 2023

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.

@6by9
Copy link
Contributor Author

6by9 commented Jan 6, 2023

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.

@mripard
Copy link
Contributor

mripard commented Jan 11, 2023

We can definitely try to send it, yeah. Worst case scenario is that it's rejected for some reason :)

@pelwell
Copy link
Contributor

pelwell commented Jan 11, 2023

Is this PR ready for merging? It at least needs to be rebased.

@6by9
Copy link
Contributor Author

6by9 commented Jan 11, 2023

Is this PR ready for merging? It at least needs to be rebased.

Let's see what mainline think to it.
If they reject it then it will also direct our efforts with regard wayfire and punting planes to DRM for composition.

@popcornmix popcornmix force-pushed the rpi-6.1.y branch 2 times, most recently from 0c9bfdb to b698502 Compare March 6, 2023 11:50
@popcornmix popcornmix force-pushed the rpi-6.1.y branch 2 times, most recently from 02928eb to e3376fb Compare March 14, 2023 10:59
@6by9 6by9 force-pushed the rpi-6.1.y branch 2 times, most recently from 97f63b5 to fb76892 Compare November 8, 2023 12:18
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>
@6by9
Copy link
Contributor Author

6by9 commented Nov 8, 2023

(Sorry for the churn on here - I pushed to the wrong branch. This is now rebased, but I still haven't sent it upstream).

@6by9
Copy link
Contributor Author

6by9 commented Aug 20, 2024

Closing as 6.1 is definitely superceded, and being investigated with #6319

@6by9 6by9 closed this Sep 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants