• Show log

    Commit

  • Hash : afaa1287
    Author : Tim Van Patten
    Date : 2021-10-26T19:29:44

    Vulkan: Don't submit XFB queries when XFB is inactive
    
    Consider the following GL commands:
    
      glBeginQuery(GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN)
      glBeginTransformFeedback()
      glDrawArrays()
      glPauseTransformFeedback()
      glDrawArrays()
      glResumeTransformFeedback()
      glDrawArrays()
      glEndTransformFeedback()
      glEndQuery(GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN)
    
    The renderpass is broken for each of the draw calls, leading to
    pauseRenderPassQueriesIfActive() and resumeRenderPassQueriesIfActive()
    being called when the RP is stopped/started. This leads ANGLE to
    generate 3 TransformFeedbackPrimitivesWritten queries when looping
    through the "active" queries, since no consideration is made for XFB
    actually being active/unpaused.
    
    ARM doesn't support the TransformFeedbackPrimitivesWritten query when
    XFB is disabled. Instead, the query is never completed and the results
    are never available. It could probably be argued that this is an ARM
    bug, and they should just output '0' if XFB isn't active during the
    query.
    
    Regardless, ANGLE shouldn't be issuing the queries when XFB is no
    active, since it's wasteful.
    
    Bug: angleproject:6622
    Test: dEQP.GLES3/functional_transform_feedback*
    Test: TransformFeedbackTest.TransformFeedbackQueryPausedDrawThenResume
    Change-Id: I380fb60405d7f538b802bb0df72bf609f0bc58e9
    Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3246532
    Reviewed-by: Charlie Lao <cclao@google.com>
    Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
    Commit-Queue: Tim Van Patten <timvp@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
    kc3_lang_org thodg_w www_kmx_io thodg_l thodg thodg_m
    Tags

  • README.md

  • ANGLE back-ends

    This folder contains shared back-end-specific implementation files. The classes and types in renderer are not specified by GLES. They instead are common to all the various ANGLE implementations.

    See renderer_utils.h for various cross back-end utilties.

    ANGLE Formats

    The ANGLE format class, angle::Format, works as a union between GLES and all the various back-end formats. It can represent any type of format in ANGLE. e.g. Formats in Vulkan that don’t exist in GLES, or DXGI formats that don’t exist in GLES, or Windows/Android surface configs that don’t exist anywhere else.

    The glInternalFormat member of angle::Format represents the “closest” GL format for an ANGLE format. For formats that don’t exist in GLES this will not be exactly what the format represents.

    The back-ends also define their own format tables. See the Vulkan Format table docs and the [D3D11 format table docs][D23D11FormatDocs].

    DXGI Format Info

    DXGI formats are used in both the GL and D3D11 back-end. Therefore the generated info table lives in this common shared location.

    The DXGI info table is generated by gen_dxgi_format_table.py and sources data from dxgi_format_data.json. The main purpose of the table is to convert from a DXGI format to an ANGLE format, where the ANGLE format should have all the necessary information.