1. 26 Nov, 2014 1 commit
    • Add mediump and lowp precision emulation support for GLSL output · 853dc1ab
      Olli Etuaho authored
      This implements the rounding as specified in WEBGL_debug_shader_precision
      extension proposal for desktop GLSL and ESSL output. The bulk of the new
      functionality is added in the form of a new EmulatePrecision AST
      traverser, which inserts calls to the rounding routines angle_frm and
      angle_frl in the appropriate places, and writes the rounding routines
      themselves to the shader.
      
      Compound assignments which are subject to emulation are transformed from
      "x op= y" to "angle_compound_op_frm(x, y)", a call to a function which
      does the appropriate rounding and places the result of the operation to
      x.
      
      The angle_ prefixed names should not clash with user-defined names if
      name hashing is on. If name hashing is not on, the precision emulation
      can only be used if the angle_ prefix is reserved for use by ANGLE.
      
      To support the rounding routines in output, a new operator type is added
      for internal helper function calls, which are not subject to name
      hashing.
      
      In ESSL output, all variables are forced to highp when precision
      emulation is on to ensure consistency with how precision emulation
      performs on desktop.
      
      Comprehensive tests for the added code generation are included.
      
      BUG=angle:787
      
      Change-Id: I0d0ad9327888f803a32e79b64b08763c654c913b
      Reviewed-on: https://chromium-review.googlesource.com/229631Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Tested-by: 's avatarOlli Etuaho <oetuaho@nvidia.com>
  2. 25 Nov, 2014 6 commits
  3. 24 Nov, 2014 7 commits
  4. 21 Nov, 2014 9 commits
  5. 20 Nov, 2014 3 commits
  6. 19 Nov, 2014 8 commits
  7. 18 Nov, 2014 1 commit
  8. 17 Nov, 2014 2 commits
  9. 15 Nov, 2014 1 commit
  10. 14 Nov, 2014 2 commits