mesa/marshal: add custom marshalling for glNamedBuffer(Sub)Data
authorGrigori Goronzy <greg@chown.ath.cx>
Sat, 24 Jun 2017 16:59:55 +0000 (18:59 +0200)
committerTimothy Arceri <tarceri@itsqueeze.com>
Sun, 25 Jun 2017 23:06:23 +0000 (09:06 +1000)
commit95fb1c187a0ea8d13f401145282363228b91b246
treef20a58cb521d1b48ddf8b522c2820b9a518597d4
parent6a68170c8360d702a25e59740d04f79a4f8323a7
mesa/marshal: add custom marshalling for glNamedBuffer(Sub)Data

These entry points are used by Alien Isolation and caused
synchronization with glthread. The async marshalling implementation
is similar to glBuffer(Sub)Data. However unlike Buffer(Sub)Data
we don't need to worry about EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD,
as this isn't applicable to these DSA variants.

Results in an approximately 6x drop in glthread synchronizations and a
~30% FPS jump in Alien Isolation (Medium preset, Athlon 860K, RX 480).

Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
src/mapi/glapi/gen/ARB_direct_state_access.xml
src/mesa/main/marshal.c
src/mesa/main/marshal.h