[Bug 108261] [amdgpu][GL_ARB_bindless_texture][opengl 4] GPU hang on AMD Raven
bugzilla-daemon at freedesktop.org
bugzilla-daemon at freedesktop.org
Sat Oct 6 20:07:38 UTC 2018
https://bugs.freedesktop.org/show_bug.cgi?id=108261
Bug ID: 108261
Summary: [amdgpu][GL_ARB_bindless_texture][opengl 4] GPU hang
on AMD Raven
Product: Mesa
Version: git
Hardware: Other
OS: All
Status: NEW
Severity: normal
Priority: medium
Component: Drivers/Gallium/radeonsi
Assignee: dri-devel at lists.freedesktop.org
Reporter: RobusGrobus95 at gmail.com
QA Contact: dri-devel at lists.freedesktop.org
GPU hang appears when trying to render scene to FBO (framebuffer object) with
attached texture with resident handle, but if all the handles of attached
texture are not reesident (or if there is no handles), hang disappears. For
example this pseudocode causes GPU hang:
GLuint renderbufId;
glCreateRenderbuffers(1, &renderbufId);
glNamedRenderbufferStorage(renderbufId, GL_DEPTH_COMPONENT, width(),
height());
GLuint texId;
glCreateTextures(GL_TEXTURE_2D, 1, &texId);
glTextureStorage2D(texId, 1, GL_RGBA8, width(), height());
GLuint64 handle = glGetTextureHandleARB(texId);
glMakeTextureHandleResidentARB(handle);
glBindFramebuffer(GL_FRAMEBUFFER, fboID);
glFramebufferTexture(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, texId, 0);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT,
GL_RENDERBUFFER, rboId);
//render some triangles
glBindFramebuffer(GL_FRAMEBUFFER, 0);
//render main scene
glSwapBuffers();
And this not:
GLuint renderbufId;
glCreateRenderbuffers(1, &renderbufId);
glNamedRenderbufferStorage(renderbufId, GL_DEPTH_COMPONENT, width(),
height());
GLuint texId;
glCreateTextures(GL_TEXTURE_2D, 1, &texId);
glTextureStorage2D(texId, 1, GL_RGBA8, width(), height());
GLuint64 handle = glGetTextureHandleARB(texId);
std::cout << handle << std::endl; //prevent optimizing out
glBindFramebuffer(GL_FRAMEBUFFER, fboID);
glFramebufferTexture(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, texId, 0);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT,
GL_RENDERBUFFER, rboId);
//render some triangles
glBindFramebuffer(GL_FRAMEBUFFER, 0);
//render main scene
glSwapBuffers();
I can try to write full cpp sample for exposing the hang, if it's needed. There
is already open source graphic engine (my "pet" project) affected by the hang,
but code is quite complex (https://gitlab.com/KawaiiGraphics/Kawaii3D
https://gitlab.com/KawaiiGraphics/Misaka3D ;
workaround added in commit b53d98dacff2b0392c2143c8901289e93ddd8623, so only
previous versions are affected).
My hardware:
APU: AMD Ryzen 5 2400G (with integrated GPU Radeon Vega 11 Graphics)
System board: MSI AM4 X470 Gaming Pro
RAM: Goodram Iridium 16Gb (8+8 Gb dual-channel 2800MHz)
--
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20181006/103bd4b1/attachment.html>
More information about the dri-devel
mailing list