• Show log

    Commit

  • Hash : 8c341cfd
    Author : Shahbaz Youssefi
    Date : 2023-10-04T12:49:59

    Vulkan: Fix blits involving 3D images
    
    The layer vs depth value involved with 3D images when calling
    vkCmdBlitImage is fixed in this change.
    
    However, that brought to light that the combination of
    VUID-vkCmdBlitImage-srcImage-00240 and
    VUID-vkCmdBlitImage-dstImage-00252 make it impossible to blit between 3D
    and 2D array images, which is likely a spec oversight.
    
    This change makes 3D<->2DArray blits fall back to draw-based blit.  This
    in turn exposed the fact that 3D images as src were not handled in
    BlitResolve.frag.  A new Blit3DSrc.frag shader is added which shares
    code with BlitResolve.frag to implement this.  This is a separate shader
    to avoid creating unnecessary and invalid combinations of shaders.
    
    VK_EXT_image_2d_view_of_3d could have been used to avoid this new
    shader, but that is not ubiquitous.
    
    Bug: angleproject:7291
    Bug: dawn:1962
    Change-Id: I6a96162f95829304b4731d43208d9d054f538105
    Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4911800
    Reviewed-by: Charlie Lao <cclao@google.com>
    Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
    Reviewed-by: Yuxin Hu <yuxinhu@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.