Quoting Tvrtko Ursulin (2018-02-21 13:42:29) > > 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@xxxxxxxxxxxxxxxxxx> > >>>>> Cc: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxx> > >>>>> --- > >>>>> 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; & 63 Just to remind you how broken it all is. > 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; > } > class/instance to the rescue. :) -Chris _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx