mesa/src
Chris Wilson 84e6e92236 i965: Resolve framebuffers before signaling the fence
From KHR_fence_sync:

  When the condition of the sync object is satisfied by the fence
  command, the sync is signaled by the associated client API context,
  causing any eglClientWaitSyncKHR commands (see below) blocking on
  <sync> to unblock. The only condition currently supported is
  EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR, which is satisfied by
  completion of the fence command corresponding to the sync object,
  and all preceding commands in the associated client API context's
  command stream. The sync object will not be signaled until all
  effects from these commands on the client API's internal and
  framebuffer state are fully realized. No other state is affected by
  execution of the fence command.

If clients are passing the fence fd (from EGL_ANDROID_native_fence_sync)
to a compositor, that fence must only be signaled once the framebuffer
is resolved and not before as is currently the case.

v2: fixup assert to use GL_SYNC_GPU_COMMANDS_COMPLETE (Chad)

Reported-by: Sergi Granell <xerpi.g.12@gmail.com>
Fixes: c636284ee8 ("i965/sync: Implement DRI2_Fence extension")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Sergi Granell <xerpi.g.12@gmail.com>
Cc: Rob Clark <robdclark@gmail.com>
Cc: Chad Versace <chadversary@chromium.org>
Cc: Daniel Stone <daniels@collabora.com>
Cc: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Chad Versace <chadversary@chromium.org>
(cherry picked from commit 618be8cc1a)
2017-08-03 00:19:07 +01:00
..
amd radv: advertise v6 of the wayland surface extension 2017-08-03 00:19:06 +01:00
compiler nir: Use nir_src_copy instead of direct assignments. 2017-08-03 00:19:06 +01:00
egl Fix khrplatform.h not installed if EGL is disabled. 2017-06-28 20:17:13 +03:00
gallium gallium/radeon: make S_FIXED function signed and move it to shared code 2017-08-03 00:19:06 +01:00
gbm configure: set HAVE_foo_PLATFORM as applicable 2017-05-31 22:32:02 +02:00
getopt
glx dri3/GLX: Fix drawable invalidation v2 2017-06-14 10:40:22 +01:00
gtest gtest: Update to 1.8.0. 2017-01-20 11:40:52 -08:00
hgl glapi/hgl: remove the final user of _glapi_check_table() 2016-10-06 15:03:46 +01:00
intel anv: only expose up to 28 vertex attributes 2017-08-03 00:19:06 +01:00
loader loader/dri3: Use dri3_find_back in loader_dri3_swap_buffers_msc 2017-08-03 00:19:05 +01:00
mapi configure: only install khrplatform.h if needed 2017-08-03 00:19:06 +01:00
mesa i965: Resolve framebuffers before signaling the fence 2017-08-03 00:19:07 +01:00
util util/rand_xor: add missing include statements 2017-06-14 12:47:58 +01:00
vulkan configure: check once for DRI3 dependencies 2017-05-31 22:32:03 +02:00
Makefile.am intel/vulkan: Get rid of recursive make 2017-03-13 11:16:35 +00:00
SConscript