mesa/src/gallium/frontends/wgl
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
..
gldrv.h
meson.build wgl: Implement interop methods 2022-11-02 18:11:41 +00:00
stw_context.c st: Turn st_api::create_context to be direct accessed function st_api_create_context 2022-10-24 11:31:20 +00:00
stw_context.h wgl: Use pfi instead of iPixelFormat more often 2022-08-10 21:00:43 +00:00
stw_device.c gallium: Replace the usage of __FUNCTION__ with __func__ in all gallium code 2022-11-22 06:53:47 +00:00
stw_device.h st: Remove struct st_api, st_gl_api_create and st_gl_api.h 2022-10-24 11:31:20 +00:00
stw_ext_context.c wgl: fix reference to wgl(Create|Delete)Context function pointers 2022-11-07 23:48:30 +00:00
stw_ext_context.h wgl: Make overridden entrypoints local to stw_ext_context 2021-09-08 07:22:35 -07:00
stw_ext_extensionsstring.c wgl: Implement WGL_ARB_create_context_robustness 2022-04-28 19:33:04 +00:00
stw_ext_interop.c mesa: #include "util/glheader.h" instead GL/gl.h in shared code 2022-11-03 16:07:31 +00:00
stw_ext_interop.h wgl: Implement interop methods 2022-11-02 18:11:41 +00:00
stw_ext_pbuffer.c wgl: Use pfi instead of iPixelFormat more often 2022-08-10 21:00:43 +00:00
stw_ext_pixelformat.c wgl: Marshal HDC into screen creation and LUID querying 2020-11-18 11:15:17 +01:00
stw_ext_rendertexture.c wgl: Use pfi instead of iPixelFormat more often 2022-08-10 21:00:43 +00:00
stw_ext_swapinterval.c
stw_framebuffer.c gallium: Replace the usage of __FUNCTION__ with __func__ in all gallium code 2022-11-22 06:53:47 +00:00
stw_framebuffer.h wgl: Use pfi instead of iPixelFormat more often 2022-08-10 21:00:43 +00:00
stw_getprocaddress.c wgl: Implement interop methods 2022-11-02 18:11:41 +00:00
stw_image.c mesa: #include "util/glheader.h" instead GL/gl.h in shared code 2022-11-03 16:07:31 +00:00
stw_image.h egl/wgl: Hook up image validate/get in smapi 2022-08-10 21:00:43 +00:00
stw_nopfuncs.c
stw_nopfuncs.h
stw_pixelformat.c util: Move src/gallium/include/pipe/p_format.h to src/util/format/u_formats.h 2022-11-19 03:38:19 +00:00
stw_pixelformat.h util: Move src/gallium/include/pipe/p_format.h to src/util/format/u_formats.h 2022-11-19 03:38:19 +00:00
stw_st.c st/mesa: only call st_manager_validate_framebuffers at FBO change or SwapBuffers 2022-11-23 20:37:02 +00:00
stw_st.h st: Remove struct st_api, st_gl_api_create and st_gl_api.h 2022-10-24 11:31:20 +00:00
stw_tls.c gallium: Replace the usage of __FUNCTION__ with __func__ in all gallium code 2022-11-22 06:53:47 +00:00
stw_tls.h
stw_winsys.h wgl: Allow per-framebuffer swap interval overrides 2022-08-10 21:00:42 +00:00