tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

essl3-shaders-with-webgl1.html (4100B)


      1 <!--
      2 Copyright (c) 2019 The Khronos Group Inc.
      3 Use of this source code is governed by an MIT-style license that can be
      4 found in the LICENSE.txt file.
      5 -->
      6 
      7 <!DOCTYPE html>
      8 <html>
      9 <head>
     10 <meta charset="utf-8">
     11 <title>Browser bug - WebGL 1 context should not accept OpenGL ES 3 shading language shaders</title>
     12 <link rel="stylesheet" href="../../../resources/js-test-style.css"/>
     13 <link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/>
     14 <script src="../../../js/js-test-pre.js"></script>
     15 <script src="../../../js/webgl-test-utils.js"></script>
     16 <script src="../../../js/glsl-conformance-test.js"></script>
     17 </head>
     18 <body>
     19 <div id="description"></div>
     20 <div id="console"></div>
     21 <script id="ES1VertexShader" type="x-shader/x-vertex">
     22 precision mediump float;
     23 attribute vec4 aPosition;
     24 
     25 void main() {
     26    gl_Position = aPosition;
     27 }
     28 </script>
     29 <script id="ES1FragmentShader" type="x-shader/x-fragment">
     30 precision mediump float;
     31 
     32 void main() {
     33    gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
     34 }
     35 </script>
     36 <!-- Note that the version directive should be on the very first line in ESSL 3, see ESSL 3 section 3.3 -->
     37 <script id="ES3VertexShader" type="x-shader/x-vertex">#version 300 es
     38 precision mediump float;
     39 in vec4 aPosition;
     40 
     41 void main() {
     42    gl_Position = aPosition;
     43 }
     44 </script>
     45 <script id="ES3FragmentShader" type="x-shader/x-fragment">#version 300 es
     46 precision mediump float;
     47 out vec4 my_FragColor;
     48 
     49 void main() {
     50    my_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
     51 }
     52 </script>
     53 <script id="emptyES3FragmentShader" type="x-shader/x-fragment">#version 300 es
     54 precision mediump float;
     55 void main() {
     56 }
     57 </script>
     58 <script id="vertexShaderWithInQualifier" type="x-shader/x-vertex">
     59 precision mediump float;
     60 in vec4 aPosition;
     61 
     62 void main() {
     63    gl_Position = aPosition;
     64 }
     65 </script>
     66 <script id="fragmentShaderWithOutQualifier" type="x-shader/x-fragment">
     67 precision mediump float;
     68 out vec4 my_FragColor;
     69 
     70 void main() {
     71    my_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
     72 }
     73 </script>
     74 <script type="application/javascript">
     75 "use strict";
     76 description("OpenGL ES 3 shading language shaders should not be accepted by WebGL 1.");
     77 GLSLConformanceTester.runTests([
     78  {
     79    vShaderId: "ES3VertexShader",
     80    vShaderSuccess: false,
     81    fShaderId: "ES1FragmentShader",
     82    fShaderSuccess: true,
     83    linkSuccess: false,
     84    passMsg: "OpenGL ES 3 shading language vertex shader with an in variable should not be accepted by WebGL 1."
     85  },
     86  {
     87    vShaderId: "ES1VertexShader",
     88    vShaderSuccess: true,
     89    fShaderId: "ES3FragmentShader",
     90    fShaderSuccess: false,
     91    linkSuccess: false,
     92    passMsg: "OpenGL ES 3 shading language fragment shader with an out variable should not be accepted by WebGL 1."
     93  },
     94  {
     95    vShaderId: "ES1VertexShader",
     96    vShaderSuccess: true,
     97    fShaderId: "emptyES3FragmentShader",
     98    fShaderSuccess: false,
     99    linkSuccess: false,
    100    passMsg: "OpenGL ES 3 shading language fragment shader with an empty body should not be accepted by WebGL 1."
    101  },
    102  {
    103    vShaderId: "ES3VertexShader",
    104    vShaderSuccess: false,
    105    fShaderId: "ES3FragmentShader",
    106    fShaderSuccess: false,
    107    linkSuccess: false,
    108    passMsg: "OpenGL ES 3 shading language shaders should not be linked by WebGL 1."
    109  },
    110  {
    111    vShaderId: "ES3VertexShader",
    112    vShaderSuccess: false,
    113    fShaderId: "emptyES3FragmentShader",
    114    fShaderSuccess: false,
    115    linkSuccess: false,
    116    passMsg: "OpenGL ES 3 shading language shaders including fragment shader with empty body should not be linked by WebGL 1."
    117  },
    118  {
    119    vShaderId: "vertexShaderWithInQualifier",
    120    vShaderSuccess: false,
    121    fShaderId: "ES1FragmentShader",
    122    fShaderSuccess: true,
    123    linkSuccess: false,
    124    passMsg: "Vertex shader with an in qualifier on a global variable should not be accepted by WebGL 1."
    125  },
    126  {
    127    vShaderId: "ES1VertexShader",
    128    vShaderSuccess: true,
    129    fShaderId: "fragmentShaderWithOutQualifier",
    130    fShaderSuccess: false,
    131    linkSuccess: false,
    132    passMsg: "Fragment shader with an out qualifier on a global variable should not be accepted by WebGL 1."
    133  }
    134 ]);
    135 var successfullyParsed = true;
    136 </script>
    137 </body>
    138 </html>