Automated testing of graphics shader compilers

被引:81
|
作者
Donaldson A.F. [1 ]
Evrard H. [1 ]
Lascu A. [1 ]
Thomson P. [1 ]
机构
[1] Department of Computing, Imperial College London, London
来源
关键词
Compilers; GLSL; GPUs; OpenGL; Shaders; Testing;
D O I
10.1145/3133917
中图分类号
学科分类号
摘要
We present an automated technique for finding defects in compilers for graphics shading languages. A key challenge in compiler testing is the lack of an oracle that classifies an output as correct or incorrect; this is particularly pertinent in graphics shader compilers where the output is a rendered image that is typically underspecified. Our method builds on recent successful techniques for compiler validation based on metamorphic testing, and leverages existing high-value graphics shaders to create sets of transformed shaders that should be semantically equivalent. Rendering mismatches are then indicative of shader compilation bugs. Deviant shaders are automatically minimized to identify, in each case, a minimal change to an original high-value shader that induces a shader compiler bug. We have implemented the approach as a tool, GLFuzz, targeting the OpenGL shading language, GLSL. Our experiments over a set of 17 GPU and driver configurations, spanning the main 7 GPU designers, have led to us finding and reporting more than 60 distinct bugs, covering all tested configurations. As well as defective rendering, these issues identify security-critical vulnerabilities that affect WebGL, including a significant remote information leak security bug where a malicious web page can capture the contents of other browser tabs, and a bug whereby visiting a malicious web page can lead to a lblue screen of deathž under Windows 10. Our findings show that shader compiler defects are prevalent, and that metamorphic testing provides an effective means for detecting them automatically. © 2017 Copyright held by the owner/author(s).
引用
收藏
相关论文
共 50 条
  • [21] Metamorphic Testing of Deep Learning Compilers
    Xiao, Dongwei
    Liu, Zhibo
    Yuan, Yuanyuan
    Pang, Qi
    Wang, Shuai
    PROCEEDINGS OF THE ACM ON MEASUREMENT AND ANALYSIS OF COMPUTING SYSTEMS, 2022, 6 (01)
  • [22] Automated Testing of Graphics Units by Deep-Learning Detection of Visual Anomalies
    Faivishevsky, Lev
    Szeskin, Adi
    Muppalla, Ashwin K.
    Shwartz-Ziv, Ravid
    Ben Ari, Itamar
    Laperdon, Ronen
    Melloul, Benjamin
    Hollander, Tahi
    Hope, Tom
    Armon, Amitai
    KDD '21: PROCEEDINGS OF THE 27TH ACM SIGKDD CONFERENCE ON KNOWLEDGE DISCOVERY & DATA MINING, 2021, : 2811 - 2821
  • [23] Just-In-Time Shader Program Generation for Fixed Function Graphics Pipeline Emulation
    Back, Nakhoon
    2014 IEEE INTERNATIONAL CONFERENCE ON CONSUMER ELECTRONICS (ICCE), 2014, : 502 - 503
  • [24] AUTOMATED COMPILERS LET USERS CONFIGURE THEIR OWN SRAMS
    TUCK, B
    COMPUTER DESIGN, 1991, 30 (10): : 36 - &
  • [25] Model-based testing of optimizing compilers
    Zelenov, Sergey
    Zelenova, Sophia
    TESTING OF SOFTWARE AND COMMUNICATING SYSTEMS, PROCEEDINGS, 2007, 4581 : 365 - +
  • [26] Automated test generation for optimizing compilers with OpenMP support
    Pankratov, Svyatoslav
    22ND INTERNATIONAL CONFERENCE ON CIRCUITS, SYSTEMS, COMMUNICATIONS AND COMPUTERS (CSCC 2018), 2018, 210
  • [27] Shader-based Sensor Simulation for Autonomous Car Testing
    Wang, Shuiying
    Heinrich, Steffen
    Wang, Miao
    Rojas, Raul
    2012 15TH INTERNATIONAL IEEE CONFERENCE ON INTELLIGENT TRANSPORTATION SYSTEMS (ITSC), 2012, : 224 - 229
  • [28] AUTOMATED GRAPHICS APPLICATIONS - DRAFTING
    HENRY, JJ
    IEEE TRANSACTIONS ON POWER APPARATUS AND SYSTEMS, 1982, 101 (08): : 2521 - 2525
  • [29] A Tessellator Based on a Vertex Shader for Bandwidth-Efficient Mobile 3D Graphics
    Chung, Kyusik
    Yu, Chang-Hyo
    Kim, Donghyun
    Kim, Lee-Sup
    ISOCC: 2008 INTERNATIONAL SOC DESIGN CONFERENCE, VOLS 1-3, 2008, : 709 - 710
  • [30] Tessellation-Enabled Shader for a Bandwidth-Limited 3D Graphics Engine
    Chung, Kyusik
    Yu, Chang-Hyo
    Kim, Donghyun
    Kim, Lee-Sup
    PROCEEDINGS OF THE IEEE 2008 CUSTOM INTEGRATED CIRCUITS CONFERENCE, 2008, : 367 - 370