[Mesa-dev] [PATCH 04/19] gallium: introduce memory object
Andres Rodriguez
andresx7 at gmail.com
Tue Jul 4 16:10:39 UTC 2017
On 2017-07-04 09:19 AM, Nicolai Hähnle wrote:
> 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.
>
Thanks, will fix.
-Andres
> 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
>>
>
>
More information about the mesa-dev
mailing list