mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-02-27 11:10:30 +01:00
st/mesa: remove redundant flushes from st_flush
st_flush should flush state tracker-internal state and the pipe, but
not mesa/main state. Of the four callers:
- glFlush/glFinish already call FLUSH_{VERTICES,STATE}.
- st_vdpau doesn't need to call them.
- st_manager will now call them explicitly.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
parent
884a0b2a9e
commit
fbda7958ff
3 changed files with 6 additions and 3 deletions
|
|
@ -50,9 +50,6 @@ void st_flush(struct st_context *st,
|
|||
struct pipe_fence_handle **fence,
|
||||
unsigned flags)
|
||||
{
|
||||
FLUSH_VERTICES(st->ctx, 0);
|
||||
FLUSH_CURRENT(st->ctx, 0);
|
||||
|
||||
st_flush_bitmap_cache(st);
|
||||
|
||||
st->pipe->flush(st->pipe, fence, flags);
|
||||
|
|
|
|||
|
|
@ -45,6 +45,7 @@
|
|||
#include "st_debug.h"
|
||||
#include "st_extensions.h"
|
||||
#include "st_format.h"
|
||||
#include "st_cb_bitmap.h"
|
||||
#include "st_cb_fbo.h"
|
||||
#include "st_cb_flush.h"
|
||||
#include "st_manager.h"
|
||||
|
|
@ -635,6 +636,8 @@ st_context_flush(struct st_context_iface *stctxi, unsigned flags,
|
|||
pipe_flags |= PIPE_FLUSH_END_OF_FRAME;
|
||||
}
|
||||
|
||||
FLUSH_VERTICES(st->ctx, 0);
|
||||
FLUSH_CURRENT(st->ctx, 0);
|
||||
st_flush(st, fence, pipe_flags);
|
||||
|
||||
if ((flags & ST_FLUSH_WAIT) && fence && *fence) {
|
||||
|
|
|
|||
|
|
@ -262,6 +262,9 @@ st_vdpau_unmap_surface(struct gl_context *ctx, GLenum target, GLenum access,
|
|||
|
||||
_mesa_dirty_texobj(ctx, texObj);
|
||||
|
||||
/* NV_vdpau_interop does not specify an explicit synchronization mechanism
|
||||
* between the GL and VDPAU contexts. Provide automatic synchronization here.
|
||||
*/
|
||||
st_flush(st, NULL, 0);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue