xref: /aosp_15_r20/external/mesa3d/src/gallium/frontends/nine/nine_buffer_upload.h (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1 /*
2  * Copyright 2009 VMware, Inc.
3  * Copyright 2016 Axel Davy <[email protected]>
4  * All Rights Reserved.
5  *
6  * SPDX-License-Identifier: MIT
7  */
8 
9 #ifndef _NINE_BUFFER_UPLOAD_H_
10 #define _NINE_BUFFER_UPLOAD_H_
11 
12 #include "pipe/p_defines.h"
13 
14 struct nine_buffer_upload;
15 struct nine_subbuffer;
16 
17 struct nine_buffer_upload *
18 nine_upload_create(struct pipe_context *pipe, unsigned buffers_size,
19                    unsigned num_buffers);
20 
21 void
22 nine_upload_destroy(struct nine_buffer_upload *upload);
23 
24 struct nine_subbuffer *
25 nine_upload_create_buffer(struct nine_buffer_upload *upload,
26                           unsigned buffer_size);
27 
28 void
29 nine_upload_release_buffer(struct nine_buffer_upload *upload,
30                            struct nine_subbuffer *buf);
31 
32 uint8_t *
33 nine_upload_buffer_get_map(struct nine_subbuffer *buf);
34 
35 struct pipe_resource *
36 nine_upload_buffer_resource_and_offset(struct nine_subbuffer *buf,
37                                        unsigned *offset);
38 
39 #endif /* _NINE_BUFFER_UPLOAD_H_ */
40