winsys/drm: enable intra_surface_copy if HW_CAP2 is supported
With drm version 2_15, we can inquire for support of HW_CAP2. If it is supported, we can enable intra_surface_copy support. Reviewed-by: Brian Paul <brianp@vmware.com> Reviewed-by: Sinclair Yeh <syeh@vmware.com> Reviewed-by: Deepak Rawat <drawat@vmware.com>
This commit is contained in:
committed by
Brian Paul
parent
7448bb0089
commit
b5827db2ea
@@ -1018,14 +1018,9 @@ vmw_ioctl_init(struct vmw_winsys_screen *vws)
|
||||
if (vws->base.have_gb_objects && !drm_gb_capable)
|
||||
goto out_no_3d;
|
||||
|
||||
/*
|
||||
* CAP2 functionality is not yet in vmwgfx. Till then, avoiding
|
||||
* this code path.
|
||||
*/
|
||||
vws->base.have_intra_surface_copy = FALSE;
|
||||
|
||||
vws->base.have_vgpu10 = FALSE;
|
||||
vws->base.have_sm4_1 = FALSE;
|
||||
vws->base.have_intra_surface_copy = FALSE;
|
||||
|
||||
if (vws->base.have_gb_objects) {
|
||||
memset(&gp_arg, 0, sizeof(gp_arg));
|
||||
@@ -1074,6 +1069,14 @@ vmw_ioctl_init(struct vmw_winsys_screen *vws)
|
||||
}
|
||||
|
||||
if (vws->ioctl.have_drm_2_15) {
|
||||
memset(&gp_arg, 0, sizeof(gp_arg));
|
||||
gp_arg.param = DRM_VMW_PARAM_HW_CAPS2;
|
||||
ret = drmCommandWriteRead(vws->ioctl.drm_fd, DRM_VMW_GET_PARAM,
|
||||
&gp_arg, sizeof(gp_arg));
|
||||
if (ret == 0 && gp_arg.value != 0) {
|
||||
vws->base.have_intra_surface_copy = TRUE;
|
||||
}
|
||||
|
||||
memset(&gp_arg, 0, sizeof(gp_arg));
|
||||
gp_arg.param = DRM_VMW_PARAM_SM4_1;
|
||||
ret = drmCommandWriteRead(vws->ioctl.drm_fd, DRM_VMW_GET_PARAM,
|
||||
|
||||
Reference in New Issue
Block a user