diff --git a/src/gallium/drivers/radeon/radeon_video.c b/src/gallium/drivers/radeon/radeon_video.c index 40b9cca453c..97767872bf1 100644 --- a/src/gallium/drivers/radeon/radeon_video.c +++ b/src/gallium/drivers/radeon/radeon_video.c @@ -67,6 +67,18 @@ bool si_vid_create_buffer(struct pipe_screen *screen, struct rvid_buffer *buffer return buffer->res != NULL; } +/* create a tmz buffer in the winsys */ +bool si_vid_create_tmz_buffer(struct pipe_screen *screen, struct rvid_buffer *buffer, unsigned size, + unsigned usage) +{ + memset(buffer, 0, sizeof(*buffer)); + buffer->usage = usage; + buffer->res = si_resource(pipe_buffer_create(screen, PIPE_BIND_SHARED | PIPE_BIND_PROTECTED, + usage, size)); + return buffer->res != NULL; +} + + /* destroy a buffer */ void si_vid_destroy_buffer(struct rvid_buffer *buffer) { diff --git a/src/gallium/drivers/radeon/radeon_video.h b/src/gallium/drivers/radeon/radeon_video.h index 5ef0a213462..475107e3729 100644 --- a/src/gallium/drivers/radeon/radeon_video.h +++ b/src/gallium/drivers/radeon/radeon_video.h @@ -49,6 +49,10 @@ unsigned si_vid_alloc_stream_handle(void); bool si_vid_create_buffer(struct pipe_screen *screen, struct rvid_buffer *buffer, unsigned size, unsigned usage); +/* create a tmz buffer in the winsys */ +bool si_vid_create_tmz_buffer(struct pipe_screen *screen, struct rvid_buffer *buffer, unsigned size, + unsigned usage); + /* destroy a buffer */ void si_vid_destroy_buffer(struct rvid_buffer *buffer);