Lines Matching full:resource
153 struct tegra_resource *resource) in tegra_screen_import_resource() argument
163 status = screen->gpu->resource_get_handle(screen->gpu, NULL, resource->gpu, in tegra_screen_import_resource()
175 resource->modifier = handle.modifier; in tegra_screen_import_resource()
176 resource->stride = handle.stride; in tegra_screen_import_resource()
179 err = drmPrimeFDToHandle(screen->fd, fd, &resource->handle); in tegra_screen_import_resource()
194 struct tegra_resource *resource; in tegra_screen_resource_create() local
197 resource = calloc(1, sizeof(*resource)); in tegra_screen_resource_create()
198 if (!resource) in tegra_screen_resource_create()
209 * resource (e.g. using gbm_bo_get_modifier()) before handing it to the in tegra_screen_resource_create()
215 resource->gpu = screen->gpu->resource_create_with_modifiers(screen->gpu, in tegra_screen_resource_create()
218 if (!resource->gpu) in tegra_screen_resource_create()
223 err = tegra_screen_import_resource(screen, resource); in tegra_screen_resource_create()
228 memcpy(&resource->base, resource->gpu, sizeof(*resource->gpu)); in tegra_screen_resource_create()
229 pipe_reference_init(&resource->base.reference, 1); in tegra_screen_resource_create()
230 resource->base.screen = &screen->base; in tegra_screen_resource_create()
233 resource->gpu->reference.count += 100000000; in tegra_screen_resource_create()
234 resource->refcount = 100000000; in tegra_screen_resource_create()
236 return &resource->base; in tegra_screen_resource_create()
239 screen->gpu->resource_destroy(screen->gpu, resource->gpu); in tegra_screen_resource_create()
241 free(resource); in tegra_screen_resource_create()
252 struct pipe_resource *resource; in tegra_screen_resource_create_front() local
254 resource = screen->gpu->resource_create_front(screen->gpu, template, in tegra_screen_resource_create_front()
256 if (resource) in tegra_screen_resource_create_front()
257 resource->screen = pscreen; in tegra_screen_resource_create_front()
259 return resource; in tegra_screen_resource_create_front()
269 struct tegra_resource *resource; in tegra_screen_resource_from_handle() local
271 resource = calloc(1, sizeof(*resource)); in tegra_screen_resource_from_handle()
272 if (!resource) in tegra_screen_resource_from_handle()
275 resource->gpu = screen->gpu->resource_from_handle(screen->gpu, template, in tegra_screen_resource_from_handle()
277 if (!resource->gpu) { in tegra_screen_resource_from_handle()
278 free(resource); in tegra_screen_resource_from_handle()
282 memcpy(&resource->base, resource->gpu, sizeof(*resource->gpu)); in tegra_screen_resource_from_handle()
283 pipe_reference_init(&resource->base.reference, 1); in tegra_screen_resource_from_handle()
284 resource->base.screen = &screen->base; in tegra_screen_resource_from_handle()
286 return &resource->base; in tegra_screen_resource_from_handle()
296 struct pipe_resource *resource; in tegra_screen_resource_from_user_memory() local
298 resource = screen->gpu->resource_from_user_memory(screen->gpu, template, in tegra_screen_resource_from_user_memory()
300 if (resource) in tegra_screen_resource_from_user_memory()
301 resource->screen = pscreen; in tegra_screen_resource_from_user_memory()
303 return resource; in tegra_screen_resource_from_user_memory()
313 struct tegra_resource *resource = to_tegra_resource(presource); in tegra_screen_resource_get_handle() local
325 handle->modifier = resource->modifier; in tegra_screen_resource_get_handle()
326 handle->handle = resource->handle; in tegra_screen_resource_get_handle()
327 handle->stride = resource->stride; in tegra_screen_resource_get_handle()
331 resource->gpu, handle, usage); in tegra_screen_resource_get_handle()
341 struct tegra_resource *resource = to_tegra_resource(presource); in tegra_screen_resource_destroy() local
344 p_atomic_add(&resource->gpu->reference.count, -resource->refcount); in tegra_screen_resource_destroy()
345 pipe_resource_reference(&resource->gpu, NULL); in tegra_screen_resource_destroy()
346 free(resource); in tegra_screen_resource_destroy()
352 struct pipe_resource *resource, in tegra_screen_flush_frontbuffer() argument
365 resource, level, layer, in tegra_screen_flush_frontbuffer()
461 struct tegra_resource *resource; in tegra_screen_resource_create_with_modifiers() local
464 resource = calloc(1, sizeof(*resource)); in tegra_screen_resource_create_with_modifiers()
465 if (!resource) in tegra_screen_resource_create_with_modifiers()
478 resource->gpu = screen->gpu->resource_create_with_modifiers(screen->gpu, in tegra_screen_resource_create_with_modifiers()
482 if (!resource->gpu) in tegra_screen_resource_create_with_modifiers()
485 err = tegra_screen_import_resource(screen, resource); in tegra_screen_resource_create_with_modifiers()
489 memcpy(&resource->base, resource->gpu, sizeof(*resource->gpu)); in tegra_screen_resource_create_with_modifiers()
490 pipe_reference_init(&resource->base.reference, 1); in tegra_screen_resource_create_with_modifiers()
491 resource->base.screen = &screen->base; in tegra_screen_resource_create_with_modifiers()
493 return &resource->base; in tegra_screen_resource_create_with_modifiers()
496 screen->gpu->resource_destroy(screen->gpu, resource->gpu); in tegra_screen_resource_create_with_modifiers()
498 free(resource); in tegra_screen_resource_create_with_modifiers()