[radeonsi] Failed to find memory space for buffer eviction when calling glTexSubImage2D with 16384 / 2
@cap
Submitted by Julien Isorce Assigned to Default DRI bug account
Link to original bug (#100024)
Description
Created attachment 130005 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.
Patch 130005, "new piglit test max-texture-size2 to reproduce the problem":
0001-texturing-add-max-texture-size2.patch