• Show log

    Commit

  • Hash : b066669d
    Author : Jamie Madill
    Date : 2015-10-26T10:38:18

    Revert "Remove dynamic indexing of matrices and vectors in HLSL"
    
    This reverts commit 3766a40d6fda7e7190514ab7838a3f37169d863f.
    
    This CL was causing crashes in UniformHLSL.cpp, where an internal
    uniform "base" was attempted to be declared in HLSL. Was crashing
    on an external WebGL 3D canvas page (http://www.taccgl.org/?dbg=t).
    
    BUG=546686
    
    Original commit message:
    
    Re-landing after fixing D3D9 specific issues.
    
    HLSL doesn't support dynamic indexing of matrices and vectors, so replace
    that with helper functions that unroll dynamic indexing into switch/case
    and static indexing.
    
    Both the indexed vector/matrix expression and the index may have side
    effects, and these will be evaluated correctly. If necessary, index
    expressions that have side effects will be written to a temporary
    variable that will replace the index.
    
    Besides dEQP tests, this change is tested by a WebGL 2 conformance test.
    
    In the case that a dynamic index is out-of-range, the base ESSL 3.00 spec
    allows undefined behavior. KHR_robust_buffer_access_behavior adds the
    requirement that program termination should not occur and that
    out-of-range reads must return either a value from the active program's
    memory or zero, and out-of-range writes should only affect the active
    program's memory or do nothing. This patch clamps out-of-range indices so
    that either the first or last item of the matrix/vector is accessed.
    
    The code is not transformed in case the it fits within the limited subset
    of ESSL 1.00 given in Appendix A of the spec. If the code isn't within
    the restricted subset, even ESSL 1.00 shaders may require this
    workaround.
    
    BUG=angleproject:1116
    TEST=dEQP-GLES3.functional.shaders.indexing.* (all pass after change)
         WebGL 2 conformance tests (glsl3/vector-dynamic-indexing.html)
    
    Change-Id: I1d4b2e3888e91af7d5eebf743d12778698b6b903
    Reviewed-on: https://chromium-review.googlesource.com/308770
    Reviewed-by: Jamie Madill <jmadill@chromium.org>
    Tested-by: Jamie Madill <jmadill@chromium.org>
    

  • 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
    thodg_m kc3_lang_org thodg_w www_kmx_io thodg thodg_l
    Tags