https://bugs.freedesktop.org/show_bug.cgi?id=67516
Priority: medium Bug ID: 67516 Assignee: mesa-dev@lists.freedesktop.org Summary: glTexStorage*() functions don't work properly with proxy textures Severity: normal Classification: Unclassified OS: All Reporter: mik...@gmail.com Hardware: x86-64 (AMD64) Status: NEW Version: git Component: Mesa core Product: Mesa Created attachment 83259 --> https://bugs.freedesktop.org/attachment.cgi?id=83259&action=edit texstorage_fail.c, shows the problems as they appear to user code There appears to be problems with proxy textures and the texture storage functions. I identified three separate issues: - The calculation (_mesa_get_tex_max_num_levels() in teximage.c) that checks how many mipmap levels a texture could have has not been written to check proxy textures as well. - The error checking in the storage functions checks if a non-zero texture has been bound. Proxy textures don't care about that but the check makes glTexStorage*() fail when they should not. As far as I know, you cannot bind a proxy texture to anything so this makes glTexStorage*() always fail for a proxy texture. - The use of glTexStorage*() on a proxy texture makes the texture immutable. This is not normally detectable by the users (because it is a proxy texture) but the immutability flag makes further glTexStorage*() calls fail. This last issue cannot be seen until the two previous issues are fixed. I would not be surprised if there were more issues with proxy textures lurking here, given that it looks like these functions were not tested with proxy textures. I'm attaching three patches that I used to make things work for me. I also attached a short testing program that shows how user code would see these problems. -- You are receiving this mail because: You are the assignee for the bug.
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev