<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Mar 24, 2021 at 11:13 AM Michel Dänzer <<a href="mailto:michel@daenzer.net">michel@daenzer.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 2021-03-23 4:32 p.m., Mark Yacoub wrote:<br>
> On Tue, Mar 23, 2021 at 11:02 AM Alex Deucher <<a href="mailto:alexdeucher@gmail.com" target="_blank">alexdeucher@gmail.com</a>> wrote:<br>
>><br>
>> On Wed, Mar 10, 2021 at 11:15 AM Mark Yacoub <<a href="mailto:markyacoub@chromium.org" target="_blank">markyacoub@chromium.org</a>> wrote:<br>
>>><br>
>>> From: Mark Yacoub <<a href="mailto:markyacoub@google.com" target="_blank">markyacoub@google.com</a>><br>
>>><br>
>>> On initializing the framebuffer, call drm_any_plane_has_format to do a<br>
>>> check if the modifier is supported. drm_any_plane_has_format calls<br>
>>> dm_plane_format_mod_supported which is extended to validate that the<br>
>>> modifier is on the list of the plane's supported modifiers.<br>
>>><br>
>>> The bug was caught using igt-gpu-tools test: kms_addfb_basic.addfb25-bad-modifier<br>
>>><br>
>>> Tested on ChromeOS Zork by turning on the display, running an overlay<br>
>>> test, and running a YT video.<br>
>>><br>
>>> Cc: Alex Deucher <<a href="mailto:alexander.deucher@amd.com" target="_blank">alexander.deucher@amd.com</a>><br>
>>> Cc: Bas Nieuwenhuizen <<a href="mailto:bas@basnieuwenhuizen.nl" target="_blank">bas@basnieuwenhuizen.nl</a>><br>
>>> Signed-off-by: default avatarMark Yacoub <<a href="mailto:markyacoub@chromium.org" target="_blank">markyacoub@chromium.org</a>><br>
>><br>
>> I'm not an expert with modifiers yet.  Will this break chips which<br>
>> don't currently support modifiers?<br>
> No it shouldn't. When you don't support modifiers yet, your will<br>
> default to Linear Modifier (DRM_FORMAT_MOD_LINEAR),<br>
> [...]<br>
No modifier support does not imply linear. It's generally signalled via DRM_FORMAT_MOD_INVALID, which roughly means "tiling is determined by driver specific mechanisms".<br></blockquote><div><br></div><div>Doesn't quite work that way in the kernel sadly. If you don't set DRM_MODE_FB_MODIFIERS then the modifier fields have to be 0 (which happens to alias DRM_FORMAT_MOD_LINEAR and then now deprecated DRM_FORMAT_MOD_NONE). This is verified in shared drm code.</div><div><br></div><div>(and all userspace code I've seen simply doesn't set DRM_MODE_FB_MODIFIERS if the incoming modifier is DRM_FORMAT_MOD_INVALID)<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
<br>
-- <br>
Earthling Michel Dänzer               |               <a href="https://redhat.com" rel="noreferrer" target="_blank">https://redhat.com</a><br>
Libre software enthusiast             |             Mesa and X developer<br>
_______________________________________________<br>
amd-gfx mailing list<br>
<a href="mailto:amd-gfx@lists.freedesktop.org" target="_blank">amd-gfx@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/amd-gfx" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/amd-gfx</a><br>
</blockquote></div></div>