<html>
    <head>
      <base href="https://bugs.freedesktop.org/">
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - nir_instr_as_deref: Assertion `parent && parent->type == nir_instr_type_deref' failed."
   href="https://bugs.freedesktop.org/show_bug.cgi?id=109603#c1">Comment # 1</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - nir_instr_as_deref: Assertion `parent && parent->type == nir_instr_type_deref' failed."
   href="https://bugs.freedesktop.org/show_bug.cgi?id=109603">bug 109603</a>
              from <span class="vcard"><a class="email" href="mailto:xavierb@gmail.com" title="xbx <xavierb@gmail.com>"> <span class="fn">xbx</span></a>
</span></b>
        <pre>the hlsl code it was compiled from:

RWBuffer<uint>   Weights : register(u0);

struct SCtx
{
    uint        iList   ;
        uint    LightId ;
        float   LightW  ;
};

void LoadLight(in out SCtx C)
{
        const uint LightIdW = Weights[C.iList];
        C.LightId       = LightIdW & 0xFFFFFF;
        C.LightW        = float(LightIdW >> 24)/255.;
}

void GoToNextLight(in out SCtx C, uint LightId)
{
    if (LightId != C.LightId)
        return;
    C.iList++;
        LoadLight(C);
}

groupshared     uint    Group_DstLightIdWs[16 * 32];

[numthreads(32,1,1)]
void main(uint iMerge : SV_DispatchThreadID)
{
    const uint  iListSrc0                       = 4 * iMerge;
        const uint      iDstLightIdW_Start = 16 * iMerge;

        SCtx    Ctxs[4];

        [loop]
        for (uint iDstLightIdW = 0; iDstLightIdW<16; iDstLightIdW++) {
                uint    LightId = Ctxs[0].LightId;
                Group_DstLightIdWs[iDstLightIdW_Start + iDstLightIdW] =
LightId;
                for (uint iListSrc = 0; iListSrc < 4; iListSrc++) {
                        GoToNextLight(Ctxs[iListSrc], LightId);
                }
        }

    if (iMerge < 123) {
                for (uint iDstLightIdW = 0; iDstLightIdW<16; iDstLightIdW++) {
                        Weights[iDstLightIdW_Start+iDstLightIdW] =
Group_DstLightIdWs[iDstLightIdW_Start+iDstLightIdW];
                }
        }
}</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>