• Show log

    Commit

  • Hash : 9696316d
    Author : Olli Etuaho
    Date : 2016-03-21T11:54:33

    Support ESSL structs containing samplers on D3D
    
    Since HLSL can't natively handle samplers in structs, samplers need to
    be extracted out of structs into separate variables in the translated
    shader code. In HLSL 4.1, samplers that were in structs go into the
    normal sampler arrays and are identified by index constants. In other
    HLSL versions, samplers that were in structs are translated as uniform
    variables.
    
    These transformations are done inside the HLSL output classes, not as
    tree transformations. This helps to keep the uniform API provided by
    the shader translator intact.
    
    Wherever a struct containing samplers is passed into a user-defined
    function, the translated HLSL code passes the separate sampler
    variables alongside a struct where the samplers have been removed.
    
    The D3D backend in libANGLE queries the uniform registers of any
    samplers that were in uniform structs, and adds them to the register
    maps, so that correct sampler state gets assigned to them.
    
    The extracted sampler variables are prefixed with "angle_" instead of
    the usual "_" to prevent any name conflicts between them and regular
    variables.
    
    BUG=angleproject:504
    TEST=angle_end2end_tests,
         dEQP-GLES*.functional.shaders.struct.uniform.* (all pass),
         dEQP-GLES*.functional.uniform_api.* (most now pass)
    
    Change-Id: Ib79cba2fa0ff8257a973d70dfd917a64f0ca1efb
    Reviewed-on: https://chromium-review.googlesource.com/333743
    Reviewed-by: Jamie Madill <jmadill@chromium.org>
    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