• Show log

    Commit

  • Hash : 9b5fff82
    Author : Shahbaz Youssefi
    Date : 2022-10-05T21:56:00

    Vulkan: Emulate shader stencil export for MSRTT
    
    The MSRTT emulation code had one corner case issue that could lead to
    performance and memory inefficiencies.  That is when stencil needs to be
    unresolved and VK_EXT_shader_stencil_export is not supported.
    
    This change adds a path to emulate VK_EXT_shader_stencil_export and
    removes this inefficiency.
    
    This should help Chromium on older Android devices that lack both this
    and the recent VK_EXT_multisampled_render_to_single_sampled extensions.
    Chromium frequently breaks the render pass (crbug.com/1336981), which
    easily leads to this situation.
    
    Bug: angleproject:4836
    Change-Id: Ifceec43f7f3807b7e32f4b379edcd4351ae76414
    Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3935892
    Reviewed-by: Yuxin Hu <yuxinhu@google.com>
    Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
    Reviewed-by: Charlie Lao <cclao@google.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
    thodg_m kc3_lang_org thodg_w www_kmx_io thodg thodg_l
    Tags

  • README.md

  • Shader Variations

    To build multiple variations of a shader, add a file named X.json corresponding to shader file X. A variation is generated by building the shader with different definitions (a la glslang_validator’s -DName=1). These definitions come from flags and enumerations defined in the json file. Without a .json file, the shader is generated as is (1 variation).

    There are multiple possible fields in the json file:

    • “Description”: This contains the license and other comments, which will be ignored.
    • “Flags”: this is a list of flags. Each flag FLAG defines a shader variation with or without the define FLAG=1.
    • other: any other field is a similar list to flags, except that each entry in this enumeration is a variation. Similar to “flags”, every entry ENTRY results in an ENTRY=1 define.

    Flags are shorthand for 2-entry enumerations. Given n flags, there are 2^n variations where every flag is either present or not. For enumerations, only one entry is active in any variation. Thus, an enumeration with n entries generates n variations.

    Example

    Here is an example json file:

    {

    "Description": [
        "Copyright 2018 The ANGLE Project Authors. All rights reserved.",
        "Use of this source code is governed by a BSD-style license that can be",
        "found in the LICENSE file.",
        "",
        "RayTrace.comp.json: Build parameters for RayTrace.comp."
    ],
    "Flags": [
        "NanFilter",
        "WorkaroundIntelBug"
    ],
    "RayTraceQuality": [
        "IsRTLowRes",
        "IsRTHighRes",
        "IsRTAwesome"
    ],
    "ImageType": [
        "IsR",
        "IsRG",
        "IsRGB",
        "IsRGBA"
    ]

    }

    This will generate 2^2 3 4 shaders.