glthread: do glBufferSubData as unsynchronized upload + GPU copy
authorMarek Olšák <marek.olsak@amd.com>
Fri, 6 Mar 2020 02:50:17 +0000 (21:50 -0500)
committerMarge Bot <eric+marge@anholt.net>
Thu, 30 Apr 2020 22:01:55 +0000 (22:01 +0000)
commit7f22e0fd29369f478da1d36520049f001cd698d1
treebaf0547d059b79fe21ad9ce39687951457d42dce
parent70847eb0a95f1e1b0fbd435aa0ef4091ae5bef88
glthread: do glBufferSubData as unsynchronized upload + GPU copy

1. glthread has a private upload buffer (as struct gl_buffer_object *)
2. the new function glInternalBufferSubDataCopyMESA is used to execute the copy
   (the source buffer parameter type is struct gl_buffer_object * as GLintptr)

Now glthread can handle arbitrary glBufferSubData sizes without syncing.

This is a good exercise for uploading data outside of the driver thread.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4314>
src/mesa/main/glthread.c
src/mesa/main/glthread.h
src/mesa/main/glthread_bufferobj.c
src/mesa/main/menums.h