Closed Bug 629519 Opened 15 years ago Closed 7 years ago

Use clientstorage instead of pixel buffers on OS X

Categories

(Core :: Graphics, defect)

x86
macOS
defect
Not set
normal

Tracking

()

RESOLVED DUPLICATE of bug 1265824

People

(Reporter: jrmuizel, Unassigned)

References

Details

Pixel buffers have problems with certain versions of OS X (like 10.6.2) and are probably less flexible than clientstorage. Further, Apple prefers clientstorage in their products (WindowServer, CoreAnimation). There might be some trouble. It seems like clientstorage wants ARB_TEXTURE_RECTANGLE textures, which will be a cause of pain.
Ugh. We (I?) tried really hard to confine TEXTURE_RECTANGLE support to non-power-of-two FBO targets, without introducing it into TextureImage. So yeah, it will be a cause of pain.
I thought we switched from client storage to pixel buffers in bug 604101 because it was faster and fixed bug 611564. What are the problems that 10.6.2 has with pixel buffers?
(In reply to comment #2) > I thought we switched from client storage to pixel buffers in bug 604101 > because it was faster and fixed bug 611564. We weren't using clientstorage as well as we could've been. We weren't using the correct texture format, the texture range extension or TEXTURE_RECTANGLE. I think if we do everything right, it should be possible to match or exceed the performance of pixel buffers. > What are the problems that 10.6.2 > has with pixel buffers? Bug 629016
Wait, so it's fixed in 10.6.3? If so, I wouldn't go back to client storage then...
This does sound like a huge amount of pain (writing a memory allocator for texture memory and recreating all textures on resize) to work around a bug in older versions of OSX.
That's not the only reason to go back to client storage. Jeff also cites the fact that Apple themselves don't use PBOs, and instead chooses to use client storage and texture range with the cached attribute.
Well sure, but that could be historical (e.g. they might do it because they had that code from Way Back In The Day when they didn't support PBOs at all). Granted, it means there's a much better chance of it staying working, but it still seems like a large chunk of work for little gain since we can't really reuse that code anywhere else, whereas PBOs are cross-platform.
We have this now from bug 1265824
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.