radeonsi: let si_shader_create return a boolean
authorNicolai Hähnle <nicolai.haehnle@amd.com>
Wed, 28 Nov 2018 10:32:01 +0000 (11:32 +0100)
committerMarek Olšák <marek.olsak@amd.com>
Thu, 13 Jun 2019 00:28:23 +0000 (20:28 -0400)
We didn't really use error codes anyway.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/gallium/drivers/radeonsi/si_compute.c
src/gallium/drivers/radeonsi/si_shader.c
src/gallium/drivers/radeonsi/si_shader.h
src/gallium/drivers/radeonsi/si_state_shaders.c

index a08ed7d65f5ef1ed88e1c6587a7376afe79a6934..006fb89a200c11b630549a4dc6ec7fe1bf93e4f4 100644 (file)
@@ -150,7 +150,7 @@ static void si_create_compute_state_async(void *job, int thread_index)
        } else {
                mtx_unlock(&sscreen->shader_cache_mutex);
 
-               if (si_shader_create(sscreen, compiler, &program->shader, debug)) {
+               if (!si_shader_create(sscreen, compiler, &program->shader, debug)) {
                        program->shader.compilation_failed = true;
 
                        if (program->ir_type == PIPE_SHADER_IR_TGSI)
index d532d6643070355dae4a2b146c77b516fec62c76..17323fa69ecdc8a0844cd1f1349d1b10b5b910d1 100644 (file)
@@ -7881,7 +7881,7 @@ static void si_fix_resource_usage(struct si_screen *sscreen,
        }
 }
 
-int si_shader_create(struct si_screen *sscreen, struct ac_llvm_compiler *compiler,
+bool si_shader_create(struct si_screen *sscreen, struct ac_llvm_compiler *compiler,
                     struct si_shader *shader,
                     struct pipe_debug_callback *debug)
 {
@@ -7901,7 +7901,7 @@ int si_shader_create(struct si_screen *sscreen, struct ac_llvm_compiler *compile
                 */
                r = si_compile_tgsi_shader(sscreen, compiler, shader, debug);
                if (r)
-                       return r;
+                       return false;
        } else {
                /* The shader consists of several parts:
                 *
@@ -7919,7 +7919,7 @@ int si_shader_create(struct si_screen *sscreen, struct ac_llvm_compiler *compile
                 */
 
                if (!mainp)
-                       return -1;
+                       return false;
 
                /* Copy the compiled TGSI shader data over. */
                shader->is_binary_shared = true;
@@ -7940,21 +7940,21 @@ int si_shader_create(struct si_screen *sscreen, struct ac_llvm_compiler *compile
                switch (sel->type) {
                case PIPE_SHADER_VERTEX:
                        if (!si_shader_select_vs_parts(sscreen, compiler, shader, debug))
-                               return -1;
+                               return false;
                        break;
                case PIPE_SHADER_TESS_CTRL:
                        if (!si_shader_select_tcs_parts(sscreen, compiler, shader, debug))
-                               return -1;
+                               return false;
                        break;
                case PIPE_SHADER_TESS_EVAL:
                        break;
                case PIPE_SHADER_GEOMETRY:
                        if (!si_shader_select_gs_parts(sscreen, compiler, shader, debug))
-                               return -1;
+                               return false;
                        break;
                case PIPE_SHADER_FRAGMENT:
                        if (!si_shader_select_ps_parts(sscreen, compiler, shader, debug))
-                               return -1;
+                               return false;
 
                        /* Make sure we have at least as many VGPRs as there
                         * are allocated inputs.
@@ -8014,10 +8014,10 @@ int si_shader_create(struct si_screen *sscreen, struct ac_llvm_compiler *compile
        r = si_shader_binary_upload(sscreen, shader);
        if (r) {
                fprintf(stderr, "LLVM failed to upload shader\n");
-               return r;
+               return false;
        }
 
-       return 0;
+       return true;
 }
 
 void si_shader_destroy(struct si_shader *shader)
index b63045f662d22367e98f93bde5dd315713341a9d..470a73359bdb7c3159bb89b28e7b222a68cf7a9d 100644 (file)
@@ -683,7 +683,7 @@ int si_compile_tgsi_shader(struct si_screen *sscreen,
                           struct ac_llvm_compiler *compiler,
                           struct si_shader *shader,
                           struct pipe_debug_callback *debug);
-int si_shader_create(struct si_screen *sscreen, struct ac_llvm_compiler *compiler,
+bool si_shader_create(struct si_screen *sscreen, struct ac_llvm_compiler *compiler,
                     struct si_shader *shader,
                     struct pipe_debug_callback *debug);
 void si_shader_destroy(struct si_shader *shader);
index c4517fcf538a9e96f253defc7fe30e44ea4b4e96..db939b73b0a0ef119fe0c86f1731a14e3e20360a 100644 (file)
@@ -1715,7 +1715,6 @@ static void si_build_shader_variant(struct si_shader *shader,
        struct si_screen *sscreen = sel->screen;
        struct ac_llvm_compiler *compiler;
        struct pipe_debug_callback *debug = &shader->compiler_ctx_state.debug;
-       int r;
 
        if (thread_index >= 0) {
                if (low_priority) {
@@ -1732,10 +1731,9 @@ static void si_build_shader_variant(struct si_shader *shader,
                compiler = shader->compiler_ctx_state.compiler;
        }
 
-       r = si_shader_create(sscreen, compiler, shader, debug);
-       if (unlikely(r)) {
-               PRINT_ERR("Failed to build shader variant (type=%u) %d\n",
-                        sel->type, r);
+       if (unlikely(!si_shader_create(sscreen, compiler, shader, debug))) {
+               PRINT_ERR("Failed to build shader variant (type=%u)\n",
+                         sel->type);
                shader->compilation_failed = true;
                return;
        }