diff options
author | Marek Olšák <[email protected]> | 2013-09-20 15:08:29 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2013-09-20 20:35:55 +0200 |
commit | 419cd5f2a24b87d31a2fd9dd9b7d0025b4f5515c (patch) | |
tree | 517df295a28d5fc0f0542de5e6f2552886b32e5b /src/gallium/drivers/nouveau | |
parent | d2bd63433a252c84488023e9877e70d69223da42 (diff) |
gallium: add flush_resource context function
r600g needs explicit flushing before DRI2 buffers are presented on the screen.
v2: add (stub) implementations for all drivers, fix frontbuffer flushing
v3: fix galahad
Signed-off-by: Marek Olšák <[email protected]>
Diffstat (limited to 'src/gallium/drivers/nouveau')
5 files changed, 25 insertions, 0 deletions
diff --git a/src/gallium/drivers/nouveau/nv30/nv30_miptree.c b/src/gallium/drivers/nouveau/nv30/nv30_miptree.c index 4c237f615cd..1a4b8929c0f 100644 --- a/src/gallium/drivers/nouveau/nv30/nv30_miptree.c +++ b/src/gallium/drivers/nouveau/nv30/nv30_miptree.c @@ -217,6 +217,12 @@ nv30_blit(struct pipe_context *pipe, util_blitter_blit(nv30->blitter, &info); } +void +nv30_flush_resource(struct pipe_context *pipe, + struct pipe_resource *resource) +{ +} + static void * nv30_miptree_transfer_map(struct pipe_context *pipe, struct pipe_resource *pt, unsigned level, unsigned usage, diff --git a/src/gallium/drivers/nouveau/nv30/nv30_resource.c b/src/gallium/drivers/nouveau/nv30/nv30_resource.c index c99db1ce91b..f56ca315ff4 100644 --- a/src/gallium/drivers/nouveau/nv30/nv30_resource.c +++ b/src/gallium/drivers/nouveau/nv30/nv30_resource.c @@ -74,4 +74,5 @@ nv30_resource_init(struct pipe_context *pipe) pipe->surface_destroy = nv30_miptree_surface_del; pipe->resource_copy_region = nv30_resource_copy_region; pipe->blit = nv30_blit; + pipe->flush_resource = nv30_flush_resource; } diff --git a/src/gallium/drivers/nouveau/nv30/nv30_resource.h b/src/gallium/drivers/nouveau/nv30/nv30_resource.h index aff41966b3c..1981c8d9ab9 100644 --- a/src/gallium/drivers/nouveau/nv30/nv30_resource.h +++ b/src/gallium/drivers/nouveau/nv30/nv30_resource.h @@ -72,4 +72,8 @@ void nv30_blit(struct pipe_context *pipe, const struct pipe_blit_info *blit_info); +void +nv30_flush_resource(struct pipe_context *pipe, + struct pipe_resource *resource); + #endif diff --git a/src/gallium/drivers/nouveau/nv50/nv50_surface.c b/src/gallium/drivers/nouveau/nv50/nv50_surface.c index dcc1fce41c5..358f57aa6fb 100644 --- a/src/gallium/drivers/nouveau/nv50/nv50_surface.c +++ b/src/gallium/drivers/nouveau/nv50/nv50_surface.c @@ -1288,6 +1288,12 @@ nv50_blit(struct pipe_context *pipe, const struct pipe_blit_info *info) nv50_blit_3d(nv50, info); } +static void +nv50_flush_resource(struct pipe_context *ctx, + struct pipe_resource *resource) +{ +} + boolean nv50_blitter_create(struct nv50_screen *screen) { @@ -1348,6 +1354,7 @@ nv50_init_surface_functions(struct nv50_context *nv50) pipe->resource_copy_region = nv50_resource_copy_region; pipe->blit = nv50_blit; + pipe->flush_resource = nv50_flush_resource; pipe->clear_render_target = nv50_clear_render_target; pipe->clear_depth_stencil = nv50_clear_depth_stencil; } diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_surface.c b/src/gallium/drivers/nouveau/nvc0/nvc0_surface.c index 5070df80671..5375bd42546 100644 --- a/src/gallium/drivers/nouveau/nvc0/nvc0_surface.c +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_surface.c @@ -1192,6 +1192,12 @@ nvc0_blit(struct pipe_context *pipe, const struct pipe_blit_info *info) NOUVEAU_DRV_STAT(&nvc0->screen->base, tex_blit_count, 1); } +static void +nvc0_flush_resource(struct pipe_context *ctx, + struct pipe_resource *resource) +{ +} + boolean nvc0_blitter_create(struct nvc0_screen *screen) { @@ -1260,6 +1266,7 @@ nvc0_init_surface_functions(struct nvc0_context *nvc0) pipe->resource_copy_region = nvc0_resource_copy_region; pipe->blit = nvc0_blit; + pipe->flush_resource = nvc0_flush_resource; pipe->clear_render_target = nvc0_clear_render_target; pipe->clear_depth_stencil = nvc0_clear_depth_stencil; } |