These patches add kernel-side support for using the zcull hardware in nvidia gpus. Zcull aims to improve memory bandwidth by using an early approximate depth test, similar to hierarchical Z on an AMD card. These patches add two new ioctls on nouveau devices, which are currently only supported when using gsp firmware. Corresponding userspace changes for NVK are available here: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33861 or, if gitlab is down, mirrored here: https://codeberg.org/mhenning/mesa/commits/branch/zcull3 This series is also available in git: https://gitlab.freedesktop.org/mhenning/linux/-/commits/zcull2?ref_type=heads As these are my first kernel patches, I ask for your patience during the review process. Mel Henning (2): drm/nouveau: Add DRM_IOCTL_NOUVEAU_GET_ZCULL_INFO drm/nouveau: DRM_NOUVEAU_SET_ZCULL_CTXSW_BUFFER drivers/gpu/drm/nouveau/include/nvif/if0020.h | 6 + .../drm/nouveau/include/nvkm/core/device.h | 6 + .../gpu/drm/nouveau/include/nvkm/engine/gr.h | 1 + .../sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080gr.h | 122 ++++++++++++++++++ drivers/gpu/drm/nouveau/nouveau_abi16.c | 61 +++++++++ drivers/gpu/drm/nouveau/nouveau_abi16.h | 2 + drivers/gpu/drm/nouveau/nouveau_drm.c | 2 + .../gpu/drm/nouveau/nvkm/engine/fifo/chan.c | 8 ++ .../gpu/drm/nouveau/nvkm/engine/fifo/chan.h | 2 + .../gpu/drm/nouveau/nvkm/engine/fifo/r535.c | 26 ++++ .../gpu/drm/nouveau/nvkm/engine/fifo/uchan.c | 17 +++ drivers/gpu/drm/nouveau/nvkm/engine/gr/r535.c | 34 +++++ include/uapi/drm/nouveau_drm.h | 35 +++++ 13 files changed, 322 insertions(+) -- 2.48.1