https://bugs.freedesktop.org/show_bug.cgi?id=100024
Bug ID: 100024 Summary: [radeonsi] Failed to find memory space for buffer eviction when calling glTexSubImage2D with 16384 / 2 Product: DRI Version: XOrg git Hardware: All OS: Linux (All) Status: NEW Severity: normal Priority: medium Component: DRM/Radeon Assignee: dri-devel@lists.freedesktop.org Reporter: julien.isorce@gmail.com
Created attachment 130005 --> https://bugs.freedesktop.org/attachment.cgi?id=130005&action=edit new piglit test max-texture-size2 to reproduce the problem
/ [AMD/ATI] Cape Verde PRO [FirePro W600] /
The piglit test max-texture-size2 prints:
GL_TEXTURE_RECTANGLE, Internal Format = GL_RGBA8, Largest Texture Size = 16384 radeon: Not enough memory for command submission. [drm:radeon_cs_ioctl [radeon]] *ERROR* Failed to parse relocation -12! (ENOMEM) PIGLIT: {"subtest": {"GL_TEXTURE_RECTANGLE-GL_RGBA8" : "pass"}}
It says it passes but internally it fails. It looks like a bug from the TTM GPU memory manager subsystem in the linux kernel.
To reproduce just run: RADEON_THREAD=false DISPLAY=:0 PIGLIT_SOURCE_DIR=/home/julien/dev/piglit/ PIGLIT_PLATFORM=mixed_glx_egl ./bin/max-texture-size -fbo -auto
I set RADEON_THREAD=false to make it easier since the problem also appears with true.
I attached a new and more minimal piglit test "max-texture-size2" that reproduces the problem. A workaround of the problem is to use GL fence as the new test also demonstrates setting the env var USE_FENCE.