xref: /aosp_15_r20/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.h (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1 /*
2  * Copyright 2011 Adam Rak <[email protected]>
3  * Authors:
4  *      Adam Rak <[email protected]>
5  * SPDX-License-Identifier: MIT
6  */
7 
8 #ifndef EVERGREEN_COMPUTE_H
9 #define EVERGREEN_COMPUTE_H
10 
11 #include "r600_pipe.h"
12 
13 struct r600_atom;
14 struct evergreen_compute_resource;
15 struct compute_memory_item;
16 
17 struct r600_resource_global {
18 	struct r600_resource base;
19 	struct compute_memory_item *chunk;
20 };
21 
22 void evergreen_init_atom_start_compute_cs(struct r600_context *rctx);
23 void evergreen_init_compute_state_functions(struct r600_context *rctx);
24 void evergreen_emit_cs_shader(struct r600_context *rctx, struct r600_atom * atom);
25 
26 struct r600_resource* r600_compute_buffer_alloc_vram(struct r600_screen *screen, unsigned size);
27 struct pipe_resource *r600_compute_global_buffer_create(struct pipe_screen *screen, const struct pipe_resource *templ);
28 void r600_compute_global_buffer_destroy(struct pipe_screen *screen,
29 					struct pipe_resource *res);
30 void *r600_compute_global_transfer_map(struct pipe_context *ctx,
31 				      struct pipe_resource *resource,
32 				      unsigned level,
33 				      unsigned usage,
34 				      const struct pipe_box *box,
35 				      struct pipe_transfer **ptransfer);
36 void r600_compute_global_transfer_unmap(struct pipe_context *ctx,
37 					struct pipe_transfer *transfer);
38 
39 #endif
40