summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/nouveau
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2013-09-20 15:08:29 +0200
committerMarek Olšák <[email protected]>2013-09-20 20:35:55 +0200
commit419cd5f2a24b87d31a2fd9dd9b7d0025b4f5515c (patch)
tree517df295a28d5fc0f0542de5e6f2552886b32e5b /src/gallium/drivers/nouveau
parentd2bd63433a252c84488023e9877e70d69223da42 (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')
-rw-r--r--src/gallium/drivers/nouveau/nv30/nv30_miptree.c6
-rw-r--r--src/gallium/drivers/nouveau/nv30/nv30_resource.c1
-rw-r--r--src/gallium/drivers/nouveau/nv30/nv30_resource.h4
-rw-r--r--src/gallium/drivers/nouveau/nv50/nv50_surface.c7
-rw-r--r--src/gallium/drivers/nouveau/nvc0/nvc0_surface.c7
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;
}