[Mesa-dev] [PATCH 04/19] gallium: introduce memory object
Nicolai Hähnle
nhaehnle at gmail.com
Tue Jul 4 13:19:07 UTC 2017
On 01.07.2017 01:02, Andres Rodriguez wrote:
> From: Dave Airlie <airlied at redhat.com>
>
> ---
> src/gallium/include/pipe/p_screen.h | 36 ++++++++++++++++++++++++++++++++++++
> src/gallium/include/pipe/p_state.h | 2 ++
> 2 files changed, 38 insertions(+)
>
> diff --git a/src/gallium/include/pipe/p_screen.h b/src/gallium/include/pipe/p_screen.h
> index 65e954a..929dc8f 100644
> --- a/src/gallium/include/pipe/p_screen.h
> +++ b/src/gallium/include/pipe/p_screen.h
> @@ -357,6 +357,42 @@ struct pipe_screen {
> enum pipe_format format, int max,
> uint64_t *modifiers,
> unsigned int *external_only, int *count);
> +
> + /**
> + * Create a memory object from a winsys handle
> + *
> + * The underlying memory is most often allocated in by a foregin API.
> + * Then the underlying memory object is then exported through interfaces
> + * compatible with EXT_external_resources.
> + *
> + * Note: For DRM_API_HANDLE_TYPE_FD handles, ownership of the fd is
> + * transferred to the driver implementation. This is consistent with
> + * EXT_external_object_fd
> + *
> + * \param handle A handle representing the memory object to import
> + */
> + struct pipe_memory_object *(*memobj_create_from_handle)(struct pipe_screen *screen,
> + struct winsys_handle *handle);
> +
> + /**
> + * Destroy a memory object
> + *
> + * \param memobj The memory object to destroy
> + */
> + void (*memobj_destroy)(struct pipe_screen *screen,
> + struct pipe_memory_object *memobj);
> +
> + /**
> + * Create a texture from a memory object
> + *
> + * \param t texture template
> + * \param memobj The memory object used to back the texture
> + */
> + struct pipe_resource * (*resource_from_memobj)(struct pipe_screen *screen,
> + const struct pipe_resource *t,
> + struct pipe_memory_object *memobj,
> + uint64_t offset);
> +
Please add these to ddebug as well.
Cheers,
Nicolai
> };
>
>
> diff --git a/src/gallium/include/pipe/p_state.h b/src/gallium/include/pipe/p_state.h
> index 15be8cb..acbb73f 100644
> --- a/src/gallium/include/pipe/p_state.h
> +++ b/src/gallium/include/pipe/p_state.h
> @@ -888,6 +888,8 @@ struct pipe_memory_info
> unsigned nr_device_memory_evictions; /**< # of evictions (monotonic counter) */
> };
>
> +struct pipe_memory_object;
> +
> #ifdef __cplusplus
> }
> #endif
>
--
Lerne, wie die Welt wirklich ist,
Aber vergiss niemals, wie sie sein sollte.
More information about the mesa-dev
mailing list