diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-22 18:46:52 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-22 18:46:52 -0400 |
| commit | e931257ee57ad6a36a7b72f7a8f4cd9e5322277e (patch) | |
| tree | fabf64534f9002db7ebde7e781404ab0abc88ffd /kernel/gsp_rm_tu104.h | |
| parent | dece666732a95bafd349cac2fb2fbcd3aa3afa53 (diff) | |
| download | open-iov-e931257ee57ad6a36a7b72f7a8f4cd9e5322277e.tar.gz open-iov-e931257ee57ad6a36a7b72f7a8f4cd9e5322277e.zip | |
r496i CE caps byte 1: the blocklinear support bits the 2D copy path requires
nvCEChooseEngine skips every CE without CE_SUPPORTS_NONPIPELINED_BL
(caps byte 1, 0x01) and, in the preferred pass, PIPELINED_BL (0x02). Our
emulated CE caps left byte 1 zero, so every CE failed the filter and the X
driver aborted with 'Failed to find a suitable copy object' - the wall
after the DMA pushbuffer test started passing (r503). Turing CEs are fully
capable (bug 200288104 case (a)): byte1 = 0x03.
Diffstat (limited to 'kernel/gsp_rm_tu104.h')
| -rw-r--r-- | kernel/gsp_rm_tu104.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/kernel/gsp_rm_tu104.h b/kernel/gsp_rm_tu104.h index b5ee4d7..3382939 100644 --- a/kernel/gsp_rm_tu104.h +++ b/kernel/gsp_rm_tu104.h @@ -754,7 +754,18 @@ static const struct tu104_internal_device_info tu104_internal_device_table[] = { TU104_CE_CAPS0_SYSMEM | \ TU104_CE_CAPS0_P2P | \ TU104_CE_CAPS0_BL_GT_64K) -#define TU104_CE_CAPS1 0x00 +/* + * Caps byte 1: the 2D/3D copy path requires a CE that supports the + * blocklinear access modes (hardware bug 200288104): the X driver's + * nvCEChooseEngine skips every CE without CE_SUPPORTS_NONPIPELINED_BL + * (byte1 0x01; and PIPELINED_BL 0x02 for the preferred pass) and then + * fails with "Failed to find a suitable copy object" - the observed wall + * after the DMA pushbuffer test started passing. Turing's CEs are fully + * capable (pipelined + non-pipelined BL + pitchlinear): byte1 = 0x03. + * (Reference: ctrl2080ce.h NV2080_CTRL_CE_CAPS_CE_SUPPORTS_*_BL 1:0x01/ + * 1:0x02.) + */ +#define TU104_CE_CAPS1 0x03 /* ENGINE_TYPE_COPY0 = 0x9, COPY(i) = COPY0 + i (cl2080_notification.h) */ #define TU104_ENGINE_TYPE_COPY0 0x00000009 |
