<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root>
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ali="http://www.niso.org/schemas/ali/1.0/" article-type="research-article" dtd-version="1.2" xml:lang="en"><front><journal-meta><journal-id journal-id-type="publisher-id">Programming and Computer Software</journal-id><journal-title-group><journal-title xml:lang="en">Programming and Computer Software</journal-title><trans-title-group xml:lang="ru"><trans-title>Программирование</trans-title></trans-title-group></journal-title-group><issn publication-format="print">0132-3474</issn><issn publication-format="electronic">3034-5847</issn><publisher><publisher-name xml:lang="en">The Russian Academy of Sciences</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="publisher-id">688098</article-id><article-id pub-id-type="doi">10.31857/S0132347425030012</article-id><article-id pub-id-type="edn">GQOVMG</article-id><article-categories><subj-group subj-group-type="toc-heading" xml:lang="en"><subject>COMPUTER GRAFICS AND VISUALIZATION</subject></subj-group><subj-group subj-group-type="toc-heading" xml:lang="ru"><subject>КОМПЬЮТЕРНАЯ ГРАФИКА И ВИЗУАЛИЗАЦИЯ</subject></subj-group><subj-group subj-group-type="article-type"><subject>Research Article</subject></subj-group></article-categories><title-group><article-title xml:lang="en">Graphic shaders testing for use in on-board visualisation system of civil aircraft</article-title><trans-title-group xml:lang="ru"><trans-title>Тестирование графических шейдеров для использования в Бортовой системе визуализации гражданских воздушных судов</trans-title></trans-title-group></title-group><contrib-group><contrib contrib-type="author"><contrib-id contrib-id-type="orcid">https://orcid.org/0000-0002-2391-2067</contrib-id><name-alternatives><name xml:lang="en"><surname>Barladian</surname><given-names>B. Kh.</given-names></name><name xml:lang="ru"><surname>Барладян</surname><given-names>Б. Х.</given-names></name></name-alternatives><address><country country="RU">Russian Federation</country></address><email>bbarladian@gmail.com</email><xref ref-type="aff" rid="aff1"/></contrib><contrib contrib-type="author"><contrib-id contrib-id-type="orcid">https://orcid.org/0000-0003-1252-8294</contrib-id><name-alternatives><name xml:lang="en"><surname>Voloboy</surname><given-names>A. G.</given-names></name><name xml:lang="ru"><surname>Волобой</surname><given-names>А. Г.</given-names></name></name-alternatives><address><country country="RU">Russian Federation</country></address><email>voloboy@gin.keldysh.ru</email><xref ref-type="aff" rid="aff1"/></contrib><contrib contrib-type="author"><contrib-id contrib-id-type="orcid">https://orcid.org/0000-0002-6350-851X</contrib-id><name-alternatives><name xml:lang="en"><surname>Shapiro</surname><given-names>L. Z.</given-names></name><name xml:lang="ru"><surname>Шапиро</surname><given-names>Л. З.</given-names></name></name-alternatives><address><country country="RU">Russian Federation</country></address><email>pls@gin.keldysh.ru</email><xref ref-type="aff" rid="aff1"/></contrib><contrib contrib-type="author"><contrib-id contrib-id-type="orcid">https://orcid.org/0000-0002-0614-9100</contrib-id><name-alternatives><name xml:lang="en"><surname>Denisov</surname><given-names>E. Yu.</given-names></name><name xml:lang="ru"><surname>Денисов</surname><given-names>Е. Ю.</given-names></name></name-alternatives><address><country country="RU">Russian Federation</country></address><email>denisov@gin.keldysh.ru</email><xref ref-type="aff" rid="aff1"/></contrib><contrib contrib-type="author"><contrib-id contrib-id-type="orcid">https://orcid.org/0000-0001-6460-7539</contrib-id><name-alternatives><name xml:lang="en"><surname>Galaktionov</surname><given-names>V. A.</given-names></name><name xml:lang="ru"><surname>Галактионов</surname><given-names>В. А.</given-names></name></name-alternatives><address><country country="RU">Russian Federation</country></address><email>vlgal@gin.keldysh.ru</email><xref ref-type="aff" rid="aff1"/></contrib></contrib-group><aff-alternatives id="aff1"><aff><institution xml:lang="en">Keldysh Institute of Applied Mathematics RAS</institution></aff><aff><institution xml:lang="ru">Институт прикладной математики им. М. В. Келдыша РАН</institution></aff></aff-alternatives><pub-date date-type="pub" iso-8601-date="2025-07-04" publication-format="electronic"><day>04</day><month>07</month><year>2025</year></pub-date><issue>3</issue><issue-title xml:lang="en"/><issue-title xml:lang="ru"/><fpage>3</fpage><lpage>14</lpage><history><date date-type="received" iso-8601-date="2025-07-22"><day>22</day><month>07</month><year>2025</year></date><date date-type="accepted" iso-8601-date="2025-07-22"><day>22</day><month>07</month><year>2025</year></date></history><permissions><copyright-statement xml:lang="en">Copyright ©; 2025, Russian Academy of Sciences</copyright-statement><copyright-statement xml:lang="ru">Copyright ©; 2025, Российская академия наук</copyright-statement><copyright-year>2025</copyright-year><copyright-holder xml:lang="en">Russian Academy of Sciences</copyright-holder><copyright-holder xml:lang="ru">Российская академия наук</copyright-holder></permissions><self-uri xlink:href="https://transsyst.ru/0132-3474/article/view/688098">https://transsyst.ru/0132-3474/article/view/688098</self-uri><abstract xml:lang="en"><p>The software package of a modern civil aircraft operates under the control of a real-time operating system (RTOS). This technology is critical from the point of view of safety and must be certified for use. An integral part of the RTOS is the graphics component. Existing aviation applications use graphics shaders that are to be compiled before execution. But a shader compiler written in C++ cannot be certified. Therefore, we propose an approach in which the compiler is not used in the on-board software. It compiles shaders in advance, and during operation they are loaded as a binary software object. Thus, certification of the shader compiler was replaced by testing the software object created by it. We developed a hardware and software complex designed to test the compiler, independent of a specific target platform. Based on the analysis of aviation applications, a set of tests was developed that allows you to check the correctness of all shader operations used in civil aviation applications. Thus, we have found and successfully implemented a practical solution to the problem of the impossibility of certifying the shader compiler, which made it possible to include shaders in the certified software of the onboard equipment of a civil aircraft.</p></abstract><trans-abstract xml:lang="ru"><p>Программный комплекс современного гражданского самолета работает под управлением операционной системы реального времени (ОСРВ). Эта технология является критической с точки зрения безопасности и для использования должна быть сертифицирована. Неотъемлемой частью ОСРВ является графическая компонента. Существующие авиационные приложения применяют графические шейдеры, которые компилируются перед выполнением. Но компилятор шейдеров, написанный на языке C++, не может быть сертифицирован. Поэтому мы предложили подход, при котором компилятор не используется в бортовом программном обеспечении. Он компилирует шейдеры заранее, и в процессе работы они загружаются в виде двоичного программного объекта. Таким образом, сертификация компилятора шейдеров была заменена на тестирование программного объекта, создаваемого им. Нами был разработан программно-аппаратный комплекс, предназначенный для тестирования работы компилятора, независимый от конкретной целевой платформы. На основе анализа авиационных приложений был разработан набор тестов, позволяющий проверить корректность всех операций шейдеров, применяемых в приложениях гражданской авиации. Таким образом, мы нашли и успешно реализовали практичное решение проблемы невозможности сертификации компилятора шейдеров, что позволило включить шейдеры в сертифицированное программное обеспечение бортового оборудования гражданского самолета.</p></trans-abstract><kwd-group xml:lang="en"><kwd>pilot display</kwd><kwd>OpenGL SC</kwd><kwd>shader compiler</kwd><kwd>shader testing</kwd></kwd-group><kwd-group xml:lang="ru"><kwd>пилотный дисплей</kwd><kwd>OpenGL SC</kwd><kwd>компилятор шейдеров</kwd><kwd>тестирование шейдеров</kwd></kwd-group><funding-group/></article-meta></front><body></body><back><ref-list><ref id="B1"><label>1.</label><mixed-citation>DO-178C Software Considerations in Airborne Systems and Equipment Certification (online). http://www.rtca.org/store_product.asp?prodid=803 Квалификационные требования часть 178C, АР МАК, 2014.</mixed-citation></ref><ref id="B2"><label>2.</label><mixed-citation>Barladian B.Kh., Deryabin N.B., Shapiro L.Z., Solodelov Yu.A., Voloboy A.G., Galaktionov V.A. Multiwindow Rendering on a Cockpit Display Using Hardware Acceleration. Programming and Computer Software. 2021. V. 47. № 6. P. 457–465. DOI: 10.1134/S0361768821060025.</mixed-citation></ref><ref id="B3"><label>3.</label><mixed-citation>Barladian B.Kh., Deryabin N.B., Voloboy A.G., Galaktionov V.A., Shapiro L.Z., Valiev I.V., Solodelov Yu.A. Specifics of the Development of an On-Board Visualization System for Civil Aircrafts. Programming and Computer Software. 2024. V. 50. № 3. P. 215–223. DOI: 10.1134/S0361768824700014.</mixed-citation></ref><ref id="B4"><label>4.</label><mixed-citation>The Mesa 3D Graphics Library (online).http://www.mesa3d.org (accessed: 20.12.2024)</mixed-citation></ref><ref id="B5"><label>5.</label><mixed-citation>Barr E.T., Harman M., McMinn P., Shahbaz M., Yoo S. The Oracle Problem in Software Testing: A Survey. IEEE Trans. Software Eng. 2015. V. 41. № 5. P. 507–525. DOI: 10.1109/TSE.2014.2372785.</mixed-citation></ref><ref id="B6"><label>6.</label><mixed-citation>Якушева С.Ф., Хританков А.С. Систематический обзор методов составления тестовых инвариантов. Программные системы: теория и приложения. 2024. Т. 15. № 2(61). С. 37–86. DOI: 10.25209/2079-3316-2024-15-2-37-86.</mixed-citation></ref><ref id="B7"><label>7.</label><mixed-citation>Segura S., Fraser G., Sanchez A.B., Ruiz-Cortés A. A survey on metamorphic testing. IEEE Transactions on software engineering. 2016. V. 42. № 9. P. 805–824. DOI: 10.1109/TSE.2016.2532875.</mixed-citation></ref><ref id="B8"><label>8.</label><mixed-citation>Guderlei R., Mayer J. Towards Automatic Testing of Imaging Software by Means of Random and Metamorphic Testing. International Journal of Software Engineering and Knowledge Engineering. 2007. V. 17. № 6. P. 757–781. DOI: 10.1142/S0218194007003471.</mixed-citation></ref><ref id="B9"><label>9.</label><mixed-citation>Donaldson A., Evrard H., Lascu A., Thomson P. Automated testing of graphics shader compilers. Proceedings of the ACM on Programming Languages. 2017. V. 1. Issue OOPSLA (Art. 93, pp. 1–29). DOI: 10.1145/3133917.</mixed-citation></ref><ref id="B10"><label>10.</label><mixed-citation>Donaldson A., Thomson P., Teliman V., Milizia S., Maselco A.P., Karpiński A. Test-case reduction and deduplication almost for free with transformation-based compiler testing. PLDI 2021: Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation. 2021. P. 1017–1032. DOI: 10.1145/3453483.3454092.</mixed-citation></ref><ref id="B11"><label>11.</label><mixed-citation>Donaldson A., Evrard H., Lascu A., Thomson P. Putting Randomized Compiler Testing into Production (Experience Report). 34th European Conference on Object-Oriented Programming (ECOOP 2020). Leibniz International Proceedings in Informatics (LIPIcs). 2020. V. 166. P. 22:1–22:29. DOI: 10.4230/LIPIcs.ECOOP.2020.22.</mixed-citation></ref><ref id="B12"><label>12.</label><mixed-citation>Google, GraphicsFuzz. GitHub repository (online). https://github.com/google/graphicsfuzz (accessed: 20.12.2024)</mixed-citation></ref><ref id="B13"><label>13.</label><mixed-citation>The Vulkan Conformance Tests Suite (online). https://docs.vulkan.org/guide/latest/vulkan_cts.html (accessed: 20.12.2024)</mixed-citation></ref><ref id="B14"><label>14.</label><mixed-citation>Xiao D., Liu Z., Wang S. Metamorphic Shader Fusion for Testing Graphics Shader Compilers. 2023 IEEE/ACM 45th International Conference on Software Engineering (ICSE). 2023. P. 2400–2412. DOI: 10.1109/ICSE48619.2023.00201.</mixed-citation></ref><ref id="B15"><label>15.</label><mixed-citation>Bernhard L., Schiller N., Schloegel M., Bars N., Holz T. DarthShader: Fuzzing WebGPU Shader Translators &amp; Compilers. Proceedings of the 2024 on ACM SIGSAC Conference on Computer and Communications Security. P. 690–704. DOI: 10.1145/3658644.3690209.</mixed-citation></ref><ref id="B16"><label>16.</label><mixed-citation>Donaldson A.F., Lascu A. Metamorphic testing for (graphics) compilers. Proceedings of the 1st International Workshop on Metamorphic Testing. 2016. P. 44–47. DOI: 10.1145/2896971.2896978.</mixed-citation></ref><ref id="B17"><label>17.</label><mixed-citation>Szűcs A.I. Improving graphics programming with shader tests. Pollack Periodica. 2019. V. 14. № 1. P. 35–46. DOI: 10.1556/606.2019.14.1.4.</mixed-citation></ref><ref id="B18"><label>18.</label><mixed-citation>Crawford L., O'Boyle M. A Cross-platform Evaluation of Graphics Shader Compiler Optimization. 2018 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS). 2018. P. 219–228. DOI: 10.1109/ISPASS.2018.00035.</mixed-citation></ref><ref id="B19"><label>19.</label><mixed-citation>GFXBench – a bencmarking suite for OpenGL shaders (online). https://gfxbench.com (accessed: 20.12.2024)</mixed-citation></ref><ref id="B20"><label>20.</label><mixed-citation>Kuo L.-W., Yang C.-C., Lee J.-K., Tseng S.-Y. The design of LLVM-based shader compiler for embedded architecture. 20th IEEE International Conference on Parallel and Distributed Systems (ICPADS). 2014. P. 961–968. DOI: 10.1109/PADSW.2014.7097916.</mixed-citation></ref><ref id="B21"><label>21.</label><mixed-citation>SCADE Suite (online). https://cae-expert.ru/product/scade-suite (accessed: 20.12.2024)</mixed-citation></ref><ref id="B22"><label>22.</label><mixed-citation>Simpson R.J., Kessenich J. The opengl es shading language. Language Version, 1 (online). 2009. www.khronos.org/files/opengles_shading_language.pdf</mixed-citation></ref><ref id="B23"><label>23.</label><mixed-citation>Simpson R.J., Kessenich J. The OpenGL ES Shading Language Version 3.20.6 (online), 2019. The Khronos Group.</mixed-citation></ref><ref id="B24"><label>24.</label><mixed-citation>Munshi A., Ginsburg D., Shreiner D. OpenGL ES 2.0 Programming Guide. Boston: Addison–Wesley. 2008.</mixed-citation></ref><ref id="B25"><label>25.</label><mixed-citation>i.MX 6 Series Applications Processors (online). http://www.nxp.com/products/microcontrollers-and-processors/arm-processors/i.mx-applications-processors/i.mx-6-processors:IMX6X_SERIES (accessed: 20.12.2024)</mixed-citation></ref><ref id="B26"><label>26.</label><mixed-citation>Солоделов Ю.А., Горелиц Н.К. Сертифицируемая бортовая операционная система реального времени JetOS для российских проектов воздушных судов. Труды ИСП РАН. 2017. Т. 29. № 3. С. 171–178. DOI: 10.15514/ISPRAS-2017-29(3)-10.</mixed-citation></ref></ref-list></back></article>
