[Linux-graphics-maintainer] [PATCH] glamor: Work around GEM usage v2

Thomas Hellstrom thellstrom at vmware.com
Wed Jun 20 18:18:38 UTC 2018


On 06/20/2018 07:58 PM, Deepak Singh Rawat wrote:
> The patch looks good to me just one question, I see that flink name
> is returned as fd, so handle is what vmwgfx expecting in that case ?

Yes. vmwgfx doesn't differentiate between handles and names.

/Thomas



>
> Reviewed-by: Deepak Rawat <drawat at vmware.com>
>
>> KMS drivers are not required to support GEM. In particular, vmwgfx
>> doesn't support flink and handles and names are identical.
>> Getting a bo name should really be part of a lower level API, if needed,
>> but in the mean time work around this by setting the name identical to
>> the handle if GEM isn't supported.
>>
>> This fixes modesetting driver dri2 on vmwgfx.
>>
>> Signed-off-by: Thomas Hellstrom <thellstrom at vmware.com>
>> ---
>> v2: Strip changes to an unrelated file.
>> ---
>>   glamor/glamor_egl.c | 14 ++++++++++++--
>>   1 file changed, 12 insertions(+), 2 deletions(-)
>>
>> diff --git a/glamor/glamor_egl.c b/glamor/glamor_egl.c
>> index 4a4ca4bd8..7ec749742 100644
>> --- a/glamor/glamor_egl.c
>> +++ b/glamor/glamor_egl.c
>> @@ -99,8 +99,18 @@ glamor_get_flink_name(int fd, int handle, int *name)
>>       struct drm_gem_flink flink;
>>
>>       flink.handle = handle;
>> -    if (ioctl(fd, DRM_IOCTL_GEM_FLINK, &flink) < 0)
>> -        return FALSE;
>> +    if (ioctl(fd, DRM_IOCTL_GEM_FLINK, &flink) < 0) {
>> +
>> +	/*
>> +	 * Assume non-GEM kernels have names identical to the handle
>> +	 */
>> +	if (errno == ENODEV) {
>> +	    *name = handle;
>> +	    return TRUE;
>> +	} else {
>> +	    return FALSE;
>> +	}
>> +    }
>>       *name = flink.name;
>>       return TRUE;
>>   }
>> --
>> 2.14.3
>>
>> _______________________________________________
>> Sent to linux-graphics-maintainer at vmware.com




More information about the xorg-devel mailing list