Results 1 to 2 of 2

Thread: Indirect Addressing Merged In LLVM R600 Back-End

  1. #1
    Join Date
    Jan 2007

    Default Indirect Addressing Merged In LLVM R600 Back-End

    Phoronix: Indirect Addressing Merged In LLVM R600 Back-End

    Merged into the mainline LLVM repository on Wednesday was support for indirect addressing within AMD's R600 GPU back-end...

  2. #2
    Join Date
    Jan 2012


    Indirect addressing allows for a virtual address to be passed that then ends up mapping to the actual address, which is more important for compute scenarios.
    This description of indirect addressing is incorrect, or at least misleading. Indirect addressing is how arrays, or at least variable array indicies, are implemented. You can tell the GPU to add the value of a register to the index when loading or storing something; for example, instead of saying "load address 5," you can say "load address '5 + something I've just calculated'." It's like how dereferencing a pointer works in C, except a little more limited. It's also more commonly seen in compute shaders, since they often tend to do more complex things like loops where you need indirect addressing in order to do anything useful, although there are some cases where it's useful in graphics shaders too (such as bone skinning).

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts