On Sun, Jan 7, 2018 at 6:39 PM, Connor Abbott <cwabbo...@gmail.com> wrote:
> On Sun, Jan 7, 2018 at 3:42 PM, Karol Herbst <kher...@redhat.com> wrote:
>> significant changes to last series:
>> * disable support for 64 bit types
>> * fix tessellation shader bugs
>> * assume vec4 elements for variable index arrays (MemoryOpts workaround)
>>
>> piglit run -x glx -x egl -x streaming-texture-leak -x max-texture-size 
>> tests/gpu.py:
>> [26010/26010] skip: 10410, pass: 15386, warn: 9, fail: 191, crash: 14
>>
>> remaining issues:
>> * transform feedback with geometry shaders
>> * indirects in image_load/store
>> * interpolateAt
>> * getting 64 bit types to work. This is mainly limited by codegen RA being
>>   not able to handle those correctly, because from_TGSI just generates merge
>>   and splits and doesn't hit the faulty paths.
>
> Just curious... what's the issue with register allocation?

There are probably a few, but at least one is that it wants both sides
of a phi to be compounds (or neither). So if you have e.g.

x int64;
if (foo) {
  x = a + b;
} else {
  x = (c, d) [i.e. high word is one, low word is the other]
}
use(x)

Then you may end up with a 64-bit phi, with one of the arguments that
is a compound (the merge), and one of which isn't. The RA doesn't
handle that situation.

I believe currently we have enough splits/merges that everything
that's 64-bit ends up being marked as a compound.

I wonder if we can "just do that" for 64-bit values - i.e. auto-mark
them as compound. It all requires carefully figuring out how RA works
with all of this.

  -ilia
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to