On 15/03/2019 06:56, Tvrtko Ursulin wrote:
On 15/03/2019 00:52, Chris Wilson wrote:
Quoting José Roberto de Souza (2019-03-15 00:42:35)
We don't have any platform that is composed by 2 or more platforms so
we don't need a mask, lets drop it and remove the actual limit of 32
platforms.
Platform mask was a nifty trick to compile tests like IS_SKYLAKE ||
IS_BROADWELL etc into a single conditional.
gcc doesn't entirely agree, this is a net loss here (i.e. code size
increases).
Perhaps the size re-gain of dropping the platform mask could be checked
against the size gain of making the mask 64 bit.
One possible alternative could be splitting the 64-bit platform mask
into two 32-bit dwords. Like:
u32 platform_mask[2];
#define IS_PLATFORM(p) (platform_mask[p / 32] & BIT(p % 32))
And a bit of jigging the enum space so that we don't end up with
something often tested together on the dword boundary.
In fact I had a prototype many months ago which went a step further and
interleaved platform with gen mask, in some sized chunks, so even
IS_PLATFORM || IS_GEN checks could be merged. This included the
sub-platform thing as well with the ULT/ULX/LP stuff I think.. maybe I
need to dig this out to see how it worked.
Regards,
Tvrtko
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx