void evergreen_delete_compute_state(struct pipe_context *ctx_, void* state) { struct r600_context *ctx = (struct r600_context *)ctx_; COMPUTE_DBG(ctx->screen, "*** evergreen_delete_compute_state\n"); struct r600_pipe_compute *shader = state; if (!shader) return; #ifdef HAVE_OPENCL #if HAVE_LLVM < 0x0306 for (unsigned i = 0; i < shader->num_kernels; i++) { struct r600_kernel *kernel = &shader->kernels[i]; LLVMDisposeModule(module); } FREE(shader->kernels); LLVMContextDispose(shader->llvm_ctx); #else radeon_shader_binary_clean(&shader->binary); r600_destroy_shader(&shader->bc); /* TODO destroy shader->code_bo, shader->const_bo * we'll need something like r600_buffer_free */ #endif #endif FREE(shader); }
static void evergreen_delete_compute_state(struct pipe_context *ctx, void *state) { struct r600_context *rctx = (struct r600_context *)ctx; struct r600_pipe_compute *shader = state; COMPUTE_DBG(rctx->screen, "*** evergreen_delete_compute_state\n"); if (!shader) return; radeon_shader_binary_clean(&shader->binary); r600_destroy_shader(&shader->bc); /* TODO destroy shader->code_bo, shader->const_bo * we'll need something like r600_buffer_free */ FREE(shader); }