[Mesa-dev] [PATCH 1/5] winsys/svga: Add an environment variable to force host-backed operation

Brian Paul brianp at vmware.com
Tue Apr 30 12:34:55 UTC 2019


The series looks good to me.

Reviewed-by: Brian Paul <brianp at vmware.com>

On 04/30/2019 05:04 AM, Thomas Hellstrom wrote:
> The vmwgfx kernel module has a compatibility mode for user-space that is
> not guest-backed resource aware. Add an environment variable to facilitate
> testing of this mode on guest-backed aware kernels: if the environment
> variable SVGA_FORCE_HOST_BACKED is defined, the driver will use host-backed
> operation.
> 
> Signed-off-by: Thomas Hellstrom <thellstrom at vmware.com>
> Reviewed-by: Deepak Rawat <drawat at vmware.com>
> ---
>   src/gallium/winsys/svga/drm/vmw_screen_ioctl.c | 17 +++++++++++------
>   1 file changed, 11 insertions(+), 6 deletions(-)
> 
> diff --git a/src/gallium/winsys/svga/drm/vmw_screen_ioctl.c b/src/gallium/winsys/svga/drm/vmw_screen_ioctl.c
> index 0ec8c1abe11..cdfe284c4c8 100644
> --- a/src/gallium/winsys/svga/drm/vmw_screen_ioctl.c
> +++ b/src/gallium/winsys/svga/drm/vmw_screen_ioctl.c
> @@ -967,6 +967,7 @@ vmw_ioctl_init(struct vmw_winsys_screen *vws)
>      drmVersionPtr version;
>      boolean drm_gb_capable;
>      boolean have_drm_2_5;
> +   const char *getenv_val;
>   
>      VMW_FUNC;
>   
> @@ -1006,17 +1007,21 @@ vmw_ioctl_init(struct vmw_winsys_screen *vws)
>         goto out_no_3d;
>      }
>      vws->ioctl.hwversion = gp_arg.value;
> -
> -   memset(&gp_arg, 0, sizeof(gp_arg));
> -   gp_arg.param = DRM_VMW_PARAM_HW_CAPS;
> -   ret = drmCommandWriteRead(vws->ioctl.drm_fd, DRM_VMW_GET_PARAM,
> -                             &gp_arg, sizeof(gp_arg));
> +   getenv_val = getenv("SVGA_FORCE_HOST_BACKED");
> +   if (!getenv_val || strcmp(getenv_val, "0") == 0) {
> +      memset(&gp_arg, 0, sizeof(gp_arg));
> +      gp_arg.param = DRM_VMW_PARAM_HW_CAPS;
> +      ret = drmCommandWriteRead(vws->ioctl.drm_fd, DRM_VMW_GET_PARAM,
> +                                &gp_arg, sizeof(gp_arg));
> +   } else {
> +      ret = -EINVAL;
> +   }
>      if (ret)
>         vws->base.have_gb_objects = FALSE;
>      else
>         vws->base.have_gb_objects =
>            !!(gp_arg.value & (uint64_t) SVGA_CAP_GBOBJECTS);
> -
> +
>      if (vws->base.have_gb_objects && !drm_gb_capable)
>         goto out_no_3d;
>   
> 



More information about the mesa-dev mailing list