我正在参加Trae「超级体验官」创意实践征文, 本文所使用的 Trae 免费下载链接: www.trae.ai/?utm_source…
本文为记录了通过Trae仅仅通过对话实现一个Shader静态编译分析服务过程
基础信息
想给两个命令行工具封装出一个API服务, 以便于分析Shader性能, 并且完全通过对话Trae实现
- AdrenoOfflineCompiler(只有Windows, MacOS/Linux可通过Wine运行)
- MaliOfflineCompiler
大概任务顺序如下
- 根据AdrenoOfflineCompiler使用说明 生成 分析结果的类型定义
- 生成DenoServer以及基础配置文件
- 根据AdrenoOfflineCompiler使用说明 生成 编译函数+入参类型定义
- 从AOC编译结果 生成 解析函数
- 根据所生成的compileAdreno 生成 API的单测
- 根据所生成的compileAdreno 给http-server 添加 compile api
- 根据http-server compile API定义 生成 表单网页
- 类比上面AOC的流程, 添加Mali的支持
- 根据MaliOC PDF 生成 compileMali 函数
- 因为MaliOC支持直接返回json所以无需第一步
- 然后同样生成单测
- 给http-server 添加 api
- 最后更新index.html
任务记录
- 根据AdrenoOfflineCompiler使用说明 生成 分析结果的类型定义
这里直接让Trae分析网页中ShaderStatistics即可生成完整且注释翻译为中文
- 生成DenoServer以及基础配置文件
- 根据AdrenoOfflineCompiler使用说明 生成 编译函数+入参类型定义
- 从AOC编译结果 生成 解析函数
- 根据所生成的compileAdreno 生成 API的单测
简单错误可以对话修复
可以接上单侧直接对话重构 这个体验太🐂了
并且调试单测时, 可以对话添加调试日志, 调试完成再删除
- 根据所生成的compileAdreno 给http-server 添加 compile api
- 根据http-server compile API定义 生成 表单网页
并且这个是一次生成网页就跑通了 效率提升可太高了
- 后续在这基础上添加Mali的支持
生成编译函数compileMali
单测
重新生成index.html
但是这一步并不算太流畅对话了好几次, 都有问题 结果发现通过选取需要重新生成的区域 添加到提问 可以大大提高回复的准确率
最后产物
当然Trae也不是没有bug🐶, 比如回滚对话状态遇到diff删除部分固定没消失, 只能重启编辑器
体验到Trea的震撼的同时, 也可预知未来很多基础简单的工作会被AI代替
后面感觉可以结合最热门的DeepSeek, 实现一个简单Shader分析助手, 结合Adreno和Arm Mali的最佳实践, 加上shader源代码, 提供更加准确的优化建议