On Mon, Feb 24, 2014 at 2:05 AM, Thomas Hellstrom <thellst...@vmware.com>wrote:
> This avoids the kernel driver spewing out errors about the param not being > supported. > > Also correct the max surface size used when the kernel does not support the > query. > > Reported-by: Brian Paul <bri...@vmware.com> > Signed-off-by: Thomas Hellstrom <thellst...@vmware.com> > Reviewed-by: Charmaine Lee <charmai...@vmware.com> > Cc: "10.1" <mesa-sta...@lists.freedesktop.org> > --- > src/gallium/winsys/svga/drm/vmw_screen_ioctl.c | 15 ++++++++------- > 1 file changed, 8 insertions(+), 7 deletions(-) > > diff --git a/src/gallium/winsys/svga/drm/vmw_screen_ioctl.c > b/src/gallium/winsys/svga/drm/vmw_screen_ioctl.c > index b7bedb1..2866a29 100644 > --- a/src/gallium/winsys/svga/drm/vmw_screen_ioctl.c > +++ b/src/gallium/winsys/svga/drm/vmw_screen_ioctl.c > @@ -762,7 +762,7 @@ vmw_ioctl_init(struct vmw_winsys_screen *vws) > int ret; > uint32_t *cap_buffer; > drmVersionPtr version; > - boolean drm_gb_capable; > + boolean have_drm_2_5; > > VMW_FUNC; > > @@ -770,7 +770,7 @@ vmw_ioctl_init(struct vmw_winsys_screen *vws) > if (!version) > goto out_no_version; > > - drm_gb_capable = version->version_major > 2 || > + have_drm_2_5 = version->version_major > 2 || > (version->version_major == 2 && version->version_minor > 4); > How about something like: have_drm_2_5 = version->version_major * 100 + version->version_minor >= 205? Not a big deal though. Thanks for fixing this. Reviewed-by: Brian Paul <bri...@vmware.com> > > memset(&gp_arg, 0, sizeof(gp_arg)); > @@ -803,7 +803,7 @@ vmw_ioctl_init(struct vmw_winsys_screen *vws) > vws->base.have_gb_objects = > !!(gp_arg.value & (uint64_t) SVGA_CAP_GBOBJECTS); > > - if (vws->base.have_gb_objects && !drm_gb_capable) > + if (vws->base.have_gb_objects && !have_drm_2_5) > goto out_no_3d; > > if (vws->base.have_gb_objects) { > @@ -839,11 +839,12 @@ vmw_ioctl_init(struct vmw_winsys_screen *vws) > > memset(&gp_arg, 0, sizeof(gp_arg)); > gp_arg.param = DRM_VMW_PARAM_MAX_SURF_MEMORY; > - ret = drmCommandWriteRead(vws->ioctl.drm_fd, DRM_VMW_GET_PARAM, > - &gp_arg, sizeof(gp_arg)); > - if (ret) { > + if (have_drm_2_5) > + ret = drmCommandWriteRead(vws->ioctl.drm_fd, DRM_VMW_GET_PARAM, > + &gp_arg, sizeof(gp_arg)); > + if (!have_drm_2_5 || ret) { > /* Just guess a large enough value, around 800mb. */ > - vws->ioctl.max_surface_memory = 0x300000000; > + vws->ioctl.max_surface_memory = 0x30000000; > } else { > vws->ioctl.max_surface_memory = gp_arg.value; > } > -- > 1.7.10.4 > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev