[Intel-gfx] [PATCH igt v2] lib: Skip aliased bsd ABI ring if bsd2 is available
Tvrtko Ursulin
tvrtko.ursulin at linux.intel.com
Wed Feb 21 13:42:29 UTC 2018
On 21/02/2018 13:35, Tvrtko Ursulin wrote:
>
> On 21/02/2018 13:07, Chris Wilson wrote:
>> Quoting Tvrtko Ursulin (2018-02-21 12:55:17)
>>>
>>> On 21/02/2018 12:53, Tvrtko Ursulin wrote:
>>>>
>>>> On 21/02/2018 12:17, Chris Wilson wrote:
>>>>> How much do I want this uABI to rot away? Say "Never again!" to
>>>>> implicit
>>>>> aliasing.
>>>>>
>>>>> In the meantime, we do not need to perform duplicate work on bsd2
>>>>> machines, as especially we do not know which engine bsd relates to.
>>>>>
>>>>> v2: When in doubt, shout!
>>>>>
>>>>> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
>>>>> Cc: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
>>>>> ---
>>>>> lib/ioctl_wrappers.c | 2 +-
>>>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/lib/ioctl_wrappers.c b/lib/ioctl_wrappers.c
>>>>> index 8748cfcf..b9b86079 100644
>>>>> --- a/lib/ioctl_wrappers.c
>>>>> +++ b/lib/ioctl_wrappers.c
>>>>> @@ -1460,7 +1460,7 @@ bool gem_has_ring(int fd, unsigned ring)
>>>>> /* silly ABI, the kernel thinks everyone who has BSD also has
>>>>> BSD2 */
>>>>> if ((ring & ~(3<<13)) == I915_EXEC_BSD) {
>>>>> - if (ring & (3 << 13) && !gem_has_bsd2(fd))
>>>>> + if (!(ring & (3 << 13)) ^ !gem_has_bsd2(fd))
>>>>> return false;
>>>>> }
For preserving time and sanity:
bool is_bsd = (ring & 0xf) == I915_EXEC_BSD;
bool implicit_bsd = !(ring & (3 << 13));
bool supports_explicit_bsd = gem_has_bsd2(fd);
if (is_bsd) {
if (implicit_bsd && supports_explicit_bsd)
return false;
else if (!implicit_bsd && !supports_explicit_bsd)
return false;
}
?
Regards,
Tvrtko
More information about the Intel-gfx
mailing list