Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: flutter/engine
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: c4247c5e31ba
Choose a base ref
...
head repository: flutter/engine
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: f4fbabf1eb9f
Choose a head ref
  • 1 commit
  • 36 files changed
  • 1 contributor

Commits on Jan 31, 2024

  1. [Impeller] Implement framebuffer-fetch via subpasses in Vulkan withou…

    …t extensions. (#50154)
    
    * Subpasses are not exposed in the HAL and the need for subpasses in Vulkan can
      be determined based on the presence and use of input-attachments in the
      shaders. This information is already reflected by the compiler. Because of
      this, all references to subpasses have been removed from APIs above the HAL.
    * `RenderPassBuilderVK` is a lightweight object used to generate render passes
      to use either with the pipelines (compat, base, or per-subpass) or during
      rendering along with the framebuffer. Using the builder also sets up the
      right subpass dependencies. As long as the builder contains compatible
      attachments and subpass counts, different subpasses stamped by the builder
      (via the `Build` method) are guaranteed to be compatible per the rules in the
      spec.
    * Pass attachments are now in the `eGeneral` layout. There was no observable
      difference in performance when manually inserting the right transitions.
      Except, a lot of transitions needed to be inserted. If we need it, we can add
      it back in short order. I wouldn't be averse to adding it if reviewers
      insist.
    * Additional pipeline state objects need not be created as the sub-pass
      self-dependencies are sufficient to setup the render-pass.
    * Speaking of the `rasterization_order_attachment_access` extension, its use has
      been removed in this patch. I am prototyping adding it back to measure the
      overhead introduced by manual subpass management. If the overhead is
      measurable, we can use the extension on devices that have it as an added
      optimization.
    * The complexity of command encoding remains linear (to the number of commands)
      per pass.
    * This patch only works on a single color attachment being used as an input
      attachment. While this is sufficient for current use cases, the Metal
      implementation is significantly more capable since the multiple attachments
      and attachment types (depth) are already supported. Rounding out support for
      this is in progress.
    chinmaygarde authored Jan 31, 2024
    Configuration menu
    Copy the full SHA
    f4fbabf View commit details
    Browse the repository at this point in the history
Loading