Re: Time for amber2?

Marek Olšák <[email protected]> Wed, 20 May 2026 16:45:33 -0400
Newsgroups gmane.comp.video.mesa3d.devel
Message-ID <CAAxE2A6J3+TpkCQ4vx4o8cjyjJL1qci0ugTnA+fTzhD1De020w@mail.gmail.com>
--0000000000004bc4f2065245e1ca
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

I'd say we'll deal with any CI issues discretely and individually once we
have the list of driver maintainers and CI job maintainers. There may be a
sense of urgency, but I don't think we need a specific time limit.

Marek

On Wed, May 20, 2026, 01:36 Iago Toral <[email protected]> wrote:

> El jue, 14-05-2026 a las 19:13 -0400, Marek Ol=C5=A1=C3=A1k escribi=C3=B3=
:
> > Here's a more detailed description of the problem and a possible
> > solution.
> >
> > First, the worst case scenario: A small one-line commit that=E2=80=99s
> > correct
> > and trivial causes a test failure in the CI. The maintainer of the
> > affected driver is asked for help, who concludes that it=E2=80=99s like=
ly a
> > HW
> > bug and is forwarded to the HW team of the corresponding GPU company.
> > Now the management of the GPU company has to allocate staff to
> > investigate the failure. 3 months later, we may have a workaround. Or
> > not.
> >
> > Second, the scale: The CI has lots of undocumented devices with
> > undocumented erratas and drivers with hacks and incomplete
> > implementations. (that=E2=80=99s normal for any project) Any of those d=
evices
> > can fail at any time for reasons that might not make sense, and any
> > of
> > the drivers can fail for random reasons too. It=E2=80=99s not fair to a=
sk the
> > contributor to keep everything conformant at every MR. Even if the
> > devices were documented with open source implementations (e.g. uarch
> > specs, HDL, RTL) and well documented drivers, it=E2=80=99s not reasonab=
le to
> > ask the contributor to study them all.
> >
> > Thus, we can=E2=80=99t expect the contributor to be solely responsible =
for
> > conformance of all devices at every MR in main.
> >
> > It=E2=80=99s useful to keep drivers that have regular contributors conf=
ormant
> > at most commits in main, but why do we need to keep drivers without
> > contributors conformant? If somebody cares about those drivers but
> > not
> > enough to contribute in main, they can contribute fixes during the RC
> > window or on their own schedule.
> >
> > We need a two-tier system:
> >
> > Tier 1:
> > - Devices are tested by the CI pre-merge.
> > - A contact person is required for CI failure assessment and closure
> > within a reasonable time. (if the person is on leave, a backup person
> > must be available, or else the device is moved to Tier 2)
>
>
> I think this makes sense, but we need to agree on what "reasonable
> time" means to make sure everyone is on the same page.
>
> Iago
>
> > - Highly recommended: A fully functional drm-shim for each CI job
> > with
> > a user guide, how to print compiled shaders, etc.
> > - Links to HW documentation if available.
> > - If maintainers end up xfailing a significant number of failures
> > regularly, the device is moved to Tier 2. (due to not using the CI to
> > maintain conformance)
> >
> > Tier 2:
> > - Pre-merge CI can=E2=80=99t run on the target devices / implementation=
s.
> > main
> > doesn=E2=80=99t have to work. The quality of release branches is up to
> > maintainers. The RC window can be extended.
> > - Only unit tests can run per-merge, as well as any deviceless driver
> > tests, like the following.
> > - Optionally develop deviceless driver validation tests that verify
> > driver output (shader instructions, command buffers). LLVM LIT tests
> > are the perfect example - they validate all LLVM backends and prevent
> > regressions without any physical devices.
> >
> >
> > Marek
> >
> > On Fri, May 1, 2026 at 5:21=E2=80=AFAM Daniel Stone <[email protected]=
rg>
> > wrote:
> > >
> > > Hi,
> > >
> > > On Thu, 30 Apr 2026 at 23:34, Timur Krist=C3=B3f
> > > <[email protected]> wrote:
> > > > On 2026. =C3=A1prilis 30., cs=C3=BCt=C3=B6rt=C3=B6k 23:07:12 k=C3=
=B6z=C3=A9p-eur=C3=B3pai ny=C3=A1ri id=C5=91
> > > > Marek Ol=C5=A1=C3=A1k
> > > > wrote:
> > > > > First of all, no contributor to shared code is required to fix
> > > > > issues
> > > > > in all drivers that their commit breaks. The goal is to stop
> > > > > using the
> > > > > pre-merge CI as a justification to force unrelated contributors
> > > > > to
> > > > > work on all drivers just because they are contributors. It
> > > > > would be a
> > > > > bit exploitative to assume that every contributor must debug
> > > > > all
> > > > > drivers that turn red due to a change. I think I understand
> > > > > that well
> > > > > because I have debugged 5+ drivers by myself in the past that
> > > > > are not
> > > > > my responsibility to maintain, and it does feel exploitative.
> > >
> > > There's a bit more nuance in this though. If one set of people is
> > > breaking 17 drivers every day because they can't be bothered to do
> > > the
> > > basics to keep things working and just want to yolo whatever they
> > > just
> > > thought of into the tree, it's 'unethical' and unfair on the rest
> > > of
> > > the people who then spend their entire time bisecting and fixing up
> > > what the others broke. (Those people then probably get accused of
> > > being freeloaders and exploiting the labour of the people breaking
> > > everything, because they don't get to spend any time on fun new
> > > stuff,
> > > given all their time is spent fixing what the others broke.)
> > >
> > > I think we've all taken it as axiomatic that there's a balance to
> > > be
> > > struck there: don't make others miserable because you can't be
> > > bothered spending five minutes thinking about why your new code
> > > breaks
> > > existing users, but on the other hand you absolutely should expect
> > > support from the relevant people to help work it out and resolve
> > > it.
> > >
> > > I'm pretty sure no-one is suggesting ripping up that social
> > > contract,
> > > but we should be clear about what we mean.
> > >
> > > > > Therefore, we could establish that each driver/HW combo in pre-
> > > > > merge
> > > > > CI has the following options:
> > > > > 1) a contact person for prompt CI issue resolution
> > > > > 2) unconditional xfail by the author (or removal from pre-merge
> > > > > CI if
> > > > > logs lack the information necessary to add xfail)
> > > >
> > > > I think we should establish both of those, in that order.
> > > > That is, if the contact person does not reply promptly, just
> > > > let's add the
> > > > expected failure.
> > >
> > > Yeah, that's a pretty obvious baseline. So far it seems to have
> > > worked
> > > out in the usual way (people know who works on what so it's easy to
> > > ping them however), but if that's not working out, maybe someone
> > > could
> > > suggest a more formal document along the lines of MAINTAINERS or
> > > CODEOWNERS or whatever?
> > >
> > > Cheers,
> > > Daniel
> >
>
>

