Mesa (master): panfrost: Use Midgard-specific reloads

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Jul 16 15:45:13 UTC 2020


Module: Mesa
Branch: master
Commit: 293f251871b2fc7fd40d0fcabec4dd8a8324bc47
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=293f251871b2fc7fd40d0fcabec4dd8a8324bc47

Author: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Date:   Thu Jul  9 13:42:25 2020 -0400

panfrost: Use Midgard-specific reloads

v2: Be more explicit about sampler types. Prefer the term "load" to
"resolve" to match VK convention. Generate shaders for MRT 8x.  Blit
shader generation adds about 6ms to startup cost. We could cache thes.
shaders to disk if we needed to (or indeed, ship binaries).

v3: Fallback on u_blitter on Bifrost so Bifrost continues to work.
KHR_partial_update support is mostly no-oped on Bifrost now, but that's
okay for now - compositors are still functional.

v4: Specialize on multisample state as well to enable reloads of MSAA
textures. This requires 2x the shader variants, so I assume we're up to
12ms startup cost for generation. Annoying. Also fix interactions with
depth- or stencil-only clears of combined depth-stencil surfaces.

v5: Cache to the device (screen) instead of the context, reducing
duplicated work in apps that create many contexts (e.g. Chromium)

v6: Squash in KHR_partial_update cleanup to fix intermediate
regressions on a few tests.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5824>

---

 .gitlab-ci/deqp-panfrost-t720-fails.txt     |   1 -
 .gitlab-ci/deqp-panfrost-t760-fails.txt     |  31 ---
 .gitlab-ci/deqp-panfrost-t820-fails.txt     |  31 ---
 .gitlab-ci/deqp-panfrost-t860-fails.txt     | 183 --------------
 src/gallium/drivers/panfrost/pan_context.c  |   5 +
 src/gallium/drivers/panfrost/pan_context.h  |   2 +
 src/gallium/drivers/panfrost/pan_job.c      | 240 +++++++++++-------
 src/gallium/drivers/panfrost/pan_mfbd.c     |   4 +-
 src/gallium/drivers/panfrost/pan_resource.c |  69 ++----
 src/gallium/drivers/panfrost/pan_resource.h |   7 +-
 src/gallium/drivers/panfrost/pan_screen.c   |   3 +
 src/panfrost/Makefile.sources               |   1 +
 src/panfrost/encoder/meson.build            |   3 +-
 src/panfrost/encoder/pan_blit.c             | 370 ++++++++++++++++++++++++++++
 src/panfrost/encoder/pan_device.h           |  18 ++
 src/panfrost/encoder/pan_pool.h             |   1 +
 src/panfrost/encoder/pan_props.c            |   1 +
 src/panfrost/encoder/pan_texture.h          |  31 +++
 18 files changed, 605 insertions(+), 396 deletions(-)

Diff:   http://cgit.freedesktop.org/mesa/mesa/diff/?id=293f251871b2fc7fd40d0fcabec4dd8a8324bc47


More information about the mesa-commit mailing list