On Mon, Sep 24, 2012 at 12:43:14AM +0200, Vincent Lejeune wrote:
> ---
>  src/gallium/drivers/r600/r600_shader.c | 58 
> +++++++++++++++++++---------------
>  1 file changed, 32 insertions(+), 26 deletions(-)
>

Reviewed-by: Tom Stellard <[email protected]>
 
> diff --git a/src/gallium/drivers/r600/r600_shader.c 
> b/src/gallium/drivers/r600/r600_shader.c
> index 3e79764..c363ca5 100644
> --- a/src/gallium/drivers/r600/r600_shader.c
> +++ b/src/gallium/drivers/r600/r600_shader.c
> @@ -1239,7 +1239,6 @@ static int r600_shader_from_tgsi(struct r600_context * 
> rctx, struct r600_pipe_sh
>               ctx.file_offset[TGSI_FILE_INPUT] = evergreen_gpr_count(&ctx);
>       }
>  
> -     /* LLVM backend setup */
>  #ifdef R600_USE_LLVM
>       if (use_llvm && ctx.info.indirect_files) {
>               fprintf(stderr, "Warning: R600 LLVM backend does not support "
> @@ -1247,34 +1246,13 @@ static int r600_shader_from_tgsi(struct r600_context 
> * rctx, struct r600_pipe_sh
>                               "backend.\n");
>               use_llvm = 0;
>       }
> -     if (use_llvm) {
> -             struct radeon_llvm_context radeon_llvm_ctx;
> -             LLVMModuleRef mod;
> -             unsigned dump = 0;
> -             memset(&radeon_llvm_ctx, 0, sizeof(radeon_llvm_ctx));
> -             radeon_llvm_ctx.reserved_reg_count = 
> ctx.file_offset[TGSI_FILE_INPUT];
> -             mod = r600_tgsi_llvm(&radeon_llvm_ctx, tokens);
> -             if (debug_get_bool_option("R600_DUMP_SHADERS", FALSE)) {
> -                     dump = 1;
> -             }
> -             if (r600_llvm_compile(mod, &inst_bytes, &inst_byte_count,
> -                                                     rctx->family, dump)) {
> -                     FREE(inst_bytes);
> -                     radeon_llvm_dispose(&radeon_llvm_ctx);
> -                     use_llvm = 0;
> -                     fprintf(stderr, "R600 LLVM backend failed to compile "
> -                             "shader.  Falling back to TGSI\n");
> -             } else {
> -                     ctx.file_offset[TGSI_FILE_OUTPUT] =
> -                                     ctx.file_offset[TGSI_FILE_INPUT];
> -             }
> -             radeon_llvm_dispose(&radeon_llvm_ctx);
> -     }
>  #endif
> -     /* End of LLVM backend setup */
>  
> -     if (!use_llvm) {
> +     if (use_llvm) {
>               ctx.file_offset[TGSI_FILE_OUTPUT] =
> +                     ctx.file_offset[TGSI_FILE_INPUT];
> +     } else {
> +        ctx.file_offset[TGSI_FILE_OUTPUT] =
>                       ctx.file_offset[TGSI_FILE_INPUT] +
>                       ctx.info.file_max[TGSI_FILE_INPUT] + 1;
>       }
> @@ -1336,6 +1314,34 @@ static int r600_shader_from_tgsi(struct r600_context * 
> rctx, struct r600_pipe_sh
>               }
>       }
>  
> +/* LLVM backend setup */
> +#ifdef R600_USE_LLVM
> +     if (use_llvm) {
> +             struct radeon_llvm_context radeon_llvm_ctx;
> +             LLVMModuleRef mod;
> +             unsigned dump = 0;
> +             memset(&radeon_llvm_ctx, 0, sizeof(radeon_llvm_ctx));
> +             radeon_llvm_ctx.reserved_reg_count = 
> ctx.file_offset[TGSI_FILE_INPUT];
> +             mod = r600_tgsi_llvm(&radeon_llvm_ctx, tokens);
> +             if (debug_get_bool_option("R600_DUMP_SHADERS", FALSE)) {
> +                     dump = 1;
> +             }
> +             if (r600_llvm_compile(mod, &inst_bytes, &inst_byte_count,
> +                                                     rctx->family, dump)) {
> +                     FREE(inst_bytes);
> +                     radeon_llvm_dispose(&radeon_llvm_ctx);
> +                     use_llvm = 0;
> +                     fprintf(stderr, "R600 LLVM backend failed to compile "
> +                             "shader.  Falling back to TGSI\n");
> +             } else {
> +                     ctx.file_offset[TGSI_FILE_OUTPUT] =
> +                                     ctx.file_offset[TGSI_FILE_INPUT];
> +             }
> +             radeon_llvm_dispose(&radeon_llvm_ctx);
> +     }
> +#endif
> +/* End of LLVM backend setup */
> +
>       if (shader->fs_write_all && rctx->chip_class >= EVERGREEN)
>               shader->nr_ps_max_color_exports = 8;
>  
> -- 
> 1.7.11.4
> 
> _______________________________________________
> mesa-dev mailing list
> [email protected]
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
_______________________________________________
mesa-dev mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to