Lines Matching refs:srf

43 	struct vmw_surface srf;  member
153 static inline uint32_t vmw_surface_dma_size(const struct vmw_surface *srf) in vmw_surface_dma_size() argument
155 return srf->num_sizes * sizeof(struct vmw_surface_dma); in vmw_surface_dma_size()
167 static inline uint32_t vmw_surface_define_size(const struct vmw_surface *srf) in vmw_surface_define_size() argument
169 return sizeof(struct vmw_surface_define) + srf->num_sizes * in vmw_surface_define_size()
208 static void vmw_surface_define_encode(const struct vmw_surface *srf, in vmw_surface_define_encode() argument
218 cmd_len = sizeof(cmd->body) + srf->num_sizes * sizeof(SVGA3dSize); in vmw_surface_define_encode()
222 cmd->body.sid = srf->res.id; in vmw_surface_define_encode()
223 cmd->body.surfaceFlags = srf->flags; in vmw_surface_define_encode()
224 cmd->body.format = cpu_to_le32(srf->format); in vmw_surface_define_encode()
226 cmd->body.face[i].numMipLevels = srf->mip_levels[i]; in vmw_surface_define_encode()
230 src_size = srf->sizes; in vmw_surface_define_encode()
232 for (i = 0; i < srf->num_sizes; ++i, cmd_size++, src_size++) { in vmw_surface_define_encode()
248 static void vmw_surface_dma_encode(struct vmw_surface *srf, in vmw_surface_dma_encode() argument
256 svga3dsurface_get_desc(srf->format); in vmw_surface_dma_encode()
258 for (i = 0; i < srf->num_sizes; ++i) { in vmw_surface_dma_encode()
263 const struct vmw_surface_offset *cur_offset = &srf->offsets[i]; in vmw_surface_dma_encode()
264 const struct drm_vmw_size *cur_size = &srf->sizes[i]; in vmw_surface_dma_encode()
273 body->host.sid = srf->res.id; in vmw_surface_dma_encode()
313 struct vmw_surface *srf; in vmw_hw_surface_destroy() local
340 srf = vmw_res_to_srf(res); in vmw_hw_surface_destroy()
363 struct vmw_surface *srf; in vmw_legacy_srf_create() local
371 srf = vmw_res_to_srf(res); in vmw_legacy_srf_create()
395 submit_size = vmw_surface_define_size(srf); in vmw_legacy_srf_create()
404 vmw_surface_define_encode(srf, cmd); in vmw_legacy_srf_create()
442 struct vmw_surface *srf = vmw_res_to_srf(res); in vmw_legacy_srf_dma() local
448 submit_size = vmw_surface_dma_size(srf); in vmw_legacy_srf_dma()
456 vmw_surface_dma_encode(srf, cmd, &ptr, bind); in vmw_legacy_srf_dma()
572 struct vmw_surface *srf, in vmw_surface_init() argument
576 struct vmw_resource *res = &srf->res; in vmw_surface_init()
614 prime.base)->srf.res); in vmw_user_surface_base_to_res()
624 struct vmw_surface *srf = vmw_res_to_srf(res); in vmw_user_surface_free() local
626 container_of(srf, struct vmw_user_surface, srf); in vmw_user_surface_free()
627 struct vmw_private *dev_priv = srf->res.dev_priv; in vmw_user_surface_free()
632 kfree(srf->offsets); in vmw_user_surface_free()
633 kfree(srf->sizes); in vmw_user_surface_free()
634 kfree(srf->snooper.image); in vmw_user_surface_free()
653 struct vmw_resource *res = &user_srf->srf.res; in vmw_user_surface_base_release()
691 struct vmw_surface *srf; in vmw_surface_define_ioctl() local
751 srf = &user_srf->srf; in vmw_surface_define_ioctl()
752 res = &srf->res; in vmw_surface_define_ioctl()
754 srf->flags = req->flags; in vmw_surface_define_ioctl()
755 srf->format = req->format; in vmw_surface_define_ioctl()
756 srf->scanout = req->scanout; in vmw_surface_define_ioctl()
758 memcpy(srf->mip_levels, req->mip_levels, sizeof(srf->mip_levels)); in vmw_surface_define_ioctl()
759 srf->num_sizes = num_sizes; in vmw_surface_define_ioctl()
762 srf->sizes = kmalloc(srf->num_sizes * sizeof(*srf->sizes), GFP_KERNEL); in vmw_surface_define_ioctl()
763 if (unlikely(srf->sizes == NULL)) { in vmw_surface_define_ioctl()
767 srf->offsets = kmalloc(srf->num_sizes * sizeof(*srf->offsets), in vmw_surface_define_ioctl()
769 if (unlikely(srf->sizes == NULL)) { in vmw_surface_define_ioctl()
777 ret = copy_from_user(srf->sizes, user_sizes, in vmw_surface_define_ioctl()
778 srf->num_sizes * sizeof(*srf->sizes)); in vmw_surface_define_ioctl()
784 srf->base_size = *srf->sizes; in vmw_surface_define_ioctl()
785 srf->autogen_filter = SVGA3D_TEX_FILTER_NONE; in vmw_surface_define_ioctl()
786 srf->multisample_count = 0; in vmw_surface_define_ioctl()
789 cur_offset = srf->offsets; in vmw_surface_define_ioctl()
790 cur_size = srf->sizes; in vmw_surface_define_ioctl()
793 for (j = 0; j < srf->mip_levels[i]; ++j) { in vmw_surface_define_ioctl()
807 if (srf->scanout && in vmw_surface_define_ioctl()
808 srf->num_sizes == 1 && in vmw_surface_define_ioctl()
809 srf->sizes[0].width == 64 && in vmw_surface_define_ioctl()
810 srf->sizes[0].height == 64 && in vmw_surface_define_ioctl()
811 srf->format == SVGA3D_A8R8G8B8) { in vmw_surface_define_ioctl()
813 srf->snooper.image = kmalloc(64 * 64 * 4, GFP_KERNEL); in vmw_surface_define_ioctl()
815 if (srf->snooper.image) { in vmw_surface_define_ioctl()
816 memset(srf->snooper.image, 0x00, 64 * 64 * 4); in vmw_surface_define_ioctl()
823 srf->snooper.image = NULL; in vmw_surface_define_ioctl()
825 srf->snooper.crtc = NULL; in vmw_surface_define_ioctl()
837 ret = vmw_surface_init(dev_priv, srf, vmw_user_surface_free); in vmw_surface_define_ioctl()
860 tmp = vmw_resource_reference(&srf->res); in vmw_surface_define_ioctl()
877 kfree(srf->offsets); in vmw_surface_define_ioctl()
879 kfree(srf->sizes); in vmw_surface_define_ioctl()
980 struct vmw_surface *srf; in vmw_surface_reference_ioctl() local
992 srf = &user_srf->srf; in vmw_surface_reference_ioctl()
994 rep->flags = srf->flags; in vmw_surface_reference_ioctl()
995 rep->format = srf->format; in vmw_surface_reference_ioctl()
996 memcpy(rep->mip_levels, srf->mip_levels, sizeof(srf->mip_levels)); in vmw_surface_reference_ioctl()
1001 ret = copy_to_user(user_sizes, &srf->base_size, in vmw_surface_reference_ioctl()
1002 sizeof(srf->base_size)); in vmw_surface_reference_ioctl()
1005 user_sizes, srf->num_sizes); in vmw_surface_reference_ioctl()
1024 struct vmw_surface *srf = vmw_res_to_srf(res); in vmw_gb_surface_create() local
1059 cmd->body.sid = srf->res.id; in vmw_gb_surface_create()
1060 cmd->body.surfaceFlags = srf->flags; in vmw_gb_surface_create()
1061 cmd->body.format = cpu_to_le32(srf->format); in vmw_gb_surface_create()
1062 cmd->body.numMipLevels = srf->mip_levels[0]; in vmw_gb_surface_create()
1063 cmd->body.multisampleCount = srf->multisample_count; in vmw_gb_surface_create()
1064 cmd->body.autogenFilter = srf->autogen_filter; in vmw_gb_surface_create()
1065 cmd->body.size.width = srf->base_size.width; in vmw_gb_surface_create()
1066 cmd->body.size.height = srf->base_size.height; in vmw_gb_surface_create()
1067 cmd->body.size.depth = srf->base_size.depth; in vmw_gb_surface_create()
1238 struct vmw_surface *srf; in vmw_gb_surface_define_ioctl() local
1282 srf = &user_srf->srf; in vmw_gb_surface_define_ioctl()
1283 res = &srf->res; in vmw_gb_surface_define_ioctl()
1285 srf->flags = req->svga3d_flags; in vmw_gb_surface_define_ioctl()
1286 srf->format = req->format; in vmw_gb_surface_define_ioctl()
1287 srf->scanout = req->drm_surface_flags & drm_vmw_surface_flag_scanout; in vmw_gb_surface_define_ioctl()
1288 srf->mip_levels[0] = req->mip_levels; in vmw_gb_surface_define_ioctl()
1289 srf->num_sizes = 1; in vmw_gb_surface_define_ioctl()
1290 srf->sizes = NULL; in vmw_gb_surface_define_ioctl()
1291 srf->offsets = NULL; in vmw_gb_surface_define_ioctl()
1293 srf->base_size = req->base_size; in vmw_gb_surface_define_ioctl()
1294 srf->autogen_filter = SVGA3D_TEX_FILTER_NONE; in vmw_gb_surface_define_ioctl()
1295 srf->multisample_count = req->multisample_count; in vmw_gb_surface_define_ioctl()
1297 (srf->format, srf->base_size, srf->mip_levels[0], in vmw_gb_surface_define_ioctl()
1298 srf->flags & SVGA3D_SURFACE_CUBEMAP); in vmw_gb_surface_define_ioctl()
1310 ret = vmw_surface_init(dev_priv, srf, vmw_user_surface_free); in vmw_gb_surface_define_ioctl()
1333 tmp = vmw_resource_reference(&srf->res); in vmw_gb_surface_define_ioctl()
1387 struct vmw_surface *srf; in vmw_gb_surface_reference_ioctl() local
1399 srf = &user_srf->srf; in vmw_gb_surface_reference_ioctl()
1400 if (srf->res.backup == NULL) { in vmw_gb_surface_reference_ioctl()
1406 ret = vmw_user_dmabuf_reference(tfile, srf->res.backup, in vmw_gb_surface_reference_ioctl()
1418 rep->creq.svga3d_flags = srf->flags; in vmw_gb_surface_reference_ioctl()
1419 rep->creq.format = srf->format; in vmw_gb_surface_reference_ioctl()
1420 rep->creq.mip_levels = srf->mip_levels[0]; in vmw_gb_surface_reference_ioctl()
1422 rep->creq.multisample_count = srf->multisample_count; in vmw_gb_surface_reference_ioctl()
1423 rep->creq.autogen_filter = srf->autogen_filter; in vmw_gb_surface_reference_ioctl()
1425 rep->creq.base_size = srf->base_size; in vmw_gb_surface_reference_ioctl()
1427 rep->crep.backup_size = srf->res.backup_size; in vmw_gb_surface_reference_ioctl()
1430 drm_vma_node_offset_addr(&srf->res.backup->base.vma_node); in vmw_gb_surface_reference_ioctl()
1431 rep->crep.buffer_size = srf->res.backup->base.num_pages * PAGE_SIZE; in vmw_gb_surface_reference_ioctl()