diff options
author | Nicolai Hähnle <[email protected]> | 2017-10-22 17:38:37 +0200 |
---|---|---|
committer | Nicolai Hähnle <[email protected]> | 2017-11-09 14:20:58 +0100 |
commit | 884a0b2a9e55d4c1ca39475b50d9af598d7d7280 (patch) | |
tree | 0b7661fdf0ad273417149f55092a1c66ac019a21 /src/gallium/state_trackers | |
parent | b921da3b74d71598c47da2bc46e445e3813d7933 (diff) |
st/dri: use stapi flush instead of pipe flush when creating fences
There may be pending operations (e.g. vertices) that need to be flushed
by the state tracker.
Found by inspection.
Reviewed-by: Marek Olšák <[email protected]>
Diffstat (limited to 'src/gallium/state_trackers')
-rw-r--r-- | src/gallium/state_trackers/dri/dri_helpers.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/gallium/state_trackers/dri/dri_helpers.c b/src/gallium/state_trackers/dri/dri_helpers.c index 06309d8f0ce..a9213eca19a 100644 --- a/src/gallium/state_trackers/dri/dri_helpers.c +++ b/src/gallium/state_trackers/dri/dri_helpers.c @@ -90,13 +90,13 @@ static unsigned dri2_fence_get_caps(__DRIscreen *_screen) static void * dri2_create_fence(__DRIcontext *_ctx) { - struct pipe_context *ctx = dri_context(_ctx)->st->pipe; + struct st_context_iface *stapi = dri_context(_ctx)->st; struct dri2_fence *fence = CALLOC_STRUCT(dri2_fence); if (!fence) return NULL; - ctx->flush(ctx, &fence->pipe_fence, 0); + stapi->flush(stapi, 0, &fence->pipe_fence); if (!fence->pipe_fence) { FREE(fence); @@ -110,13 +110,14 @@ dri2_create_fence(__DRIcontext *_ctx) static void * dri2_create_fence_fd(__DRIcontext *_ctx, int fd) { - struct pipe_context *ctx = dri_context(_ctx)->st->pipe; + struct st_context_iface *stapi = dri_context(_ctx)->st; + struct pipe_context *ctx = stapi->pipe; struct dri2_fence *fence = CALLOC_STRUCT(dri2_fence); if (fd == -1) { /* exporting driver created fence, flush: */ - ctx->flush(ctx, &fence->pipe_fence, - PIPE_FLUSH_DEFERRED | PIPE_FLUSH_FENCE_FD); + stapi->flush(stapi, PIPE_FLUSH_DEFERRED | PIPE_FLUSH_FENCE_FD, + &fence->pipe_fence); } else { /* importing a foreign fence fd: */ ctx->create_fence_fd(ctx, &fence->pipe_fence, fd); |