v3: Rebase and add #if guards v2: fix indentation Signed-off-by: Aaron Watry <awa...@gmail.com> --- src/gallium/drivers/r600/evergreen_compute.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+)
diff --git a/src/gallium/drivers/r600/evergreen_compute.c b/src/gallium/drivers/r600/evergreen_compute.c index 4334743..5389f96 100644 --- a/src/gallium/drivers/r600/evergreen_compute.c +++ b/src/gallium/drivers/r600/evergreen_compute.c @@ -252,6 +252,25 @@ void evergreen_delete_compute_state(struct pipe_context *ctx, void* state) if (!shader) return; +#if HAVE_OPENCL +#if HAVE_LLVM < 0x0306 + if (shader->kernels) { + for (int i = 0; i < shader->num_kernels; i++) { + if (shader->kernels[i].code_bo) { + pipe_resource_reference( + (struct pipe_resource**) &shader->kernels[i].code_bo, + NULL + ); + } + FREE(shader->kernels[i].bc.bytecode); + shader->kernels[i].bc.bytecode = NULL; + } + FREE(shader->kernels); + shader->kernels = NULL; + } +#endif +#endif + if (shader->ctx){ struct pipe_framebuffer_state *fb_state = &shader->ctx->framebuffer.state; for (int i = fb_state->nr_cbufs - 1; fb_state->nr_cbufs > 0 ; i--){ -- 2.1.0 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev