Hi

On 19.10.20 21:43, Kevin Brace wrote:
> Hi Sam,
> 
> Thanks for asking the question.
> The current OpenChrome DRM code has these two major issues.
> 
> 1) It does not support atomic modesetting
> 
> I do internally have working code to support atomic modesetting, but it is 
> not ready for committing into the upstream OpenChrome DRM repository.
> In particular, it suffers from a freeze relating to a cursor plane.
> The freeze is a bad kind that kern.log does not really tell me what is wrong.
> If I disable hardware cursor, the atomic modesetting based OpenChrome DRM 
> appears to work okay.
> In other words, I am getting close to getting atomic modesetting working, but 
> I am stuck.

This could be related to the memory problems. See below. Otherwise, I
suggest to reduce the driver to the minimum functionality that is
required for modesetting (even without HW cursors) and submit this code
for review and merging.

> 
> 
> 2) Double allocation of visible portion of frame buffer
> 
> This is a big problem left behind from the previous developer who developed 
> OpenChrome prior to me.
> For some reason, the developer wanted to allocate visible portion of the 
> frame buffer to be the maximum possible size supported by the detected 
> monitor when initializing the frame buffer inside OpenChrome DRM code.
> I believe Radeon DRM does something similar to that.
> The problem is, OpenChrome DDX allocates an equal sized frame buffer visible 
> portion during the DDX's initialization.
> This means that we got two same sized visible portions allocated, but 
> OpenChrome DDX and OpenChrome DRM combined should really be allocating only 
> one.
> At this point, OpenChrome is not supporting double buffering.
> This double allocation of a visible portion of the frame buffer contributes 
> to a X Server crash when the screen is resized and 16 MB or less (i.e., 8 MB) 
> shared frame buffer is reserved by the system via BIOS setup.
> I personally think letting OpenChrome DRM allocate the visible portion of the 
> frame buffer is the way to go, but if so, how do I get the DDX or shadow FB 
> to access the frame buffer visible portion allocated by OpenChrome DRM?
> Any suggestions on what to do about this issue will be greatly appreciated.
> Perhaps, I should post a question to dri-devel regarding this issue.
> I really do not know what I should do at this point.

The double allocation is expected. Atomic modesetting requires two
framebuffers in video memory during the pageflip. You have to sort out
the modes where 2 framebuffers do not fit into video memory at the same
time.

The mode_valid callback in struct drm_mode_config_funcs [1] is a good
place to do this. Check the mode's pixels with the maximum BPC against
the available memory. Example code is at [2]. You should also plane for
common additional layers, such as HW cursors, to require video memory.
So maybe test the mode against 80% of the video memory.

Best regards
Thomas

[1]
https://cgit.freedesktop.org/openchrome/drm-openchrome/tree/drivers/gpu/drm/openchrome/openchrome_fb.c?h=drm-next-5.10&id=22e0ee2460b4b70cde562b7a3818ae94c2786f46#n102

[2]
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/gpu/drm/drm_gem_vram_helper.c?h=v5.9#n1285

> 
> Regards,
> 
> Kevin Brace
> Brace Computer Laboratory blog
> https://bracecomputerlab.com
> 
> 
>> Sent: Sunday, October 18, 2020 at 2:04 PM
>> From: "Sam Ravnborg" <s...@ravnborg.org>
>> To: "Kevin Brace" <kevinbr...@gmx.com>
>> Cc: dri-devel@lists.freedesktop.org, "Dave Airlie" <airl...@redhat.com>
>> Subject: Re: It appears drm-next TTM cleanup broke something . . .
>>
>> Hi Kevin.
>>
>> On Sun, Oct 18, 2020 at 09:15:17PM +0200, Kevin Brace wrote:
>>> As usual, I pulled in DRM repository code for an out of tree OpenChrome DRM 
>>> repository a few days ago.
>>
>> I know you have been working on and off on the openchrome driver for a
>> long time now. Any chance we will see the driver submitted for upstream soon?
>>
>>      Sam
>>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
> 

-- 
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 Nürnberg, Germany
(HRB 36809, AG Nürnberg)
Geschäftsführer: Felix Imendörffer

Attachment: OpenPGP_0x680DC11D530B7A23.asc
Description: application/pgp-keys

Attachment: OpenPGP_signature
Description: OpenPGP digital signature

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to