mesa/src
Marek Olšák 3a406688f2 st/mesa: only call st_manager_validate_framebuffers at FBO change or SwapBuffers
Hopefully this doesn't break anything.

There are a lot of places that invalidate drawables, but no place attempted
to call the context directly like this. A few places don't even have
the context.

Explanation:

The DRI frontend uses a global atomic counter per drawable that is
incremented when that drawable changed buffers.
st_manager_validate_framebuffers checks for that atomic counter and
updates the framebuffer state if there is any change. This was called at
every state update, so likely before almost every draw (!!!).

This commit changes that. Everything is the same except that the change
of buffers will not be noticed until the beginning of the next frame or
when the framebuffer state update is triggered by something else.

The effect is that we don't waste time calling
st_manager_validate_framebuffers a million times per frame.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19775>
2022-11-23 20:37:02 +00:00
..
amd radv: Conditionally expose VK_KHR_present_wait on RADV. 2022-11-23 19:06:12 +00:00
android_stub
asahi tree-wide: Use __func__ instead of __FUNCTION__ in non-gallium code 2022-11-22 06:53:46 +00:00
broadcom v3dv: drop wayland-protocols dep 2022-11-23 12:15:23 +00:00
c11 c11: Remove _MTX_INITIALIZER_NP for windows 2022-11-09 04:38:28 +00:00
compiler nir/divergence: add missing btd_shader_type_intel 2022-11-23 15:04:22 +00:00
drm-shim drm-shim: drop gnu99 override 2022-09-16 02:06:38 +00:00
egl egl: Fix uninitialized variable warning 2022-11-22 01:54:51 +00:00
etnaviv tree-wide: Use __func__ instead of __FUNCTION__ in non-gallium code 2022-11-22 06:53:46 +00:00
freedreno freedreno/replay: Add option to replay specific range of cmdstreams 2022-11-23 20:12:08 +00:00
gallium st/mesa: only call st_manager_validate_framebuffers at FBO change or SwapBuffers 2022-11-23 20:37:02 +00:00
gbm utils: Merge util/debug.* into util/u_debug.* and remove util/debug.* 2022-11-02 07:25:39 +00:00
getopt
glx Revert "egl/glx: add fallback for zink loading" 2022-11-17 01:08:33 +00:00
gtest gtest: Fix maybe-uninitialized compiler warning 2022-06-29 21:02:18 +00:00
hgl
imagination pvr: Minor cleanup around pvr_emit_vdm_index_list() 2022-11-18 11:46:14 +00:00
imgui
intel anv: Conditionally expose VK_KHR_present_wait on ANV. 2022-11-23 19:06:12 +00:00
loader loader/dri3: Add DRI performance option to wait for next buffer on swap 2022-10-25 08:30:35 +00:00
mapi mapi: update gles 1.1 extention packet link 2022-11-20 15:14:01 +00:00
mesa st/mesa: only call st_manager_validate_framebuffers at FBO change or SwapBuffers 2022-11-23 20:37:02 +00:00
microsoft microsoft/nir_to_dxil: Avoid emitting SampleCmpLevel prior to SM 6.7 if possible 2022-11-22 16:49:36 +00:00
nouveau drm-shim/nouveau: fix the shim to work with nvif ioctl. 2022-11-09 21:21:22 +00:00
panfrost pan/mdg: Fix out-of-order execution 2022-11-23 20:23:50 +00:00
tool pps: make pps-producer RT only on freedreno 2022-11-15 21:21:42 +00:00
util driconf: Add DRI configuration for exposing VK_KHR_present_wait. 2022-11-23 19:06:12 +00:00
virtio venus: enable VK_KHR_push_descriptor 2022-11-23 01:21:34 +00:00
vulkan wsi/x11: Rewrite wait logic for ANI/WaitForPresentKHR. 2022-11-23 19:06:12 +00:00
meson.build meson: build radeon drm-shim also for r300 and r600 2022-11-16 14:37:47 +00:00