diff options
Diffstat (limited to 'src/gallium/drivers/r600/r600_pipe.h')
-rw-r--r-- | src/gallium/drivers/r600/r600_pipe.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/gallium/drivers/r600/r600_pipe.h b/src/gallium/drivers/r600/r600_pipe.h index e5ba49c5ac5..f2865d2a22e 100644 --- a/src/gallium/drivers/r600/r600_pipe.h +++ b/src/gallium/drivers/r600/r600_pipe.h @@ -30,4 +30,7 @@ #include "r600.h" +#include "r600_llvm.h" +#include "r600_public.h" #include "r600_shader.h" #include "r600_resource.h" +#include "evergreen_compute.h" @@ -100,2 +103,3 @@ enum r600_pipe_state_id { R600_PIPE_STATE_FETCH_SHADER, + R600_PIPE_STATE_SPI, R600_PIPE_NSTATES @@ -103,2 +107,8 @@ enum r600_pipe_state_id { +struct compute_memory_pool; +void compute_memory_pool_delete(struct compute_memory_pool* pool); +struct compute_memory_pool* compute_memory_pool_new( + int64_t initial_size_in_dw, + struct r600_screen *rscreen); + struct r600_pipe_fences { @@ -125,2 +135,8 @@ struct r600_screen { int glsl_feature_level; + + /*for compute global memory binding, we allocate stuff here, instead of + * buffers. + * XXX: Not sure if this is the best place for global_pool. Also, + * it's not thread safe, so it won't work with multiple contexts. */ + struct compute_memory_pool *global_pool; }; @@ -259,2 +275,3 @@ struct r600_context { struct r600_pipe_shader *vs_shader; + struct r600_pipe_compute *cs_shader; struct r600_pipe_rasterizer *rasterizer; @@ -268,3 +285,5 @@ struct r600_context { boolean two_side; + boolean spi_dirty; unsigned sprite_coord_enable; + boolean flatshade; boolean export_16bpc; @@ -414,2 +433,6 @@ void r600_init_context_resource_functions(struct r600_context *r600); int r600_pipe_shader_create(struct pipe_context *ctx, struct r600_pipe_shader *shader); +#ifdef HAVE_OPENCL +int r600_compute_shader_create(struct pipe_context * ctx, + LLVMModuleRef mod, struct r600_bytecode * bytecode); +#endif void r600_pipe_shader_destroy(struct pipe_context *ctx, struct r600_pipe_shader *shader); |