--0000000000004bc4f2065245e1ca
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"auto"><div>I&#39;d say we&#39;ll deal with any CI issues discre=
tely and individually once we have the list of driver maintainers and CI jo=
b maintainers. There may be a sense of urgency, but I don&#39;t think we ne=
ed a specific time limit.</div><div dir=3D"auto"><br></div><div dir=3D"auto=
">Marek<br><br><div class=3D"gmail_quote gmail_quote_container" dir=3D"auto=
"><div dir=3D"ltr" class=3D"gmail_attr">On Wed, May 20, 2026, 01:36 Iago To=
ral &lt;<a href=3D"mailto:[email protected]">[email protected]</a>&gt; wrot=
e:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bo=
rder-left:1px #ccc solid;padding-left:1ex">El jue, 14-05-2026 a las 19:13 -=
0400, Marek Ol=C5=A1=C3=A1k escribi=C3=B3:<br>
&gt; Here&#39;s a more detailed description of the problem and a possible<b=
r>
&gt; solution.<br>
&gt; <br>
&gt; First, the worst case scenario: A small one-line commit that=E2=80=99s=
<br>
&gt; correct<br>
&gt; and trivial causes a test failure in the CI. The maintainer of the<br>
&gt; affected driver is asked for help, who concludes that it=E2=80=99s lik=
ely a<br>
&gt; HW<br>
&gt; bug and is forwarded to the HW team of the corresponding GPU company.<=
br>
&gt; Now the management of the GPU company has to allocate staff to<br>
&gt; investigate the failure. 3 months later, we may have a workaround. Or<=
br>
&gt; not.<br>
&gt; <br>
&gt; Second, the scale: The CI has lots of undocumented devices with<br>
&gt; undocumented erratas and drivers with hacks and incomplete<br>
&gt; implementations. (that=E2=80=99s normal for any project) Any of those =
devices<br>
&gt; can fail at any time for reasons that might not make sense, and any<br=
>
&gt; of<br>
&gt; the drivers can fail for random reasons too. It=E2=80=99s not fair to =
ask the<br>
&gt; contributor to keep everything conformant at every MR. Even if the<br>
&gt; devices were documented with open source implementations (e.g. uarch<b=
r>
&gt; specs, HDL, RTL) and well documented drivers, it=E2=80=99s not reasona=
ble to<br>
&gt; ask the contributor to study them all.<br>
&gt; <br>
&gt; Thus, we can=E2=80=99t expect the contributor to be solely responsible=
 for<br>
