Commit dbd47e378582ef86db52c7379cd220cf0b2c8193

Yuly Novikov 2023-01-30T20:54:24

Revert "Metal: Avoid leaking buffers for GPU access for non-discrete" This reverts commit 369b320f92f54774879e8b8faff834fc8db0793e. Reason for revert: WebGL 2.0 conformance tests failing on Mac/AMD per https://bugs.chromium.org/p/angleproject/issues/detail?id=7975#c4 Original change's description: > Metal: Avoid leaking buffers for GPU access for non-discrete > > The code would pass BufferManager::getBuffer(..,useShared=false,..) > and use that as key to try to obtain a buffer from the cache. > The BufferManager would store the returned buffers based on > the actual storage mode of the buffer. The storage mode for the > buffers for integrated / iOS devices is always shared. > > The above logic would lead the buffer manager always storing returned > buffers to the cache, but never being able to consume any from the > cache. The cache is designed to grow unbounded, and so it did. > > Remove the inconsistent logic of passing variation of "use shared bool" > as the arguments. Various places consulted various different Feature > options in inconsistent manner. > > Instead, add Buffer::AccessPattern for the callers to express what > kind of access pattern to expect a buffer to be used. Add explicit > MTLStorageMode parameters to Buffer constructing functions. > Remove redundant functions from Buffer. > Remove dead code from BufferPool related to allocation policy. > > Bug: angleproject:7975 > Change-Id: I0c4661c55e8c907b702160ae42690269c049f6db > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4194172 > Reviewed-by: Kenneth Russell <kbr@chromium.org> > Commit-Queue: Kenneth Russell <kbr@chromium.org> > Reviewed-by: Gregg Tavares <gman@chromium.org> > Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com> Bug: angleproject:7975 Change-Id: I094de8e5b06392fe36a9887d6a817023baa48735 No-Presubmit: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4206187 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>