summaryrefslogtreecommitdiffstats
path: root/kernel/gsp_rm_emulation.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/gsp_rm_emulation.c')
-rw-r--r--kernel/gsp_rm_emulation.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/kernel/gsp_rm_emulation.c b/kernel/gsp_rm_emulation.c
index 3157a24..b05ee3d 100644
--- a/kernel/gsp_rm_emulation.c
+++ b/kernel/gsp_rm_emulation.c
@@ -2671,6 +2671,18 @@ static void gsp_rm_handle_kgr_get_info(struct gsp_emu_context *ctx,
info->infoList[TU104_GR_INFO_IDX_MAX_LEGACY_SUBCONTEXT_COUNT].data = TU104_MAX_SUBCONTEXT_COUNT;
info->infoList[TU104_GR_INFO_IDX_MAX_PER_ENGINE_SUBCONTEXT_COUNT].data = TU104_MAX_SUBCONTEXT_COUNT;
+ /*
+ * GR identity for the nvidia-3d library. SM_VERSION in particular
+ * gates nv3dAllocDevice (GetSpaVersion -> FALSE on
+ * SM_VERSION_NONE), which makes nvHsAllocDevice fail silently and
+ * nvidia-drm report "Failed to allocate NvKmsKapiDevice".
+ */
+ info->infoList[TU104_GR_INFO_IDX_SM_VERSION].data = TU104_GR_INFO_SM_VERSION_7_5;
+ info->infoList[TU104_GR_INFO_IDX_MAX_WARPS_PER_SM].data = TU104_MAX_WARPS_PER_SM;
+ info->infoList[TU104_GR_INFO_IDX_MAX_THREADS_PER_WARP].data = TU104_MAX_THREADS_PER_WARP;
+ info->infoList[TU104_GR_INFO_IDX_THREAD_STACK_SCALING_FACTOR].data =
+ TU104_THREAD_STACK_SCALING_FACTOR;
+
*out_params_size = TU104_GR_INFO_MAX_ENGINES *
sizeof(struct tu104_gr_static_info);
*out_status = 0;