v3dv: rewrite frame tiling setup
authorIago Toral Quiroga <itoral@igalia.com>
Mon, 2 Mar 2020 16:21:26 +0000 (17:21 +0100)
committerMarge Bot <eric+marge@anholt.net>
Tue, 13 Oct 2020 21:21:28 +0000 (21:21 +0000)
commit2a3fa914d4a3cf3322178ee2633946b6b311ba3b
treeb8260c0e348c545d5f8d8c3f15aeee9e22f9cf60
parent44cda4dbfe50dc65107fc8da64b3da51ad086032
v3dv: rewrite frame tiling setup

So far we have been getting away with computing frame tiling information for
the framebuffer object, but that is not correct, since different subpasses
may access different subsets of the framebuffer, with each requiring a
different configuration because the number of render targets and the maximum
bpp can change for each subpass.

This adds a v3dv_frame_tiling struct to keep the frame tiling information and
rewrites the code to compute this for every new job we start.

Fixes a bunch of tests in dEQP-VK.pipeline.render_to_image.*

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6766>
src/broadcom/vulkan/v3dv_cmd_buffer.c
src/broadcom/vulkan/v3dv_device.c
src/broadcom/vulkan/v3dv_meta_clear.c
src/broadcom/vulkan/v3dv_meta_copy.c
src/broadcom/vulkan/v3dv_private.h