r600g: handle DRM_API_HANDLE_TYPE_KMS in buffer_get_handle
This commit is contained in:
parent
e4fe18a620
commit
c85e53bebf
|
@ -48,19 +48,22 @@ boolean r600_buffer_get_handle(struct radeon *rw,
|
|||
struct winsys_handle *whandle)
|
||||
{
|
||||
struct drm_gem_flink flink;
|
||||
struct r600_buffer* rbuffer;
|
||||
int r;
|
||||
struct r600_buffer* rbuffer = (struct r600_buffer*)buf;
|
||||
|
||||
rbuffer = (struct r600_buffer*)buf;
|
||||
if (!rbuffer->flink) {
|
||||
flink.handle = rbuffer->bo->handle;
|
||||
r = ioctl(rw->fd, DRM_IOCTL_GEM_FLINK, &flink);
|
||||
if (r) {
|
||||
return FALSE;
|
||||
if (whandle->type == DRM_API_HANDLE_TYPE_SHARED) {
|
||||
if (!rbuffer->flink) {
|
||||
flink.handle = rbuffer->bo->handle;
|
||||
|
||||
if (ioctl(rw->fd, DRM_IOCTL_GEM_FLINK, &flink)) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
rbuffer->flink = flink.name;
|
||||
}
|
||||
rbuffer->flink = flink.name;
|
||||
whandle->handle = rbuffer->flink;
|
||||
} else if (whandle->type == DRM_API_HANDLE_TYPE_KMS) {
|
||||
whandle->handle = rbuffer->bo->handle;
|
||||
}
|
||||
whandle->handle = rbuffer->flink;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue