protonscr

[Steam deck] is AMD APU zero copy feature used?

protonclosed
ValveSoftware/Proton#7229 · opened 2023-11-02 by lamashnikov · updated 2023-11-02 · 2 comments · github
Llamashnikov 2023-11-02 github

I confirm:

  • [X] that I haven't found another request for this feature.
  • [X] that I have checked whether there are updates for my system available that
    contain this feature already.

Description

As steam deck use an APU, it seam that the graphic pipeline should be different that the one used on configuration with discrete GPUs.

Justification

In an APU, the RAM and VRAM are the same, thus it is possible to transfer data from RAM to VRAM without actually copying it, leading to less stress on the northbridge and memory (RAM and VRAM). As the zero copy way of programming is performed when vulkan/openGL is used and not inside the driver itself, it seems that it's the job of the proton layer to do so when re-interpreting graphics library calls (by creating buffer with MEM_ALLOC_HOST_PTR for example). I wonder if this feature is taken in account in proton (and if proton does a specific graphic pipeline for APUs) or if everything is set as if it where an discrete GPU no matter the hardware it's running on? (Because using zero copy with a discrete GPU architecture is not an good option, it is only efficient with APU)

References

Different sources i could gather on the subject (mostly about openCL, but still):
https://stackoverflow.com/questions/12766578/access-path-in-zero-copy-in-opencl
http://meseec.ce.rit.edu/551-projects/spring2017/2-2.pdf
https://community.amd.com/t5/opencl/optimizing-data-transfer-with-apu-best-way-to-test-zero-copy/m-p/152658/highlight/true
https://free.eol.cn/edu_net/edudown/AMDppt/OpenCL Programming and Optimization - Part II.pdf (from page 36)

Regards

Kkisak-valve maintainer 2023-11-02 github

Hello @lamashnikov, this question is better directed to the mesa/RADV devs or maybe the DXVK/VKD3D-Proton devs than the Proton project.

Closing as out of scope for this project.

Llamashnikov 2023-11-02 github

Thanks, i'll ask that question there then

Regards

Nothing extracted yet.