Hi Christian, On Fri, 2017-06-09 at 12:27 +0200, Christian Gmeiner wrote: > It is safe to submit the full struct even on older kernels as such > kernels do not process the full struct. Without this change it > becomes quite challenging to extned the submit struct. > > Freedreno has no special treatment too. See git commits > - freedreno: sync uapi header > - freedreno: add fence fd support
Reading drm_ioctl() closely, I can see that it is safe to submit a struct larger than what the kernel expects. I have applied this patch and reverted kernel commits 78ec187f64fa ("drm/etnaviv: submit support for out-fences") and 9ad59fea162c ("drm/etnaviv: submit support for in-fences") to test, without ill effects. > Signed-off-by: Christian Gmeiner <christian.gmei...@gmail.com> Reviewed-by: Philipp Zabel <p.za...@pengutronix.de> Tested-by: Philipp Zabel <p.za...@pengutronix.de> regards Philipp > --- > etnaviv/etnaviv_cmd_stream.c | 8 +------- > 1 file changed, 1 insertion(+), 7 deletions(-) > > diff --git a/etnaviv/etnaviv_cmd_stream.c b/etnaviv/etnaviv_cmd_stream.c > index 3c7b0ed..8d0e813 100644 > --- a/etnaviv/etnaviv_cmd_stream.c > +++ b/etnaviv/etnaviv_cmd_stream.c > @@ -203,14 +203,8 @@ static void flush(struct etna_cmd_stream *stream, int > in_fence_fd, > if (out_fence_fd) > req.flags |= ETNA_SUBMIT_FENCE_FD_OUT; > > - /* > - * Pass the complete submit structure only if flags are set. Otherwise, > - * only pass the fields up to, but not including the flags field for > - * backwards compatiblity with older kernels. > - */ > ret = drmCommandWriteRead(gpu->dev->fd, DRM_ETNAVIV_GEM_SUBMIT, > - &req, req.flags ? sizeof(req) : > - offsetof(struct drm_etnaviv_gem_submit, flags)); > + &req, sizeof(req)); > > if (ret) > ERROR_MSG("submit failed: %d (%s)", ret, strerror(errno)); _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev