mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-03 11:30:21 +01:00
ilo: simplify ilo_flush()
Move fence creation to the new ilo_fence_create().
This commit is contained in:
parent
654fd3e33f
commit
4714c4ec48
3 changed files with 30 additions and 20 deletions
|
|
@ -63,28 +63,13 @@ ilo_flush(struct pipe_context *pipe,
|
|||
{
|
||||
struct ilo_context *ilo = ilo_context(pipe);
|
||||
|
||||
if (f) {
|
||||
struct ilo_fence *fence;
|
||||
|
||||
fence = CALLOC_STRUCT(ilo_fence);
|
||||
if (fence) {
|
||||
pipe_reference_init(&fence->reference, 1);
|
||||
|
||||
/* reference the batch bo that we want to wait on */
|
||||
if (ilo_cp_empty(ilo->cp))
|
||||
fence->bo = ilo->last_cp_bo;
|
||||
else
|
||||
fence->bo = ilo->cp->bo;
|
||||
|
||||
if (fence->bo)
|
||||
intel_bo_reference(fence->bo);
|
||||
}
|
||||
|
||||
*f = (struct pipe_fence_handle *) fence;
|
||||
}
|
||||
|
||||
ilo_cp_flush(ilo->cp,
|
||||
(flags & PIPE_FLUSH_END_OF_FRAME) ? "frame end" : "user request");
|
||||
|
||||
if (f) {
|
||||
*f = (struct pipe_fence_handle *)
|
||||
ilo_fence_create(pipe->screen, ilo->last_cp_bo);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
|||
|
|
@ -575,6 +575,28 @@ ilo_fence_finish(struct pipe_screen *screen,
|
|||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a fence for \p bo. When \p bo is not NULL, it must be submitted
|
||||
* before waited on or checked.
|
||||
*/
|
||||
struct ilo_fence *
|
||||
ilo_fence_create(struct pipe_screen *screen, struct intel_bo *bo)
|
||||
{
|
||||
struct ilo_fence *fence;
|
||||
|
||||
fence = CALLOC_STRUCT(ilo_fence);
|
||||
if (!fence)
|
||||
return NULL;
|
||||
|
||||
pipe_reference_init(&fence->reference, 1);
|
||||
|
||||
if (bo)
|
||||
intel_bo_reference(bo);
|
||||
fence->bo = bo;
|
||||
|
||||
return fence;
|
||||
}
|
||||
|
||||
static void
|
||||
ilo_screen_destroy(struct pipe_screen *screen)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -60,4 +60,7 @@ ilo_fence(struct pipe_fence_handle *fence)
|
|||
return (struct ilo_fence *) fence;
|
||||
}
|
||||
|
||||
struct ilo_fence *
|
||||
ilo_fence_create(struct pipe_screen *screen, struct intel_bo *bo);
|
||||
|
||||
#endif /* ILO_SCREEN_H */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue