Skip to content

[Aggregate issue]: Pending GPU backend work #4

@raphaelthegreat

Description

@raphaelthegreat

Mostly acts as a checklist on future work so it's not forgotten

Command processor

  • Replace coroutines with a manual stack frame management for easier debugging
  • Rewrite graphics and CE submissions to use primary ring and IBs
  • Rewrite compute submissions to use read/write pointers instead of range list
  • Host gpu sync by writing labels from host GPU instead of at parsing time

Shader recompiler

  • Implement MBCNT properly without heuristics
  • SGPR/VGPR/VCC type tracking (scalar or thread-bit)
  • IMAGE_STORE_MIP on NVIDIA
  • Ordered appends
  • Implement LEGACY instruction variant NaN/Inf behaviors
  • Implement proper NEG/ABS modifiers on integer instructions
  • Support variable vector and bit sizes in IR instructions for de-duplication purposes
  • Min/Max blending factor emulation
  • Blending emulation with incompatible COMP_SWAP setting
  • Bindless buffers and images

GPU Memory

  • Allocate vulkan device memory according to guest memory type
  • Use sparse resident buffer for guest GPU address space
  • (Linux) Use VK_EXT_map_memory_placed to directly map host GPU memory to guest and bypass memory tracker
  • (Windows) Rework memory tracker and its locking to improve performance for large ranges

Texture cache

  • Implement per-subresource image state tracking
  • Support partial overlap handling and resolution
  • Test and implement PRT tiling modes

Reason

Make stuff go brrr

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions