mesa/src
Alexandros Frantzis a22c5df079 virgl: Use buffer copy transfers to avoid waiting when mapping
We typically need to wait for a buffer to become ready before mapping,
so that we don't write new contents while the host is still using the
old contents. However, if we are allowed to discard the contents of the
mapped buffer range, then we can avoid waiting by using a staging buffer
range which we guarantee to never be busy, copying from the staging
buffer range to the target buffer in the host.

This commit implements this optimization by utilizing a dedicated
u_upload_mgr for the staging buffer.

Performance results:
Twilight Struggle (Steam/Proton), qemu before: 7 FPS after: 25 FPS
glmark2 ubo, qemu before: 38 FPS after: 331 FPS

Signed-off-by: Alexandros Frantzis <alexandros.frantzis@collabora.com>
Suggested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Chia-I Wu <olvaffe@gmail.com>
2019-06-07 21:45:39 -07:00
..
amd radv: enable VK_EXT_sample_locations 2019-06-07 13:11:17 +02:00
broadcom v3d: don't emit point coordinates varyings if the FS doesn't read them 2019-06-07 08:29:42 +02:00
compiler nir: fix s/&&/||/ typo 2019-06-07 16:06:25 +01:00
egl egl/x11: calloc dri2_surf so it's properly zeroed 2019-06-06 22:45:27 -07:00
etnaviv etnaviv: etnaviv_bo_cache_test: Use /dev/dri/renderD128 by default 2019-06-05 08:58:05 +00:00
freedreno ir3: Use the new NIR lowering pass for integer multiplication 2019-06-07 08:45:05 +02:00
gallium virgl: Use buffer copy transfers to avoid waiting when mapping 2019-06-07 21:45:39 -07:00
gbm gbm: gbm_bo_get_handle_for_plane fallback to nonplanar handle 2019-05-15 18:27:30 +01:00
getopt
glx glx/windows: Fix compilation with -Werror-format 2019-06-07 11:28:48 -07:00
gtest delete autotools .gitignore files 2019-04-29 21:17:19 +00:00
hgl haiku: Fix hgl dispatch build. Tested under meson/scons. 2019-04-02 16:06:00 -05:00
imgui imgui: delete demo file 2019-05-21 14:40:22 +01:00
intel intel/blorp: Only double the fast-clear rect alignment on HSW 2019-06-07 22:00:55 +00:00
loader Delete autotools 2019-04-15 13:44:29 -07:00
mapi mesa/main: Expose EXT_clip_control and related enums and the function 2019-06-06 12:25:17 +02:00
mesa mesa/main: Expose EXT_clip_control and related enums and the function 2019-06-06 12:25:17 +02:00
util util/hash_table: Assert that keys are not reserved pointers 2019-06-06 00:27:53 +00:00
vulkan vulkan: Update the XML and headers to 1.1.110 2019-06-04 17:30:51 +00:00
meson.build build: Build etnaviv drm 2019-06-05 08:58:05 +00:00
SConscript scons: Remove gles option. 2018-10-19 16:50:26 +01:00