Loading .gitlab-ci.yml +21 −23 Original line number Original line Diff line number Diff line Loading @@ -110,7 +110,7 @@ stages: - make -j - make -j - mv IVAS_cod ../IVAS_cod_test - mv IVAS_cod ../IVAS_cod_test - mv IVAS_dec ../IVAS_dec_test - mv IVAS_dec ../IVAS_dec_test - mv IVAS_rend .. - mv IVAS_rend ../IVAS_rend_test - cd .. - cd .. - rm -rf build/* - rm -rf build/* Loading @@ -129,11 +129,13 @@ stages: - make -j - make -j - mv IVAS_cod ../IVAS_cod_ref - mv IVAS_cod ../IVAS_cod_ref - mv IVAS_dec ../IVAS_dec_ref - mv IVAS_dec ../IVAS_dec_ref - mv IVAS_rend ../IVAS_rend_ref - cd .. - cd .. # rename test binaries back # rename test binaries back - mv IVAS_cod_test IVAS_cod - mv IVAS_cod_test IVAS_cod - mv IVAS_dec_test IVAS_dec - mv IVAS_dec_test IVAS_dec - mv IVAS_rend_test IVAS_rend .merge-request-comparison-check: &merge-request-comparison-check .merge-request-comparison-check: &merge-request-comparison-check - if [ $zero_errors != 1 ]; then echo "Run errors encountered!"; exit $EXIT_CODE_FAIL; fi - if [ $zero_errors != 1 ]; then echo "Run errors encountered!"; exit $EXIT_CODE_FAIL; fi Loading Loading @@ -618,6 +620,7 @@ renderer-pytest-on-merge-request: - *print-common-info - *print-common-info - *get-commits-behind-count - *get-commits-behind-count - *check-commits-behind-count-in-compare-jobs - *check-commits-behind-count-in-compare-jobs - *merge-request-comparison-setup-codec # some helper variables - "|| true" to prevent failures from grep not finding anything # some helper variables - "|| true" to prevent failures from grep not finding anything # write to temporary file as workaround for failures observed with piping echo # write to temporary file as workaround for failures observed with piping echo Loading @@ -625,28 +628,17 @@ renderer-pytest-on-merge-request: - non_be_flag=$(grep -c --ignore-case "\[rend\(erer\)*[ -]*non[ -]*be\]" tmp.txt) || true - non_be_flag=$(grep -c --ignore-case "\[rend\(erer\)*[ -]*non[ -]*be\]" tmp.txt) || true - ref_using_main=$(grep -c --ignore-case "\[ref[ -]*using[ -]*main\]" tmp.txt) || true - ref_using_main=$(grep -c --ignore-case "\[ref[ -]*using[ -]*main\]" tmp.txt) || true # store the current commit hash ### If ref_using_main is not set, checkout the source branch to use scripts and input from there - source_branch_commit_sha=$(git rev-parse HEAD) - if [ $ref_using_main == 0 ]; then git checkout $source_branch_commit_sha; fi - *mr-fetch-target-branch - *mr-get-target-commit - git checkout $target_commit # build reference binaries - make -j IVAS_rend - mv IVAS_rend IVAS_rend_ref # back to source branch - exit_code=0 - git checkout $source_branch_commit_sha - python3 -m pytest -q --log-level ERROR -n auto -rA --html=report.html --self-contained-html --junit-xml=report-junit.xml tests/renderer/test_renderer.py --create_ref || exit_code=$? - make clean - make -j IVAS_rend ### Run test using scripts and input from main ### Run test using branch scripts and input - if [ $ref_using_main == 1 ]; then git checkout $target_commit; fi - if [ $ref_using_main == 1 ]; then git checkout $source_branch_commit_sha; fi # run test # run test - exit_code=0 - python3 -m pytest -q --log-level ERROR -n auto -rA --html=report.html --self-contained-html --junit-xml=report-junit.xml tests/renderer/test_renderer_.py --create_cut || exit_code=$? - python3 -m pytest -q --log-level ERROR -n auto -rA --html=report.html --self-contained-html --junit-xml=report-junit.xml tests/renderer/test_renderer_be_comparison.py || exit_code=$? - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true - *merge-request-comparison-check - *merge-request-comparison-check Loading Loading @@ -722,6 +714,12 @@ split-rendering-pytest-on-merge-request: - mv IVAS_dec IVAS_dec_ref - mv IVAS_dec IVAS_dec_ref - mv IVAS_rend IVAS_rend_ref - mv IVAS_rend IVAS_rend_ref ### If ref_using_main is not set, checkout the source branch to use scripts and input from there - if [ $ref_using_main == 0 ]; then git restore lib_com/options.h; fi # Revert changes back before checking out another branch to avoid conflicts - if [ $ref_using_main == 0 ]; then git checkout $source_branch_commit_sha; fi - exit_code=0 - python3 -m pytest -q --log-level ERROR -n auto -rA --html=report.html --self-contained-html --junit-xml=report-junit.xml tests/split_rendering/test_split_rendering.py --create_ref || exit_code=$? # back to source branch # back to source branch - git restore lib_com/options.h # Revert changes back before checking out another branch to avoid conflicts - git restore lib_com/options.h # Revert changes back before checking out another branch to avoid conflicts - git checkout $source_branch_commit_sha - git checkout $source_branch_commit_sha Loading @@ -731,11 +729,10 @@ split-rendering-pytest-on-merge-request: ### Run test using scripts and input from main ### Run test using scripts and input from main - if [ $ref_using_main == 1 ]; then git restore lib_com/options.h; fi # Revert changes back before checking out another branch to avoid conflicts - if [ $ref_using_main == 1 ]; then git restore lib_com/options.h; fi # Revert changes back before checking out another branch to avoid conflicts - if [ $ref_using_main == 1 ]; then git checkout $target_commit; fi - if [ $ref_using_main == 1 ]; then git checkout $source_branch_commit_sha; fi # run test # run test - exit_code=0 - python3 -m pytest -q --log-level ERROR -n auto -rA --html=report.html --self-contained-html --junit-xml=report-junit.xml tests/split_rendering/test_split_rendering.py --create_cut || exit_code=$? - python3 -m pytest -q --log-level ERROR -n auto -rA --html=report.html --self-contained-html --junit-xml=report-junit.xml tests/split_rendering/test_split_rendering_be_comparison.py || exit_code=$? - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true - *merge-request-comparison-check - *merge-request-comparison-check Loading Loading @@ -1531,7 +1528,8 @@ coverage-test-on-main-scheduled: - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR -v -n auto --update_ref 1 -m create_ref_part2 --ref_encoder_path ./IVAS_cod --ref_decoder_path ./IVAS_dec - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR -v -n auto --update_ref 1 -m create_ref_part2 --ref_encoder_path ./IVAS_cod --ref_decoder_path ./IVAS_dec - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR/test_param_file.py -v -n auto --update_ref 1 -m create_ref --param_file scripts/config/self_test_evs.prm --ref_encoder_path ./IVAS_cod --ref_decoder_path ./IVAS_dec - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR/test_param_file.py -v -n auto --update_ref 1 -m create_ref --param_file scripts/config/self_test_evs.prm --ref_encoder_path ./IVAS_cod --ref_decoder_path ./IVAS_dec - bash ci/smoke_test.sh coverage - bash ci/smoke_test.sh coverage - python3 -m pytest -q -n auto tests/renderer/test_renderer_be_comparison.py - python3 -m pytest -q -n auto tests/renderer/test_renderer.py --create_ref - python3 -m pytest -q -n auto tests/renderer/test_renderer.py --create_cut - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR/test_param_file.py -v -n auto --update_ref 1 -m create_ref --param_file scripts/config/self_test_ltv.prm --ref_encoder_path ./IVAS_cod --ref_decoder_path ./IVAS_dec - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR/test_param_file.py -v -n auto --update_ref 1 -m create_ref --param_file scripts/config/self_test_ltv.prm --ref_encoder_path ./IVAS_cod --ref_decoder_path ./IVAS_dec - bash ci/ivas_voip_be_test.sh coverage - bash ci/ivas_voip_be_test.sh coverage - lcov -c -d obj -o coverage.info - lcov -c -d obj -o coverage.info Loading Workspace_msvc/lib_com.vcxproj +0 −1 Original line number Original line Diff line number Diff line Loading @@ -217,7 +217,6 @@ <ClCompile Include="..\lib_com\ivas_stereo_mdct_stereo_com.c" /> <ClCompile Include="..\lib_com\ivas_stereo_mdct_stereo_com.c" /> <ClCompile Include="..\lib_com\ivas_stereo_psychlpc_com.c" /> <ClCompile Include="..\lib_com\ivas_stereo_psychlpc_com.c" /> <ClCompile Include="..\lib_com\ivas_stereo_td_bit_alloc.c" /> <ClCompile Include="..\lib_com\ivas_stereo_td_bit_alloc.c" /> <ClCompile Include="..\lib_com\ivas_td_decorr.c" /> <ClCompile Include="..\lib_com\ivas_tools.c" /> <ClCompile Include="..\lib_com\ivas_tools.c" /> <ClCompile Include="..\lib_com\ivas_transient_det.c" /> <ClCompile Include="..\lib_com\ivas_transient_det.c" /> <ClCompile Include="..\lib_com\lag_wind.c" /> <ClCompile Include="..\lib_com\lag_wind.c" /> Loading Workspace_msvc/lib_com.vcxproj.filters +0 −3 Original line number Original line Diff line number Diff line Loading @@ -460,9 +460,6 @@ <ClCompile Include="..\lib_com\ivas_mdct_imdct.c"> <ClCompile Include="..\lib_com\ivas_mdct_imdct.c"> <Filter>common_ivas_c</Filter> <Filter>common_ivas_c</Filter> </ClCompile> </ClCompile> <ClCompile Include="..\lib_com\ivas_td_decorr.c"> <Filter>common_ivas_c</Filter> </ClCompile> <ClCompile Include="..\lib_com\ivas_ism_com.c"> <ClCompile Include="..\lib_com\ivas_ism_com.c"> <Filter>common_ivas_c</Filter> <Filter>common_ivas_c</Filter> </ClCompile> </ClCompile> Loading Workspace_msvc/lib_rend.vcxproj +1 −0 Original line number Original line Diff line number Diff line Loading @@ -191,6 +191,7 @@ <ClCompile Include="..\lib_rend\ivas_rotation.c" /> <ClCompile Include="..\lib_rend\ivas_rotation.c" /> <ClCompile Include="..\lib_rend\ivas_rom_rend.c" /> <ClCompile Include="..\lib_rend\ivas_rom_rend.c" /> <ClCompile Include="..\lib_rend\ivas_shoebox.c" /> <ClCompile Include="..\lib_rend\ivas_shoebox.c" /> <ClCompile Include="..\lib_rend\ivas_td_decorr.c" /> <ClCompile Include="..\lib_rend\ivas_vbap.c" /> <ClCompile Include="..\lib_rend\ivas_vbap.c" /> <ClCompile Include="..\lib_rend\lib_rend.c" /> <ClCompile Include="..\lib_rend\lib_rend.c" /> </ItemGroup> </ItemGroup> Loading Workspace_msvc/lib_rend.vcxproj.filters +3 −0 Original line number Original line Diff line number Diff line Loading @@ -170,6 +170,9 @@ <ClCompile Include="..\lib_rend\ivas_lcld_encoder.c"> <ClCompile Include="..\lib_rend\ivas_lcld_encoder.c"> <Filter>rend_c</Filter> <Filter>rend_c</Filter> </ClCompile> </ClCompile> <ClCompile Include="..\lib_rend\ivas_td_decorr.c"> <Filter>rend_c</Filter> </ClCompile> </ItemGroup> </ItemGroup> <ItemGroup> <ItemGroup> <ClInclude Include="..\lib_rend\lib_rend.h" /> <ClInclude Include="..\lib_rend\lib_rend.h" /> Loading Loading
.gitlab-ci.yml +21 −23 Original line number Original line Diff line number Diff line Loading @@ -110,7 +110,7 @@ stages: - make -j - make -j - mv IVAS_cod ../IVAS_cod_test - mv IVAS_cod ../IVAS_cod_test - mv IVAS_dec ../IVAS_dec_test - mv IVAS_dec ../IVAS_dec_test - mv IVAS_rend .. - mv IVAS_rend ../IVAS_rend_test - cd .. - cd .. - rm -rf build/* - rm -rf build/* Loading @@ -129,11 +129,13 @@ stages: - make -j - make -j - mv IVAS_cod ../IVAS_cod_ref - mv IVAS_cod ../IVAS_cod_ref - mv IVAS_dec ../IVAS_dec_ref - mv IVAS_dec ../IVAS_dec_ref - mv IVAS_rend ../IVAS_rend_ref - cd .. - cd .. # rename test binaries back # rename test binaries back - mv IVAS_cod_test IVAS_cod - mv IVAS_cod_test IVAS_cod - mv IVAS_dec_test IVAS_dec - mv IVAS_dec_test IVAS_dec - mv IVAS_rend_test IVAS_rend .merge-request-comparison-check: &merge-request-comparison-check .merge-request-comparison-check: &merge-request-comparison-check - if [ $zero_errors != 1 ]; then echo "Run errors encountered!"; exit $EXIT_CODE_FAIL; fi - if [ $zero_errors != 1 ]; then echo "Run errors encountered!"; exit $EXIT_CODE_FAIL; fi Loading Loading @@ -618,6 +620,7 @@ renderer-pytest-on-merge-request: - *print-common-info - *print-common-info - *get-commits-behind-count - *get-commits-behind-count - *check-commits-behind-count-in-compare-jobs - *check-commits-behind-count-in-compare-jobs - *merge-request-comparison-setup-codec # some helper variables - "|| true" to prevent failures from grep not finding anything # some helper variables - "|| true" to prevent failures from grep not finding anything # write to temporary file as workaround for failures observed with piping echo # write to temporary file as workaround for failures observed with piping echo Loading @@ -625,28 +628,17 @@ renderer-pytest-on-merge-request: - non_be_flag=$(grep -c --ignore-case "\[rend\(erer\)*[ -]*non[ -]*be\]" tmp.txt) || true - non_be_flag=$(grep -c --ignore-case "\[rend\(erer\)*[ -]*non[ -]*be\]" tmp.txt) || true - ref_using_main=$(grep -c --ignore-case "\[ref[ -]*using[ -]*main\]" tmp.txt) || true - ref_using_main=$(grep -c --ignore-case "\[ref[ -]*using[ -]*main\]" tmp.txt) || true # store the current commit hash ### If ref_using_main is not set, checkout the source branch to use scripts and input from there - source_branch_commit_sha=$(git rev-parse HEAD) - if [ $ref_using_main == 0 ]; then git checkout $source_branch_commit_sha; fi - *mr-fetch-target-branch - *mr-get-target-commit - git checkout $target_commit # build reference binaries - make -j IVAS_rend - mv IVAS_rend IVAS_rend_ref # back to source branch - exit_code=0 - git checkout $source_branch_commit_sha - python3 -m pytest -q --log-level ERROR -n auto -rA --html=report.html --self-contained-html --junit-xml=report-junit.xml tests/renderer/test_renderer.py --create_ref || exit_code=$? - make clean - make -j IVAS_rend ### Run test using scripts and input from main ### Run test using branch scripts and input - if [ $ref_using_main == 1 ]; then git checkout $target_commit; fi - if [ $ref_using_main == 1 ]; then git checkout $source_branch_commit_sha; fi # run test # run test - exit_code=0 - python3 -m pytest -q --log-level ERROR -n auto -rA --html=report.html --self-contained-html --junit-xml=report-junit.xml tests/renderer/test_renderer_.py --create_cut || exit_code=$? - python3 -m pytest -q --log-level ERROR -n auto -rA --html=report.html --self-contained-html --junit-xml=report-junit.xml tests/renderer/test_renderer_be_comparison.py || exit_code=$? - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true - *merge-request-comparison-check - *merge-request-comparison-check Loading Loading @@ -722,6 +714,12 @@ split-rendering-pytest-on-merge-request: - mv IVAS_dec IVAS_dec_ref - mv IVAS_dec IVAS_dec_ref - mv IVAS_rend IVAS_rend_ref - mv IVAS_rend IVAS_rend_ref ### If ref_using_main is not set, checkout the source branch to use scripts and input from there - if [ $ref_using_main == 0 ]; then git restore lib_com/options.h; fi # Revert changes back before checking out another branch to avoid conflicts - if [ $ref_using_main == 0 ]; then git checkout $source_branch_commit_sha; fi - exit_code=0 - python3 -m pytest -q --log-level ERROR -n auto -rA --html=report.html --self-contained-html --junit-xml=report-junit.xml tests/split_rendering/test_split_rendering.py --create_ref || exit_code=$? # back to source branch # back to source branch - git restore lib_com/options.h # Revert changes back before checking out another branch to avoid conflicts - git restore lib_com/options.h # Revert changes back before checking out another branch to avoid conflicts - git checkout $source_branch_commit_sha - git checkout $source_branch_commit_sha Loading @@ -731,11 +729,10 @@ split-rendering-pytest-on-merge-request: ### Run test using scripts and input from main ### Run test using scripts and input from main - if [ $ref_using_main == 1 ]; then git restore lib_com/options.h; fi # Revert changes back before checking out another branch to avoid conflicts - if [ $ref_using_main == 1 ]; then git restore lib_com/options.h; fi # Revert changes back before checking out another branch to avoid conflicts - if [ $ref_using_main == 1 ]; then git checkout $target_commit; fi - if [ $ref_using_main == 1 ]; then git checkout $source_branch_commit_sha; fi # run test # run test - exit_code=0 - python3 -m pytest -q --log-level ERROR -n auto -rA --html=report.html --self-contained-html --junit-xml=report-junit.xml tests/split_rendering/test_split_rendering.py --create_cut || exit_code=$? - python3 -m pytest -q --log-level ERROR -n auto -rA --html=report.html --self-contained-html --junit-xml=report-junit.xml tests/split_rendering/test_split_rendering_be_comparison.py || exit_code=$? - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true - *merge-request-comparison-check - *merge-request-comparison-check Loading Loading @@ -1531,7 +1528,8 @@ coverage-test-on-main-scheduled: - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR -v -n auto --update_ref 1 -m create_ref_part2 --ref_encoder_path ./IVAS_cod --ref_decoder_path ./IVAS_dec - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR -v -n auto --update_ref 1 -m create_ref_part2 --ref_encoder_path ./IVAS_cod --ref_decoder_path ./IVAS_dec - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR/test_param_file.py -v -n auto --update_ref 1 -m create_ref --param_file scripts/config/self_test_evs.prm --ref_encoder_path ./IVAS_cod --ref_decoder_path ./IVAS_dec - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR/test_param_file.py -v -n auto --update_ref 1 -m create_ref --param_file scripts/config/self_test_evs.prm --ref_encoder_path ./IVAS_cod --ref_decoder_path ./IVAS_dec - bash ci/smoke_test.sh coverage - bash ci/smoke_test.sh coverage - python3 -m pytest -q -n auto tests/renderer/test_renderer_be_comparison.py - python3 -m pytest -q -n auto tests/renderer/test_renderer.py --create_ref - python3 -m pytest -q -n auto tests/renderer/test_renderer.py --create_cut - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR/test_param_file.py -v -n auto --update_ref 1 -m create_ref --param_file scripts/config/self_test_ltv.prm --ref_encoder_path ./IVAS_cod --ref_decoder_path ./IVAS_dec - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR/test_param_file.py -v -n auto --update_ref 1 -m create_ref --param_file scripts/config/self_test_ltv.prm --ref_encoder_path ./IVAS_cod --ref_decoder_path ./IVAS_dec - bash ci/ivas_voip_be_test.sh coverage - bash ci/ivas_voip_be_test.sh coverage - lcov -c -d obj -o coverage.info - lcov -c -d obj -o coverage.info Loading
Workspace_msvc/lib_com.vcxproj +0 −1 Original line number Original line Diff line number Diff line Loading @@ -217,7 +217,6 @@ <ClCompile Include="..\lib_com\ivas_stereo_mdct_stereo_com.c" /> <ClCompile Include="..\lib_com\ivas_stereo_mdct_stereo_com.c" /> <ClCompile Include="..\lib_com\ivas_stereo_psychlpc_com.c" /> <ClCompile Include="..\lib_com\ivas_stereo_psychlpc_com.c" /> <ClCompile Include="..\lib_com\ivas_stereo_td_bit_alloc.c" /> <ClCompile Include="..\lib_com\ivas_stereo_td_bit_alloc.c" /> <ClCompile Include="..\lib_com\ivas_td_decorr.c" /> <ClCompile Include="..\lib_com\ivas_tools.c" /> <ClCompile Include="..\lib_com\ivas_tools.c" /> <ClCompile Include="..\lib_com\ivas_transient_det.c" /> <ClCompile Include="..\lib_com\ivas_transient_det.c" /> <ClCompile Include="..\lib_com\lag_wind.c" /> <ClCompile Include="..\lib_com\lag_wind.c" /> Loading
Workspace_msvc/lib_com.vcxproj.filters +0 −3 Original line number Original line Diff line number Diff line Loading @@ -460,9 +460,6 @@ <ClCompile Include="..\lib_com\ivas_mdct_imdct.c"> <ClCompile Include="..\lib_com\ivas_mdct_imdct.c"> <Filter>common_ivas_c</Filter> <Filter>common_ivas_c</Filter> </ClCompile> </ClCompile> <ClCompile Include="..\lib_com\ivas_td_decorr.c"> <Filter>common_ivas_c</Filter> </ClCompile> <ClCompile Include="..\lib_com\ivas_ism_com.c"> <ClCompile Include="..\lib_com\ivas_ism_com.c"> <Filter>common_ivas_c</Filter> <Filter>common_ivas_c</Filter> </ClCompile> </ClCompile> Loading
Workspace_msvc/lib_rend.vcxproj +1 −0 Original line number Original line Diff line number Diff line Loading @@ -191,6 +191,7 @@ <ClCompile Include="..\lib_rend\ivas_rotation.c" /> <ClCompile Include="..\lib_rend\ivas_rotation.c" /> <ClCompile Include="..\lib_rend\ivas_rom_rend.c" /> <ClCompile Include="..\lib_rend\ivas_rom_rend.c" /> <ClCompile Include="..\lib_rend\ivas_shoebox.c" /> <ClCompile Include="..\lib_rend\ivas_shoebox.c" /> <ClCompile Include="..\lib_rend\ivas_td_decorr.c" /> <ClCompile Include="..\lib_rend\ivas_vbap.c" /> <ClCompile Include="..\lib_rend\ivas_vbap.c" /> <ClCompile Include="..\lib_rend\lib_rend.c" /> <ClCompile Include="..\lib_rend\lib_rend.c" /> </ItemGroup> </ItemGroup> Loading
Workspace_msvc/lib_rend.vcxproj.filters +3 −0 Original line number Original line Diff line number Diff line Loading @@ -170,6 +170,9 @@ <ClCompile Include="..\lib_rend\ivas_lcld_encoder.c"> <ClCompile Include="..\lib_rend\ivas_lcld_encoder.c"> <Filter>rend_c</Filter> <Filter>rend_c</Filter> </ClCompile> </ClCompile> <ClCompile Include="..\lib_rend\ivas_td_decorr.c"> <Filter>rend_c</Filter> </ClCompile> </ItemGroup> </ItemGroup> <ItemGroup> <ItemGroup> <ClInclude Include="..\lib_rend\lib_rend.h" /> <ClInclude Include="..\lib_rend\lib_rend.h" /> Loading