The issue is that shaderc_result_get_num_errors may sometime return 0 even when shaderc_result_get_compilation_status returns a non-zero error code. Since we use the result from the former, override the status if it returned 0.
Unified · Split
| @@ -65,6 +65,9 @@ static int shdc_shader_compile(FFVkSPIRVCompiler *ctx, void *avctx, · 64 unmodified lines | ||
| 65 | 65 | warn = shaderc_result_get_num_warnings(res); |
| 66 | 66 | message = shaderc_result_get_error_message(res); |
| 67 | 67 | |
| 68 | + if (ret != shaderc_compilation_status_success && !err) | |
| 69 | + err = 1; | |
| 70 | + | |
| 68 | 71 | loglevel = err ? AV_LOG_ERROR : warn ? AV_LOG_WARNING : AV_LOG_VERBOSE; |
| 69 | 72 | |
| 70 | 73 | ff_vk_shader_print(avctx, shd, loglevel); |