Making a GDS Allocation for NGG

Jakub OkoĊ„ski jakub at okonski.org
Tue Aug 14 13:30:40 UTC 2018


Hi folks,

I was trying to play around with NGG on Vega using the open source AMDVLK stack.
After fetching all the code, I disabled an override in PAL, under
gfx9SettingsLoader.cpp
that disables the NGG setting. I've put a new option in my
amdPalSettings.cfg: `NggMode,7` and that was enough to enable it.

When I ran a small vulkan application, it crashed with a "Not implemented" error
in Pal::Linux::Device::AllocateGds. The comment there says:

    // TODO: implement it once amdgpu is ready.

I couldn't find anything specific to GDS allocation in upstream
kernel, so I looked at
agd5f/amd-staging-drm-next and found some code related to
AMDGPU_GEM_DOMAIN_GDS and allocating a bo object. This is in
amdgpu_gem_create_ioctl, so I think it's accessible to userspace, with
a small change
in libdrm, probably.

Is this what is needed to make a GDS allocation that NGG would accept, or is it
unrelated? Do you know if there are any other blockers for NGG besides this?

Regards,
Jakub


More information about the amd-gfx mailing list