[Intel-gfx] [PATCH] drm/i915: Drop platform_mask

Tvrtko Ursulin tvrtko.ursulin at linux.intel.com
Fri Mar 15 07:13:49 UTC 2019


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


More information about the Intel-gfx mailing list