• Show log

    Commit

  • Hash : 4397ff2f
    Author : Kimmo Kinnunen
    Date : 2024-10-25T16:55:30

    Metal: SeparateCompoundStructDeclarations fails validation
    
    Consider GLSL:
      struct S { int i; } s;
      s=s;
    
    SeparateCompoundStructDeclarations would rewrite this to:
      struct S { int i; };
      S s';
      s=s;
    
    The interm rewrite would rewrite the specification and declaration of s,
    but not the use sites. The use sites would use the old type, and thus
    something that was not in the tree anymore. This would fail the
    validation.
    
    This kind of bug was previously fixed for SeparateDeclarations
    in commit 18fa02bebf901dd8501de3176f6052ae4ce984be.
    
    Fix by adding the logic to SeparateDeclarations, as it is already
    doing almost the exact task, separating `struct S { ..} a, b`.
    
    The separation is tested in GLSLTests.StructInShader and various
    other draw tests. These pass with MSL, but these would also fail
    validation if that was enabled.
    
    Bug: angleproject:375523825
    Change-Id: I1697103d0ba47616dbd3159f36f9e71cb2831c4b
    Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5964899
    Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
    Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
    Reviewed-by: Geoff Lang <geofflang@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