[This time with mesa-dev@ in the list, and less typos]

Hi Rob,

On Mon, 12 Nov 2018 at 15:14, Robert Foss <robert.f...@collabora.com> wrote:

> +++ b/src/gallium/drivers/virgl/virgl_screen.c
> @@ -340,7 +340,7 @@ virgl_get_param(struct pipe_screen *screen, enum pipe_cap 
> param)
>     case PIPE_CAP_VIDEO_MEMORY:
>        return 0;
>     case PIPE_CAP_NATIVE_FENCE_FD:
> -      return 0;
> +      return vscreen->vws->driver_version(vscreen->vws) >= 1;

It seems like the driver_version() vfunc is missing for the vtest winsys.

One could go with an empty stub or drop the function in faviour of a winsys
variable (or bitmask). Personally, I'm leaning towards the latter, although
either will do.


> +static void virgl_fence_server_sync(struct virgl_winsys *vws,
> +                                   struct virgl_cmd_buf *cbuf,
> +                                    struct pipe_fence_handle *fence)
> +{
> +   struct virgl_hw_res *hw_res = virgl_hw_res(fence);
> +
> +   assert(hw_res->fence_fd != -1);
> +
Skimming at other drivers - they're not using an assert, so I'd change this to
an if statement.

> +   if (cbuf->in_fence_fd == -1) {
> +       cbuf->in_fence_fd = dup(hw_res->fence_fd);
> +   } else {
> +        int new_fd = sync_merge("virgl", cbuf->in_fence_fd, 
> hw_res->fence_fd);
> +        close(cbuf->in_fence_fd);
> +        cbuf->in_fence_fd = new_fd;

The above if/else seems like an open-coded version of sync_accumulate().

Despite the above comments, the kernel interface seems reasonable IMHO.
Would be great if one more person else double-checks it though.

With the three bits handled the patch is:
Reviewed-by: Emil Velikov <emil.veli...@collabora.com>

HTH
Emil
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to