理解GPU拆卸

问题描述 投票:0回答:0

少量下划线:

我得到了什么;从R0.X中减去C6.X,并将其存储在R1.x中。类似地与

ADD R1.x, R0.x, -C6.x

;乘以R1.X和R2.W,添加R4.X,然后存储在R4.x中。但是有时候我会接到诸如
    ADD R4.x, R1.x, R2.w, R4.x
  • 之类的电话,而我无法弄清楚下强项的含义。 trailing“ e” s:

    通常我的乘法变成MUL __, PV16.x, C1.x。但是有时候我看到

    MUL a, b, c
    。这也发生在
    MUL_e a, b, c
    SQRT_e

    RSQ_e
  • 魔术:我只是不明白这些说明。

    RCP_e
    开始循环。但是什么是参数?
    LOOP_DX10 i0 FAIL_JUMP_ADDR(10) VALID_PIX
    不知道
    
    ALU_BREAK: ADDR(48) CNT(3)
    我的循环有我

  • SETGT_INT R0.y, 350, R3.y

    也许我将我设置为0?但是为什么浮点0? PREDNE_INT __, R0.y, 0.0f

    推动让我想到堆栈?
  • ALU_PUSH_BEFORE: ADDR(51) CNT(34)
  • 没有线索
  • PREDGT  __,  R0.x,  R3.x
    无条件跳跃,但是什么是pop_cnt?
  • JUMP POP_CNT(1) ADDR(8) VALID_PIX
    < 350, but what're the others?
  • ALU: ADDR(85) CNT(1)
  • 跳到9?
  • BREAK ADDR(9)
  • 从堆栈中卸下框架?为什么8?
  • POP (1) ADDR(8)
  • 以loop_dx10开始结束循环。
  • ENDLOOP i0 PASS_JUMP_ADDR(2)
  • x = q? A:B,但我不知道哪个变量是哪个。
    有人请解释一下吗?我找不到前两个文档,也不了解最后一个文档。不幸的是,我以前从未参加过任何集会。
        
  • 我发现了这个
    库,并描述了汇编语言,该语言解释了您在集会中发现的一些助记符。
    
    
    在此级别,组件非常特定于硬件。由于您使用了AMD工具,因此我想寻找AMD设备文档。如果NVIDIA使用其他指令集,我不会感到惊讶。
  • 由于您已经用问题标记了这个问题,也许您的方式是错误的。使用OpenGL阴影语言是因为可移植性,因为它是开放性的标准;相反,使用程序集将程序与特定的图形卡系列搭配使用。例如,我的程序在Linux和Windows上运行,并且在NVIDIA,AMD和Intel的广泛GPU上(这并不容易,但令人满意)。
  • 如果您仍然想要可移植性,并且您非常勇敢地编写GPU组装,则可以使用ARB组件(
    vertex
  • fragment
  • )来实现程序,但是我从未尝试过(您现在给了我一个很好的灵感来开始另一个旅程)。
    	
glsl instruction-set
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.