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 a
new ioctl on nouveau devices, which is currently only supported when using
gsp firmware.
Corresponding userspace changes for NVK are available here:
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33861
This series is also available in git:
https://gitlab.freedesktop.org/mhenning/linux/-/commits/zcull3
(v2): Split the first patch into two - one for fetching information from
the hardware and the other for adding the UAPI. Also, drop the
change adding DRM_NOUVEAU_SET_ZCULL_CTXSW_BUFFER - it isn't
necessary to get zcull working and will be pursued as a separate
performance improvement in the future.
Signed-off-by: Mel Henning <mhenning@darkrefraction.com>
---
Mel Henning (2):
drm/nouveau: Fetch zcull info from device
drm/nouveau: Add DRM_IOCTL_NOUVEAU_GET_ZCULL_INFO
drivers/gpu/drm/nouveau/include/nvkm/engine/gr.h | 19 +++++++
drivers/gpu/drm/nouveau/nouveau_abi16.c | 29 ++++++++++
drivers/gpu/drm/nouveau/nouveau_abi16.h | 1 +
drivers/gpu/drm/nouveau/nouveau_drm.c | 1 +
.../gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/gr.c | 9 ++-
.../gpu/drm/nouveau/nvkm/subdev/gsp/rm/r570/gr.c | 32 ++++++++++-
.../drm/nouveau/nvkm/subdev/gsp/rm/r570/nvrm/gr.h | 19 +++++++
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/rm.h | 2 +-
include/uapi/drm/nouveau_drm.h | 66 ++++++++++++++++++++++
9 files changed, 172 insertions(+), 6 deletions(-)
---
base-commit: 18f7fcd5e69a04df57b563360b88be72471d6b62
change-id: 20260205-zcull3-9065115cd238
Best regards,
--
Mel Henning <mhenning@darkrefraction.com>