Electronic Joint Business

Solution for E-Business

Linux环境下的图形系统和AMD R600显卡编程(6)——AMD显卡GPU命令格式

前面一篇blog里面描述了命令环缓冲区机制,在命令环机制下,驱动写入PM4(不知道为何会取这样一个名字)包格式的命令对显卡进行配置。这一篇blog将详细介绍命令包的格式。   当前定义了4中命令包,分别是0型/1型/2型和3型命令包,命令包由两部分组成,第一部分是命令包头,第二部分是命令包主体,命令包头为请求GPU执行的具体操作,命令主体为执行该操作需要的数据。 •0型命令包   0型命令包用于写连续N个寄存器。包主体部分是依次往这些寄存器写的值。包头各个部分的意义为:  Linux内核代码./drivers/gpu/drm/radeon/r600.c r600\_fence\_ring\_emit函数有如下语句:   radeon_ring_write(rdev, PACKET0(CP_INT_STATUS, 0));   radeon_ring_write(rdev, RB_INT_STAT);   PACKET0定义如下:     #define PACKET0(reg, n) ((PACKET_TYPE0 << 30) |  \     包类型 0型命令包              (((reg) >> 2) & 0xFFFF) |          \        寄存器偏移基地址              ((n) & 0x3FFF) << […]

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.