Radeonsi To Do list

And here is the radeonsi to do list; if you feel something is missing please add it. If you have done something and it no longer needs to be investigated, happily erase it from here :).

LLVM

  • Turn on basic block vectorizer pass
    • Difficulty: Medium
    • Who's working on it:
    • Status: N/A
    • Description:
    • We might be able to use this pass to merge single dwords loads from constant memory into multiple dword loads.

Compute

  • Use asynchronous compute rings for compute
    • Difficulty: Medium
    • Who's working on it: N/A
    • Date Started: N/A
    • Status: N/A
    • Description:
    • SI supports two asynchronous compute rings. Use them for compute to avoid contention with gfx on the main gfx ring.

3D Features

  • TGSI opcodes DDX/DDY
    • Difficulty: Medium
    • Who's working on it: Michel Dänzer
    • Status: WIP
    • Note:
  • MSAA support on SI
    • Difficulty: Medium
    • Who's working on it:
    • Status: N/A
    • Note: Works very similarly to cayman. Code from r600g can be ported over.
  • MSAA with colorbuffer compression on SI
    • Difficulty: Medium
    • Who's working on it:
    • Status: N/A
    • Note: Works very similarly to cayman. Code from r600g can be ported over.
  • Fast color clear for MSAA buffers on SI
    • Difficulty: Medium
    • Who's working on it: N/A
    • Note: Works very similarly to cayman. Code from r600g can be ported over.
  • MSAA on the window system framebuffer
    • Difficulty: Medium
    • Who's working on it: N/A
    • Note: AFAIK, nothing has been done for it in st/dri. I think we should allocate private MSAA color/depth/stencil surfaces in Gallium and ask the DDX to only allocate the single-sampled front where we will resolve the MSAA colorbuffer on ?SwapBuffers.
  • transform feedback support
    • Difficulty: Medium
    • Who's working on it: N/A
    • Note: Works very similarly to cayman. Code from r600g can be ported over.
  • timer query support
    • Difficulty: Easy
    • Who's working on it: N/A
    • Note: Works very similarly to r6xx-cayman. Code from r600g can be ported over.
  • Polygon stippling
    • Difficulty: Easy
    • Who's working on it: N/A
    • Note: Take advantage of util/u_pstipple. It contains the shader transformation code and can create a stipple texture.
  • Polygon/line/point smoothing
    • Difficulty: Medium
    • Who's working on it: N/A
  • Texture buffer objects (read-only buffer resources in shaders)
    • Difficulty: Medium
    • Who's working on it: N/A
    • Note:: Core Mesa/Gallium support might need some work too.
  • Uniform buffer objects (constant buffers)
    • Difficulty: Medium
    • Who's working on it: N/A
    • Note:: Core Mesa/Gallium support might need some work too.
  • HyperZ support
    • Difficulty: Hard
    • Who's working on it: N/A
    • Note:: Works very similarly to cayman. Code for r600g can be ported over.
  • Geometry shaders
    • Difficulty: Medium
    • Who's working on it: N/A
    • Note:: Core Mesa/Gallium support might need some work too.

Bugs