[Intel-gfx] Enabling i915.fastboot=1 by default
Hans de Goede
hdegoede at redhat.com
Thu Jun 7 09:11:56 UTC 2018
Hi,
On 06-06-18 20:12, Rodrigo Vivi wrote:
> On Wed, Jun 06, 2018 at 02:12:36PM +0200, Hans de Goede wrote:
>> Hi,
>>
>> On 06-06-18 12:43, Maarten Lankhorst wrote:
>>> Op 06-06-18 om 11:54 schreef Hans de Goede:
>>>> Hi,
>>>>
>>>> On 06-06-18 11:36, Maarten Lankhorst wrote:
>>>>> Op 06-06-18 om 11:09 schreef Hans de Goede:
>>>>>> Hi All,
>>>>>>
>>>>>> So I'm working on making Linux boot in a complete
>>>>>> flickerfree manner (no modesets, no black screens).
>>>>>>
>>>>>> I have this working on various machines with Intel
>>>>>> gfx, but I need to pass i915.fastboot=1 on the kernel
>>>>>> commandline.
>>>>>>
>>>>>> I know there was some talk about enabling this by
>>>>>> default a while ago, but it seems that that still
>>>>>> has not happened (yet?).
>>>>>>
>>>>>> I'm wondering what is holding this back ? Maybe we
>>>>>> can change it from a bool to an int, init it to -1
>>>>>> and when it is -1 have some automatic detection
>>>>>> code which disables it where it is known to be
>>>>>> troublesome and otherwise enables it by default?
>>>>>
>>>>> Main reason are bugs like https://bugs.freedesktop.org/show_bug.cgi?id=103781 and our hw
>>>>> readout not being perfect. On some haswell/broadwell eDP laptops we stop generating vblanks
>>>>> when we fastboot, and in general we don't trust our code enough for that.
>>>>>
>>>>> The automatic detection code is already in place, we modeset if the mode is not compatible
>>>>> enough, but we don't catch all the cases where this might happen.
>>>>
>>>> Right but the "mode is not compatible" check will be always
>>>> necessary, because e.g. some BIOs-es insist in bringing
>>>> up the display in 1024x768 instead of its native mode.
>>>
>>> It's not just the mode we're checking, any parameter in intel_pipe_config_compare is
>>> checked and adjusted. This code is also run after each modeset. If the panel fitter is
>>> used we don't need to modeset from 1024x768, we will just disable the panel fitter.
>>>
>>>> What I meant is, something like check which generation we are on
>>>> (and maybe if a specific type of output is used or not if that
>>>> does not convolute the code too much).
>>>>
>>>> E.g. you mention vblank issues with haswell/broadwell eDP,
>>>> so if i915.fastboot=-1 we would then disable fastboot
>>>> if we are on a haswell or broadwell and eDP is used.
>>>
>>> I think we shouldn't put any code in adding workarounds or detection, but fix
>>> those bugs and then retry enabling things.
>>
>> But enabling it for all generations at once feels to me like
>> we will never end up enabling it because of an issue on some
>> generations only. There are plenty of other cases where
>> features are enabled by default on a generation by generation
>> basis. I agree that ideally we end up enabling this everywhere,
>> but enabling it by default everywhere at once feel like you
>> are aiming a bit too high.
>
> I agree with Hans on this point. It is not a matter of workaround
> or detection, but a matter of bandwidth to deal with validation and
> incoming bugs, specially when the behaviour changes for different
> gens.
Ok, so perhaps we can try to enable this now on some hardware?
Say skylake+ and byt + cht + apollo-lake ?
Regards,
Hans
More information about the Intel-gfx
mailing list