AMDGPU - 显示贡献¶
首先,如果您来到这里,您可能想要对显示代码做出一些技术贡献,为此,我们表示感谢:)
本页面总结了您可以帮助解决的一些问题;请记住,这是一个静态页面,最好尝试联系 amdgfx 中的开发人员或一些维护人员。 最后,此页面遵循 DRM 创建 TODO 列表的方式;有关更多信息,请查看“TODO 列表”。
Gitlab 问题¶
用户可以在以下位置报告与 AMD GPU 相关的问题
通常,我们尝试向所有新工单添加适当的标签,以便于过滤问题。如果您可以重现任何问题,您可以通过添加更多信息或修复问题来提供帮助。
级别:多样
IGT¶
IGT 提供了许多可以在您的 GPU 上运行的集成测试。 我们始终希望通过大量的测试,以提高我们在 CI 中的测试覆盖率。 如果您希望为显示代码做出贡献,但不确定从哪里入手,我们建议您运行所有 IGT 测试,并尝试修复在硬件中看到的任何失败。 请记住,此失败可能是 IGT 问题或内核问题; 有必要逐案分析。
级别:多样
编译¶
修复编译警告¶
启用内核编译中的 W1 或 W2 警告级别,并尝试修复显示端的问题。
级别:入门
修复使用 um 架构时的编译问题¶
Linux 具有用户模式 Linux (UML) 功能,并且可以将内核编译为 um 架构。 从测试的角度来看,编译为 um 可以带来多重优势。 我们目前在此领域存在一些编译问题,需要修复。
级别:中级
代码重构¶
为 DC 函数添加前缀以改进使用 ftrace 的调试¶
Ftrace 调试功能(请查看“ftrace - 函数追踪器”)是开发人员尝试理解错误时检查代码路径的绝佳方法。 当开发人员对代码的哪一部分可能导致问题有一些预感时,Ftrace 提供了一种过滤机制,该机制非常有用;因此,如果一组函数具有适当的前缀,则可以轻松创建良好的过滤器。 此外,前缀可以提高堆栈跟踪的可读性。
DC 代码不遵循某些前缀规则,这使得 Ftrace 过滤器更加复杂,并降低了堆栈跟踪的可读性。 如果您想做一些简单的事情来开始为显示做出贡献,您可以制作补丁来为 DC 函数添加前缀。 要创建这些前缀,请使用文件名的一部分作为目标文件中所有函数的前缀。 检查“amdgpu_dm_crtc.c` 和 amdgpu_dm_plane.c 以获取一些参考。 但是,我们强烈建议不要发送更改这些前缀的大型补丁; 否则,将难以审查和测试,这可能会引起维护人员的疑虑。 尝试小步走; 如果有疑问,您可以在投入精力之前进行咨询。 我们建议首先查看 dceXYZ、dcnXYZ、basics、bios、core、clk_mgr、hwss、resource 和 irq 等文件夹。
级别:入门
减少代码重复¶
AMD 拥有广泛的产品组合,包括各种 dGPU 和 APU,amdgpu 支持这些产品。 为了保持新的硬件发布节奏,DCE/DCN 采用模块化设计,从而可以快速启动新的硬件。 多年来,amdgpu 在代码重复领域积累了一些技术债务。 对于此任务,找到一种可以发现代码重复(包括模式)的工具,并将其用作减少重复的指导,这将是一个好主意。
级别:中级
使 atomic_commit_[check|tail] 更具可读性¶
负责原子提交和尾部的函数复杂而广泛。 特别是 amdgpu_dm_atomic_commit_tail 是一个很长的函数,可以从中受益,将其拆分为更小的助手函数。 非常欢迎在此领域进行改进,但请记住,此领域的更改将影响所有 ASIC,这意味着重构需要全面的验证; 换句话说,此工作可能需要一些时间进行验证。
级别:高级
文档¶
扩展 kernel-doc¶
许多 DC 函数没有适当的 kernel-doc; 理解一个函数并添加文档是更多地了解 amdgpu 驱动程序的好方法,并且也可以为整个社区留下杰出的贡献。
级别:入门
超越 AMDGPU¶
AMDGPU 提供了用户空间中尚未启用的功能。 本节重点介绍了一些最酷的显示功能,这些功能可以通过用户空间开发人员助手启用。
启用底层¶
AMD 显示器具有称为底层的功能(您可以在“多平面叠加 (MPO)”中阅读更多相关信息),旨在在播放视频时节省电量。 基本思想是将视频放在底部的底层平面中,并将桌面放在其上方的平面中,并在视频区域中打一个孔。 此功能已在 ChromeOS 中启用,并且根据我们的数据测量,它可以节省电量。
级别:未知
自适应背光调制 (ABM)¶
ABM 是一项根据显示的图像调整显示面板的背光级别和像素值的功能。 当系统开始依靠电池供电时,这种省电功能非常有用; 由于这会影响显示输出的保真度,因此如果用户可以打开或关闭此选项,那将是很好的。
级别:未知
HDR & 颜色管理 & VRR¶
HDR、颜色管理和 VRR 是巨大的主题,很难将这些内容放入简洁的 ToDo 中。 如果您对此主题感兴趣,我们建议您查看社区开发人员的一些博客文章,以更好地了解一些具体的挑战和从事该主题的人员。 如果有人想处理某个特定部分,我们可以尝试提供一些基本指导。 最后,请记住,我们已经为这些领域提供了一些内核文档。
级别:未知