• Show log

    Commit

  • Hash : 34db1c20
    Author : Aurora Zhang
    Date : 2025-03-20T12:56:42

    Vulkan: glReadPixels should nearest sample the YUV render target
    
    Vulkan backend uses texture except texelFetch to obtain the YUV image
    value for glReadPixels. According to the chroma filter set in the image,
    it may apply LINEAR sampling.
    
    * Change this filter to NEAREST inside glReadPixels to get the correct
      pixel values.
    
    * Modify the fragment shader used in glReadPixels to make sure sampling
      from the center of the pixel.
    
    * Add a new end2end test.
    
    Bug: angleproject:404394628
    Change-Id: I0e574a464639e11671f0a09eee3e9f38b5abd919
    Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6366299
    Auto-Submit: Aurora Zhang <Aurora.Zhang@arm.com>
    Reviewed-by: Charlie Lao <cclao@google.com>
    Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
    Reviewed-by: Shahbaz Youssefi <syoussefi@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

  • 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.