• Show log

    Commit

  • Hash : a42e8b2c
    Author : Olli Etuaho
    Date : 2016-06-29T15:49:22

    Support precision emulation on HLSL
    
    Add precision emulation support to HLSL 4.1 output. This makes it
    possible for developers to test their shaders for precision issues
    easily on Chrome on Windows without having to use the GL backend. The
    patch has been verified with Chrome on Windows to reproduce some
    precision bugs in real-world WebGL content, including old versions of
    the babylon.js library.
    
    The EmulatePrecision AST transformation still relies on writing out
    raw shader code for the rounding functions, with raw HLSL code added
    alongside pre-existing GLSL and ESSL code. In some ways it would be
    nicer to do the EmulatePrecision step as a pure AST transformation,
    but on the other hand the raw code is much more readable and easier
    to optimize.
    
    To better support multiple output languages in EmulatePrecision, add a
    RoundingHelperWriter class that has different subclasses for writing
    the rounding functions in different languages.
    
    The unit tests are expanded to cover the HLSL output of precision
    emulation. The parts of the tests that require the HLSL output are
    only active on Windows where ANGLE_ENABLE_HLSL define is added to the
    unit tests. Putting the HLSL tests in an entirely separate file is a
    worse alternative, since it would require either a lot of code
    duplication or add a lot of boilerplate to the individual tests.
    
    BUG=angleproject:1437
    TEST=angle_unittests
    
    Change-Id: Ia4ba0374cd415908f16f34752321af1cb93525a5
    Reviewed-on: https://chromium-review.googlesource.com/358473
    Reviewed-by: Corentin Wallez <cwallez@chromium.org>
    Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
    

  • Properties

  • Git HTTP https://git.kmx.io/kc3-lang/angle.git
    Git SSH git@git.kmx.io:kc3-lang/angle.git
    Public access ? public
    Description

    A conformant OpenGL ES implementation for Windows, Mac, Linux, iOS and Android.

    Homepage

    Github

    Users
    kc3_lang_org thodg_w www_kmx_io thodg_l thodg thodg_m
    Tags

  • README.md

  • ANGLE - Almost Native Graphics Layer Engine

    The goal of ANGLE is to allow users of multiple operating systems to seamlessly run WebGL and other OpenGL ES content by translating OpenGL ES API calls to one of the hardware-supported APIs available for that platform. ANGLE currently provides translation from OpenGL ES 2.0 to desktop OpenGL, Direct3D 9, and Direct3D 11. Support for translation from OpenGL ES 3.0 to all of these APIs is nearing completion, and future plans include enabling validated ES-to-ES support.

    Direct3D 9 Direct3D 11 Desktop GL GL ES
    OpenGL ES 2.0 complete complete complete planned
    OpenGL ES 3.0 nearing completion nearing completion planned

    [Level of OpenGL ES support via backing renderers]

    Direct3D 9 Direct3D 11 Desktop GL
    Windows * * *
    Linux *
    Mac OS X in progress

    [Platform support via backing renderers]

    ANGLE v1.0.772 was certified compliant by passing the ES 2.0.3 conformance tests in October 2011. ANGLE also provides an implementation of the EGL 1.4 specification.

    ANGLE is used as the default WebGL backend for both Google Chrome and Mozilla Firefox on Windows platforms. Chrome uses ANGLE for all graphics rendering on Windows, including the accelerated Canvas2D implementation and the Native Client sandbox environment.

    Portions of the ANGLE shader compiler are used as a shader validator and translator by WebGL implementations across multiple platforms. It is used on Mac OS X, Linux, and in mobile variants of the browsers. Having one shader validator helps to ensure that a consistent set of GLSL ES shaders are accepted across browsers and platforms. The shader translator can be used to translate shaders to other shading languages, and to optionally apply shader modifications to work around bugs or quirks in the native graphics drivers. The translator targets Desktop GLSL, Direct3D HLSL, and even ESSL for native GLES2 platforms.

    Sources

    ANGLE repository is hosted by Chromium project and can be browsed online or cloned with

    git clone https://chromium.googlesource.com/angle/angle

    Building

    View the Dev setup instructions. For generating a Windows Store version of ANGLE view the Windows Store instructions

    Contributing