[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