Home | History | Annotate | Download | only in r600
      1 /*
      2  * Permission is hereby granted, free of charge, to any person obtaining a
      3  * copy of this software and associated documentation files (the "Software"),
      4  * to deal in the Software without restriction, including without limitation
      5  * on the rights to use, copy, modify, merge, publish, distribute, sub
      6  * license, and/or sell copies of the Software, and to permit persons to whom
      7  * the Software is furnished to do so, subject to the following conditions:
      8  *
      9  * The above copyright notice and this permission notice (including the next
     10  * paragraph) shall be included in all copies or substantial portions of the
     11  * Software.
     12  *
     13  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
     14  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
     15  * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
     16  * THE AUTHOR(S) AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
     17  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
     18  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
     19  * USE OR OTHER DEALINGS IN THE SOFTWARE.
     20  *
     21  * Authors:
     22  *      Adam Rak <adam.rak (at) streamnovation.com>
     23  */
     24 
     25 #ifndef EVERGREEN_COMPUTE_INTERNAL_H
     26 #define EVERGREEN_COMPUTE_INTERNAL_H
     27 
     28 #include "r600_asm.h"
     29 #ifdef HAVE_OPENCL
     30 #include <llvm-c/Core.h>
     31 #endif
     32 
     33 struct r600_pipe_compute {
     34 	struct r600_context *ctx;
     35 
     36 	struct radeon_shader_binary binary;
     37 	struct r600_resource *code_bo;
     38 	struct r600_bytecode bc;
     39 
     40 	unsigned local_size;
     41 	unsigned private_size;
     42 	unsigned input_size;
     43 	struct r600_resource *kernel_param;
     44 
     45 #ifdef HAVE_OPENCL
     46 	LLVMContextRef llvm_ctx;
     47 #endif
     48 };
     49 
     50 struct r600_resource* r600_compute_buffer_alloc_vram(struct r600_screen *screen, unsigned size);
     51 
     52 #endif
     53