Direct X对于游戏开发商可说是又爱又恨,爱的是因为它是由PC系统霸主微软所提出的API(应用编程界面),恨的是Direct X对某些开发商而言,并未将GPU效能发挥到淋漓尽致。继id Software创始人,同时也是被誉为3D游戏之父的John Carmack发难,首先公开表态支持OpenGL标准,并且认为OpenGL已经超越Direct X,并且拥有更强的跨平台优点之后,这次连AMD的Richard Huddy也跟着对Direct X(实际上是对API)开炮。
Richard Huddy指出,游戏开发者并不全然想要啥API,当然他指的是开发高复杂的游戏方面,Direct X在某种程度封印GPU的效能,导致游戏视觉效果被其限制;他个人希望游戏开发商能够进行对GPU硬件的底层存取(原文为Low-Level Access),就会知道在摆脱Direct X的束缚的当代GPU有多强大的效能。
#This is the struct we will copy from the main PPE process
.align 4
conversion_info:
conversion_length:
.octa 0
conversion_data:
.octa 0
.equ CONVERSION_STRUCT_SIZE, 32
.section .bss #Uninitialized Data Section
#This is the buffer we will store the string in
.align 4
.lcomm conversion_buffer, 16384
.global main
.type main, @function
.equ MAIN_FRAME_SIZE, 32
main:
#Prologue
stqd $lr, LR_OFFSET($sp)
stqd $sp, -MAIN_FRAME_SIZE($sp)
ai $sp, $sp, -MAIN_FRAME_SIZE
##COPY IN CONVERSION INFORMATION##
ila $3, conversion_info #Local Store Address
#register 4 already has address #64-bit Effective Address
il $5, CONVERSION_STRUCT_SIZE #Transfer size
il $6, 0 #DMA Tag
il $7, MFC_GET_CMD #DMA Command
brsl $lr, perform_dma
#Wait for DMA to complete
il $3, 0
brsl $lr, wait_for_dma_completion
##COPY STRING IN TO BUFFER##
#Load buffer data pointer
ila $3, conversion_buffer #Local Store
lqr $4, conversion_data #64-bit Effective Address
lqr $5, conversion_length #SIZE
il $6, 0 #DMA Tag
il $7, MFC_GET_CMD #DMA Command
brsl $lr, perform_dma
#Wait for DMA to complete
il $3, 0
brsl $lr, wait_for_dma_completion