• Home
  • Raw
  • Download

Lines Matching refs:srf

47 	struct vmw_surface srf;  member
157 static inline uint32_t vmw_surface_dma_size(const struct vmw_surface *srf) in vmw_surface_dma_size() argument
159 return srf->num_sizes * sizeof(struct vmw_surface_dma); in vmw_surface_dma_size()
171 static inline uint32_t vmw_surface_define_size(const struct vmw_surface *srf) in vmw_surface_define_size() argument
173 return sizeof(struct vmw_surface_define) + srf->num_sizes * in vmw_surface_define_size()
212 static void vmw_surface_define_encode(const struct vmw_surface *srf, in vmw_surface_define_encode() argument
222 cmd_len = sizeof(cmd->body) + srf->num_sizes * sizeof(SVGA3dSize); in vmw_surface_define_encode()
226 cmd->body.sid = srf->res.id; in vmw_surface_define_encode()
227 cmd->body.surfaceFlags = srf->flags; in vmw_surface_define_encode()
228 cmd->body.format = srf->format; in vmw_surface_define_encode()
230 cmd->body.face[i].numMipLevels = srf->mip_levels[i]; in vmw_surface_define_encode()
234 src_size = srf->sizes; in vmw_surface_define_encode()
236 for (i = 0; i < srf->num_sizes; ++i, cmd_size++, src_size++) { in vmw_surface_define_encode()
252 static void vmw_surface_dma_encode(struct vmw_surface *srf, in vmw_surface_dma_encode() argument
260 svga3dsurface_get_desc(srf->format); in vmw_surface_dma_encode()
262 for (i = 0; i < srf->num_sizes; ++i) { in vmw_surface_dma_encode()
267 const struct vmw_surface_offset *cur_offset = &srf->offsets[i]; in vmw_surface_dma_encode()
268 const struct drm_vmw_size *cur_size = &srf->sizes[i]; in vmw_surface_dma_encode()
277 body->host.sid = srf->res.id; in vmw_surface_dma_encode()
317 struct vmw_surface *srf; in vmw_hw_surface_destroy() local
344 srf = vmw_res_to_srf(res); in vmw_hw_surface_destroy()
367 struct vmw_surface *srf; in vmw_legacy_srf_create() local
375 srf = vmw_res_to_srf(res); in vmw_legacy_srf_create()
399 submit_size = vmw_surface_define_size(srf); in vmw_legacy_srf_create()
408 vmw_surface_define_encode(srf, cmd); in vmw_legacy_srf_create()
446 struct vmw_surface *srf = vmw_res_to_srf(res); in vmw_legacy_srf_dma() local
451 submit_size = vmw_surface_dma_size(srf); in vmw_legacy_srf_dma()
459 vmw_surface_dma_encode(srf, cmd, &ptr, bind); in vmw_legacy_srf_dma()
575 struct vmw_surface *srf, in vmw_surface_init() argument
579 struct vmw_resource *res = &srf->res; in vmw_surface_init()
600 INIT_LIST_HEAD(&srf->view_list); in vmw_surface_init()
618 prime.base)->srf.res); in vmw_user_surface_base_to_res()
628 struct vmw_surface *srf = vmw_res_to_srf(res); in vmw_user_surface_free() local
630 container_of(srf, struct vmw_user_surface, srf); in vmw_user_surface_free()
631 struct vmw_private *dev_priv = srf->res.dev_priv; in vmw_user_surface_free()
636 kfree(srf->offsets); in vmw_user_surface_free()
637 kfree(srf->sizes); in vmw_user_surface_free()
638 kfree(srf->snooper.image); in vmw_user_surface_free()
657 struct vmw_resource *res = &user_srf->srf.res; in vmw_user_surface_base_release()
695 struct vmw_surface *srf; in vmw_surface_define_ioctl() local
758 srf = &user_srf->srf; in vmw_surface_define_ioctl()
759 res = &srf->res; in vmw_surface_define_ioctl()
761 srf->flags = req->flags; in vmw_surface_define_ioctl()
762 srf->format = req->format; in vmw_surface_define_ioctl()
763 srf->scanout = req->scanout; in vmw_surface_define_ioctl()
765 memcpy(srf->mip_levels, req->mip_levels, sizeof(srf->mip_levels)); in vmw_surface_define_ioctl()
766 srf->num_sizes = num_sizes; in vmw_surface_define_ioctl()
768 srf->sizes = memdup_user((struct drm_vmw_size __user *)(unsigned long) in vmw_surface_define_ioctl()
770 sizeof(*srf->sizes) * srf->num_sizes); in vmw_surface_define_ioctl()
771 if (IS_ERR(srf->sizes)) { in vmw_surface_define_ioctl()
772 ret = PTR_ERR(srf->sizes); in vmw_surface_define_ioctl()
775 srf->offsets = kmalloc_array(srf->num_sizes, in vmw_surface_define_ioctl()
776 sizeof(*srf->offsets), in vmw_surface_define_ioctl()
778 if (unlikely(!srf->offsets)) { in vmw_surface_define_ioctl()
783 srf->base_size = *srf->sizes; in vmw_surface_define_ioctl()
784 srf->autogen_filter = SVGA3D_TEX_FILTER_NONE; in vmw_surface_define_ioctl()
785 srf->multisample_count = 0; in vmw_surface_define_ioctl()
788 cur_offset = srf->offsets; in vmw_surface_define_ioctl()
789 cur_size = srf->sizes; in vmw_surface_define_ioctl()
792 for (j = 0; j < srf->mip_levels[i]; ++j) { in vmw_surface_define_ioctl()
806 if (srf->scanout && in vmw_surface_define_ioctl()
807 srf->num_sizes == 1 && in vmw_surface_define_ioctl()
808 srf->sizes[0].width == 64 && in vmw_surface_define_ioctl()
809 srf->sizes[0].height == 64 && in vmw_surface_define_ioctl()
810 srf->format == SVGA3D_A8R8G8B8) { in vmw_surface_define_ioctl()
812 srf->snooper.image = kzalloc(64 * 64 * 4, GFP_KERNEL); in vmw_surface_define_ioctl()
813 if (!srf->snooper.image) { in vmw_surface_define_ioctl()
819 srf->snooper.image = NULL; in vmw_surface_define_ioctl()
832 ret = vmw_surface_init(dev_priv, srf, vmw_user_surface_free); in vmw_surface_define_ioctl()
855 tmp = vmw_resource_reference(&srf->res); in vmw_surface_define_ioctl()
872 kfree(srf->offsets); in vmw_surface_define_ioctl()
874 kfree(srf->sizes); in vmw_surface_define_ioctl()
977 struct vmw_surface *srf; in vmw_surface_reference_ioctl() local
989 srf = &user_srf->srf; in vmw_surface_reference_ioctl()
991 rep->flags = srf->flags; in vmw_surface_reference_ioctl()
992 rep->format = srf->format; in vmw_surface_reference_ioctl()
993 memcpy(rep->mip_levels, srf->mip_levels, sizeof(srf->mip_levels)); in vmw_surface_reference_ioctl()
998 ret = copy_to_user(user_sizes, &srf->base_size, in vmw_surface_reference_ioctl()
999 sizeof(srf->base_size)); in vmw_surface_reference_ioctl()
1002 user_sizes, srf->num_sizes); in vmw_surface_reference_ioctl()
1021 struct vmw_surface *srf = vmw_res_to_srf(res); in vmw_gb_surface_create() local
1048 if (srf->array_size > 0) { in vmw_gb_surface_create()
1068 if (srf->array_size > 0) { in vmw_gb_surface_create()
1071 cmd2->body.sid = srf->res.id; in vmw_gb_surface_create()
1072 cmd2->body.surfaceFlags = srf->flags; in vmw_gb_surface_create()
1073 cmd2->body.format = cpu_to_le32(srf->format); in vmw_gb_surface_create()
1074 cmd2->body.numMipLevels = srf->mip_levels[0]; in vmw_gb_surface_create()
1075 cmd2->body.multisampleCount = srf->multisample_count; in vmw_gb_surface_create()
1076 cmd2->body.autogenFilter = srf->autogen_filter; in vmw_gb_surface_create()
1077 cmd2->body.size.width = srf->base_size.width; in vmw_gb_surface_create()
1078 cmd2->body.size.height = srf->base_size.height; in vmw_gb_surface_create()
1079 cmd2->body.size.depth = srf->base_size.depth; in vmw_gb_surface_create()
1080 cmd2->body.arraySize = srf->array_size; in vmw_gb_surface_create()
1084 cmd->body.sid = srf->res.id; in vmw_gb_surface_create()
1085 cmd->body.surfaceFlags = srf->flags; in vmw_gb_surface_create()
1086 cmd->body.format = cpu_to_le32(srf->format); in vmw_gb_surface_create()
1087 cmd->body.numMipLevels = srf->mip_levels[0]; in vmw_gb_surface_create()
1088 cmd->body.multisampleCount = srf->multisample_count; in vmw_gb_surface_create()
1089 cmd->body.autogenFilter = srf->autogen_filter; in vmw_gb_surface_create()
1090 cmd->body.size.width = srf->base_size.width; in vmw_gb_surface_create()
1091 cmd->body.size.height = srf->base_size.height; in vmw_gb_surface_create()
1092 cmd->body.size.depth = srf->base_size.depth; in vmw_gb_surface_create()
1222 struct vmw_surface *srf = vmw_res_to_srf(res); in vmw_gb_surface_destroy() local
1232 vmw_view_surface_list_destroy(dev_priv, &srf->view_list); in vmw_gb_surface_destroy()
1268 struct vmw_surface *srf; in vmw_gb_surface_define_ioctl() local
1302 &srf); in vmw_gb_surface_define_ioctl()
1306 user_srf = container_of(srf, struct vmw_user_surface, srf); in vmw_gb_surface_define_ioctl()
1314 res = &user_srf->srf.res; in vmw_gb_surface_define_ioctl()
1396 struct vmw_surface *srf; in vmw_gb_surface_reference_ioctl() local
1408 srf = &user_srf->srf; in vmw_gb_surface_reference_ioctl()
1409 if (!srf->res.backup) { in vmw_gb_surface_reference_ioctl()
1415 ret = vmw_user_dmabuf_reference(tfile, srf->res.backup, in vmw_gb_surface_reference_ioctl()
1427 rep->creq.svga3d_flags = srf->flags; in vmw_gb_surface_reference_ioctl()
1428 rep->creq.format = srf->format; in vmw_gb_surface_reference_ioctl()
1429 rep->creq.mip_levels = srf->mip_levels[0]; in vmw_gb_surface_reference_ioctl()
1431 rep->creq.multisample_count = srf->multisample_count; in vmw_gb_surface_reference_ioctl()
1432 rep->creq.autogen_filter = srf->autogen_filter; in vmw_gb_surface_reference_ioctl()
1433 rep->creq.array_size = srf->array_size; in vmw_gb_surface_reference_ioctl()
1435 rep->creq.base_size = srf->base_size; in vmw_gb_surface_reference_ioctl()
1437 rep->crep.backup_size = srf->res.backup_size; in vmw_gb_surface_reference_ioctl()
1440 drm_vma_node_offset_addr(&srf->res.backup->base.vma_node); in vmw_gb_surface_reference_ioctl()
1441 rep->crep.buffer_size = srf->res.backup->base.num_pages * PAGE_SIZE; in vmw_gb_surface_reference_ioctl()
1482 struct vmw_surface *srf; in vmw_surface_gb_priv_define() local
1542 *srf_out = &user_srf->srf; in vmw_surface_gb_priv_define()
1547 srf = &user_srf->srf; in vmw_surface_gb_priv_define()
1548 srf->flags = svga3d_flags; in vmw_surface_gb_priv_define()
1549 srf->format = format; in vmw_surface_gb_priv_define()
1550 srf->scanout = for_scanout; in vmw_surface_gb_priv_define()
1551 srf->mip_levels[0] = num_mip_levels; in vmw_surface_gb_priv_define()
1552 srf->num_sizes = 1; in vmw_surface_gb_priv_define()
1553 srf->sizes = NULL; in vmw_surface_gb_priv_define()
1554 srf->offsets = NULL; in vmw_surface_gb_priv_define()
1555 srf->base_size = size; in vmw_surface_gb_priv_define()
1556 srf->autogen_filter = SVGA3D_TEX_FILTER_NONE; in vmw_surface_gb_priv_define()
1557 srf->array_size = array_size; in vmw_surface_gb_priv_define()
1558 srf->multisample_count = multisample_count; in vmw_surface_gb_priv_define()
1567 srf->res.backup_size = in vmw_surface_gb_priv_define()
1568 svga3dsurface_get_serialized_size(srf->format, in vmw_surface_gb_priv_define()
1569 srf->base_size, in vmw_surface_gb_priv_define()
1570 srf->mip_levels[0], in vmw_surface_gb_priv_define()
1573 if (srf->flags & SVGA3D_SURFACE_BIND_STREAM_OUTPUT) in vmw_surface_gb_priv_define()
1574 srf->res.backup_size += sizeof(SVGA3dDXSOState); in vmw_surface_gb_priv_define()
1578 srf->flags |= SVGA3D_SURFACE_SCREENTARGET; in vmw_surface_gb_priv_define()
1584 ret = vmw_surface_init(dev_priv, srf, vmw_user_surface_free); in vmw_surface_gb_priv_define()