diff options
author | Jason Ekstrand <[email protected]> | 2016-02-11 15:09:30 -0800 |
---|---|---|
committer | Jason Ekstrand <[email protected]> | 2016-02-11 15:09:30 -0800 |
commit | ff8895ba5606372f368917b97b8c4380bb822234 (patch) | |
tree | 4f4387c154e1988e1005237187ba1bee661b5bd7 /src/gallium/drivers/r600 | |
parent | 2009e304f7c0bdf5bf01b8dd60dddc2f8bb25f18 (diff) | |
parent | 9f8c01b03c168f6cf7aa12046be73e0fc46940c6 (diff) |
Merge remote-tracking branch 'mesa-public/master' into vulkan
Diffstat (limited to 'src/gallium/drivers/r600')
-rw-r--r-- | src/gallium/drivers/r600/evergreen_compute.c | 75 | ||||
-rw-r--r-- | src/gallium/drivers/r600/evergreen_compute_internal.h | 19 | ||||
-rw-r--r-- | src/gallium/drivers/r600/r600_pipe.c | 4 |
3 files changed, 0 insertions, 98 deletions
diff --git a/src/gallium/drivers/r600/evergreen_compute.c b/src/gallium/drivers/r600/evergreen_compute.c index d92e691fdb8..56c7fb93f73 100644 --- a/src/gallium/drivers/r600/evergreen_compute.c +++ b/src/gallium/drivers/r600/evergreen_compute.c @@ -208,23 +208,6 @@ void *evergreen_create_compute_state( COMPUTE_DBG(ctx->screen, "*** evergreen_create_compute_state\n"); header = cso->prog; code = cso->prog + sizeof(struct pipe_llvm_program_header); -#if HAVE_LLVM < 0x0306 - (void)use_kill; - (void)p; - shader->llvm_ctx = LLVMContextCreate(); - shader->num_kernels = radeon_llvm_get_num_kernels(shader->llvm_ctx, - code, header->num_bytes); - shader->kernels = CALLOC(sizeof(struct r600_kernel), - shader->num_kernels); - { - unsigned i; - for (i = 0; i < shader->num_kernels; i++) { - struct r600_kernel *kernel = &shader->kernels[i]; - kernel->llvm_module = radeon_llvm_get_kernel_module( - shader->llvm_ctx, i, code, header->num_bytes); - } - } -#else radeon_shader_binary_init(&shader->binary); radeon_elf_read(code, header->num_bytes, &shader->binary); r600_create_shader(&shader->bc, &shader->binary, &use_kill); @@ -235,7 +218,6 @@ void *evergreen_create_compute_state( memcpy(p, shader->bc.bytecode, shader->bc.ndw * 4); ctx->b.ws->buffer_unmap(shader->code_bo->buf); #endif -#endif shader->ctx = ctx; shader->local_size = cso->req_local_mem; @@ -255,21 +237,12 @@ void evergreen_delete_compute_state(struct pipe_context *ctx_, void* state) 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); } @@ -372,11 +345,7 @@ static void evergreen_emit_direct_dispatch( int group_size = 1; int grid_size = 1; unsigned lds_size = shader->local_size / 4 + -#if HAVE_LLVM < 0x0306 - shader->active_kernel->bc.nlds_dw; -#else shader->bc.nlds_dw; -#endif /* Calculate group_size/grid_size */ @@ -565,18 +534,10 @@ void evergreen_emit_cs_shader( struct r600_resource *code_bo; unsigned ngpr, nstack; -#if HAVE_LLVM < 0x0306 - struct r600_kernel *kernel = &shader->kernels[state->kernel_index]; - code_bo = kernel->code_bo; - va = kernel->code_bo->gpu_address; - ngpr = kernel->bc.ngpr; - nstack = kernel->bc.nstack; -#else code_bo = shader->code_bo; va = shader->code_bo->gpu_address + state->pc; ngpr = shader->bc.ngpr; nstack = shader->bc.nstack; -#endif radeon_compute_set_context_reg_seq(cs, R_0288D0_SQ_PGM_START_LS, 3); radeon_emit(cs, va >> 8); /* R_0288D0_SQ_PGM_START_LS */ @@ -601,46 +562,10 @@ static void evergreen_launch_grid( struct r600_pipe_compute *shader = ctx->cs_shader_state.shader; boolean use_kill; -#if HAVE_LLVM < 0x0306 - struct r600_kernel *kernel = &shader->kernels[pc]; - (void)use_kill; - if (!kernel->code_bo) { - void *p; - struct r600_bytecode *bc = &kernel->bc; - LLVMModuleRef mod = kernel->llvm_module; - boolean use_kill = false; - bool dump = (ctx->screen->b.debug_flags & DBG_CS) != 0; - unsigned use_sb = ctx->screen->b.debug_flags & DBG_SB_CS; - unsigned sb_disasm = use_sb || - (ctx->screen->b.debug_flags & DBG_SB_DISASM); - - r600_bytecode_init(bc, ctx->b.chip_class, ctx->b.family, - ctx->screen->has_compressed_msaa_texturing); - bc->type = TGSI_PROCESSOR_COMPUTE; - bc->isa = ctx->isa; - r600_llvm_compile(mod, ctx->b.family, bc, &use_kill, dump, &ctx->b.debug); - - if (dump && !sb_disasm) { - r600_bytecode_disasm(bc); - } else if ((dump && sb_disasm) || use_sb) { - if (r600_sb_bytecode_process(ctx, bc, NULL, dump, use_sb)) - R600_ERR("r600_sb_bytecode_process failed!\n"); - } - - kernel->code_bo = r600_compute_buffer_alloc_vram(ctx->screen, - kernel->bc.ndw * 4); - p = r600_buffer_map_sync_with_rings(&ctx->b, kernel->code_bo, PIPE_TRANSFER_WRITE); - memcpy(p, kernel->bc.bytecode, kernel->bc.ndw * 4); - ctx->b.ws->buffer_unmap(kernel->code_bo->buf); - } - shader->active_kernel = kernel; - ctx->cs_shader_state.kernel_index = pc; -#else ctx->cs_shader_state.pc = pc; /* Get the config information for this kernel. */ r600_shader_binary_read_config(&shader->binary, &shader->bc, pc, &use_kill); #endif -#endif COMPUTE_DBG(ctx->screen, "*** evergreen_launch_grid: pc = %u\n", pc); diff --git a/src/gallium/drivers/r600/evergreen_compute_internal.h b/src/gallium/drivers/r600/evergreen_compute_internal.h index 95593dd8e13..c8998d00f5a 100644 --- a/src/gallium/drivers/r600/evergreen_compute_internal.h +++ b/src/gallium/drivers/r600/evergreen_compute_internal.h @@ -27,28 +27,9 @@ #include "r600_asm.h" -#if HAVE_LLVM < 0x0306 - -struct r600_kernel { - unsigned count; -#ifdef HAVE_OPENCL - LLVMModuleRef llvm_module; -#endif - struct r600_resource *code_bo; - struct r600_bytecode bc; -}; - -#endif - struct r600_pipe_compute { struct r600_context *ctx; -#if HAVE_LLVM < 0x0306 - unsigned num_kernels; - struct r600_kernel *kernels; - struct r600_kernel *active_kernel; -#endif - struct radeon_shader_binary binary; struct r600_resource *code_bo; struct r600_bytecode bc; diff --git a/src/gallium/drivers/r600/r600_pipe.c b/src/gallium/drivers/r600/r600_pipe.c index 9d378013be0..c8580d807d7 100644 --- a/src/gallium/drivers/r600/r600_pipe.c +++ b/src/gallium/drivers/r600/r600_pipe.c @@ -528,11 +528,7 @@ static int r600_get_shader_param(struct pipe_screen* pscreen, unsigned shader, e return 16; case PIPE_SHADER_CAP_PREFERRED_IR: if (shader == PIPE_SHADER_COMPUTE) { -#if HAVE_LLVM < 0x0306 - return PIPE_SHADER_IR_LLVM; -#else return PIPE_SHADER_IR_NATIVE; -#endif } else { return PIPE_SHADER_IR_TGSI; } |