etnaviv: Only use renderonly_get_handle for GEM handles.

Note that for requests for Prime FDs or flink names, we return handles to
the etanviv BO, not the scanout BO.  This is at least better than previous
behavior of returning GEM handles for a request for an FD or flink name.

And add an assert that renderonly_get_handle is only used for getting the
GEM handle.

Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
This commit is contained in:
Eric Anholt 2017-05-10 16:06:11 -07:00
parent d5a9608076
commit 7a17191305
2 changed files with 3 additions and 1 deletions

View File

@ -87,6 +87,7 @@ renderonly_get_handle(struct renderonly_scanout *scanout,
if (!scanout)
return FALSE;
assert(handle->type == DRM_API_HANDLE_TYPE_KMS);
handle->handle = scanout->handle;
handle->stride = scanout->stride;

View File

@ -401,7 +401,8 @@ etna_resource_get_handle(struct pipe_screen *pscreen,
{
struct etna_resource *rsc = etna_resource(prsc);
if (renderonly_get_handle(rsc->scanout, handle))
if (handle->type == DRM_API_HANDLE_TYPE_KMS &&
renderonly_get_handle(rsc->scanout, handle))
return TRUE;
return etna_screen_bo_get_handle(pscreen, rsc->bo, rsc->levels[0].stride,