Midgard and Bifrost GPUs feature "hierarchical tiling", publicly documented to varying degrees. Essentially, we're a regular tiler GPU, but the tile size can vary (and that variance is in driver control).
This series adds some explanation how hierarchical tiling works from the drivers' perspective, in order to demystify the tiler data structures we touch. With that explanation, we are then able to use these bits to compute the tiler data structure sizes ourselves, correctly supplying the corresponding sizes in the framebuffer descriptor. Once job management is tamed, we'll use these sizes to statically allocate the polygon list on a per-framebuffer basis. Alyssa Rosenzweig (11): panfrost: Integrate kernel names for tiler FBD panfrost: Add notes about the tiler allocations panfrost: Rename tiler fields per tiler research panfrost: Document tile size heuristic panfrost: Add pan_tiler.h header panfrost: Calculate polygon list header size panfrost: Use polygon list header size computation panfrost: Compute and use polygon list body size panfrost: Sanity check tiler polygon list size panfrost: Rename misc_0 -> tiler_polygon_list panfrost: Stub out hierarchy mask selection .../drivers/panfrost/include/panfrost-job.h | 52 +++- src/gallium/drivers/panfrost/meson.build | 3 +- src/gallium/drivers/panfrost/pan_context.c | 101 +++--- src/gallium/drivers/panfrost/pan_context.h | 3 +- src/gallium/drivers/panfrost/pan_drm.c | 2 +- src/gallium/drivers/panfrost/pan_tiler.c | 291 ++++++++++++++++++ src/gallium/drivers/panfrost/pan_tiler.h | 44 +++ .../drivers/panfrost/pandecode/decode.c | 50 ++- 8 files changed, 457 insertions(+), 89 deletions(-) create mode 100644 src/gallium/drivers/panfrost/pan_tiler.c create mode 100644 src/gallium/drivers/panfrost/pan_tiler.h -- 2.20.1 _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
