many resize events happen, with the last resize event resizing to the same size as the keyboard started with. This triggers a reallocation of a buffer with the same size. The new buffer goes into the driver, and comes out unfilled.
So, its looking like the driver is perhaps making a false assumption about buffer ordering... A good way to resolve might be to only trigger buffer allocation/freeing once we're sure that a size change has happened and a buffer is needed. (this would be more efficient in terms of reducing alloc/free anyways)
Seems the sequence that's happening is:
many resize events happen, with the last resize event resizing to the same size as the keyboard started with. This triggers a reallocation of a buffer with the same size. The new buffer goes into the driver, and comes out unfilled.
So, its looking like the driver is perhaps making a false assumption about buffer ordering... A good way to resolve might be to only trigger buffer allocation/freeing once we're sure that a size change has happened and a buffer is needed. (this would be more efficient in terms of reducing alloc/free anyways)