&gt; conformance of all devices at every MR in main.<br>
&gt; <br>
&gt; It=E2=80=99s useful to keep drivers that have regular contributors con=
formant<br>
&gt; at most commits in main, but why do we need to keep drivers without<br=
>
&gt; contributors conformant? If somebody cares about those drivers but<br>
&gt; not<br>
&gt; enough to contribute in main, they can contribute fixes during the RC<=
br>
&gt; window or on their own schedule.<br>
&gt; <br>
&gt; We need a two-tier system:<br>
&gt; <br>
&gt; Tier 1:<br>
&gt; - Devices are tested by the CI pre-merge.<br>
&gt; - A contact person is required for CI failure assessment and closure<b=
r>
&gt; within a reasonable time. (if the person is on leave, a backup person<=
br>
&gt; must be available, or else the device is moved to Tier 2)<br>
<br>
<br>
I think this makes sense, but we need to agree on what &quot;reasonable<br>
time&quot; means to make sure everyone is on the same page.<br>
<br>
Iago<br>
<br>
&gt; - Highly recommended: A fully functional drm-shim for each CI job<br>
&gt; with<br>
&gt; a user guide, how to print compiled shaders, etc.<br>
&gt; - Links to HW documentation if available.<br>
&gt; - If maintainers end up xfailing a significant number of failures<br>
&gt; regularly, the device is moved to Tier 2. (due to not using the CI to<=
br>
&gt; maintain conformance)<br>
&gt; <br>
&gt; Tier 2:<br>
&gt; - Pre-merge CI can=E2=80=99t run on the target devices / implementatio=
ns.<br>
&gt; main<br>
&gt; doesn=E2=80=99t have to work. The quality of release branches is up to=
<br>
&gt; maintainers. The RC window can be extended.<br>
&gt; - Only unit tests can run per-merge, as well as any deviceless driver<=
br>
&gt; tests, like the following.<br>
&gt; - Optionally develop deviceless driver validation tests that verify<br=
>
&gt; driver output (shader instructions, command buffers). LLVM LIT tests<b=
r>
&gt; are the perfect example - they validate all LLVM backends and prevent<=
br>
&gt; regressions without any physical devices.<br>
&gt; <br>
&gt; <br>
&gt; Marek<br>
&gt; <br>
&gt; On Fri, May 1, 2026 at 5:21=E2=80=AFAM Daniel Stone &lt;<a href=3D"mai=
lto:[email protected]" target=3D"_blank" rel=3D"noreferrer">daniel@foois=
hbar.org</a>&gt;<br>
&gt; wrote:<br>
&gt; &gt; <br>
&gt; &gt; Hi,<br>
&gt; &gt; <br>
&gt; &gt; On Thu, 30 Apr 2026 at 23:34, Timur Krist=C3=B3f<br>
&gt; &gt; &lt;<a href=3D"mailto:[email protected]" target=3D"_blank" =
rel=3D"noreferrer">[email protected]</a>&gt; wrote:<br>
&gt; &gt; &gt; On 2026. =C3=A1prilis 30., cs=C3=BCt=C3=B6rt=C3=B6k 23:07:12=
 k=C3=B6z=C3=A9p-eur=C3=B3pai ny=C3=A1ri id=C5=91<br>
&gt; &gt; &gt; Marek Ol=C5=A1=C3=A1k<br>
&gt; &gt; &gt; wrote:<br>
&gt; &gt; &gt; &gt; First of all, no contributor to shared code is required=
 to fix<br>
&gt; &gt; &gt; &gt; issues<br>
&gt; &gt; &gt; &gt; in all drivers that their commit breaks. The goal is to=
 stop<br>
&gt; &gt; &gt; &gt; using the<br>
&gt; &gt; &gt; &gt; pre-merge CI as a justification to force unrelated cont=
ributors<br>
&gt; &gt; &gt; &gt; to<br>
&gt; &gt; &gt; &gt; work on all drivers just because they are contributors.=
 It<br>
&gt; &gt; &gt; &gt; would be a<br>
&gt; &gt; &gt; &gt; bit exploitative to assume that every contributor must =
debug<br>
&gt; &gt; &gt; &gt; all<br>
&gt; &gt; &gt; &gt; drivers that turn red due to a change. I think I unders=
tand<br>
&gt; &gt; &gt; &gt; that well<br>
&gt; &gt; &gt; &gt; because I have debugged 5+ drivers by myself in the pas=
t that<br>
&gt; &gt; &gt; &gt; are not<br>
&gt; &gt; &gt; &gt; my responsibility to maintain, and it does feel exploit=
ative.<br>
&gt; &gt; <br>
&gt; &gt; There&#39;s a bit more nuance in this though. If one set of peopl=
e is<br>
&gt; &gt; breaking 17 drivers every day because they can&#39;t be bothered =
to do<br>
&gt; &gt; the<br>
&gt; &gt; basics to keep things working and just want to yolo whatever they=
<br>
&gt; &gt; just<br>
&gt; &gt; thought of into the tree, it&#39;s &#39;unethical&#39; and unfair=
 on the rest<br>
&gt; &gt; of<br>
&gt; &gt; the people who then spend their entire time bisecting and fixing =
up<br>
&gt; &gt; what the others broke. (Those people then probably get accused of=
<br>
&gt; &gt; being freeloaders and exploiting the labour of the people breakin=
g<br>
&gt; &gt; everything, because they don&#39;t get to spend any time on fun n=
ew<br>
&gt; &gt; stuff,<br>
&gt; &gt; given all their time is spent fixing what the others broke.)<br>
&gt; &gt; <br>
&gt; &gt; I think we&#39;ve all taken it as axiomatic that there&#39;s a ba=
lance to<br>
&gt; &gt; be<br>
&gt; &gt; struck there: don&#39;t make others miserable because you can&#39=
;t be<br>
&gt; &gt; bothered spending five minutes thinking about why your new code<b=
r>
&gt; &gt; breaks<br>
&gt; &gt; existing users, but on the other hand you absolutely should expec=
t<br>
&gt; &gt; support from the relevant people to help work it out and resolve<=
br>
&gt; &gt; it.<br>
&gt; &gt; <br>
&gt; &gt; I&#39;m pretty sure no-one is suggesting ripping up that social<b=
r>
&gt; &gt; contract,<br>
&gt; &gt; but we should be clear about what we mean.<br>
&gt; &gt; <br>
&gt; &gt; &gt; &gt; Therefore, we could establish that each driver/HW combo=
 in pre-<br>
&gt; &gt; &gt; &gt; merge<br>
&gt; &gt; &gt; &gt; CI has the following options:<br>
&gt; &gt; &gt; &gt; 1) a contact person for prompt CI issue resolution<br>
&gt; &gt; &gt; &gt; 2) unconditional xfail by the author (or removal from p=
re-merge<br>
&gt; &gt; &gt; &gt; CI if<br>
&gt; &gt; &gt; &gt; logs lack the information necessary to add xfail)<br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; I think we should establish both of those, in that order.<br=
>
&gt; &gt; &gt; That is, if the contact person does not reply promptly, just=
<br>
&gt; &gt; &gt; let&#39;s add the<br>
&gt; &gt; &gt; expected failure.<br>
&gt; &gt; <br>
&gt; &gt; Yeah, that&#39;s a pretty obvious baseline. So far it seems to ha=
ve<br>
&gt; &gt; worked<br>
&gt; &gt; out in the usual way (people know who works on what so it&#39;s e=
asy to<br>
&gt; &gt; ping them however), but if that&#39;s not working out, maybe some=
one<br>
&gt; &gt; could<br>
&gt; &gt; suggest a more formal document along the lines of MAINTAINERS or<=
br>
&gt; &gt; CODEOWNERS or whatever?<br>
&gt; &gt; <br>
&gt; &gt; Cheers,<br>
&gt; &gt; Daniel<br>
&gt; <br>
<br>
</blockquote></div></div></div>

--0000000000004bc4f2065245e1ca--