summaryrefslogtreecommitdiff
path: root/src/gallium/state_trackers/xorg/xorg_composite.c
diff options
context:
space:
mode:
authorZack Rusin <zackr@vmware.com>2009-11-09 18:01:55 -0500
committerZack Rusin <zackr@vmware.com>2009-11-09 18:04:21 -0500
commita6d527d7b82579feae9db20657d47a3f86115bb4 (patch)
tree8670a87d2b616b4a7ca838e37ae470af62ddfa06 /src/gallium/state_trackers/xorg/xorg_composite.c
parent216319fc0fe5dc3f298dd602812afa0f28a4ee60 (diff)
st/xorg: fix composite batching
quite a large performance optimization (text demo from 1.6fps to 9fps)
Diffstat (limited to 'src/gallium/state_trackers/xorg/xorg_composite.c')
-rw-r--r--src/gallium/state_trackers/xorg/xorg_composite.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/gallium/state_trackers/xorg/xorg_composite.c b/src/gallium/state_trackers/xorg/xorg_composite.c
index 8947d0a67c..4f4b02cdbc 100644
--- a/src/gallium/state_trackers/xorg/xorg_composite.c
+++ b/src/gallium/state_trackers/xorg/xorg_composite.c
@@ -287,6 +287,14 @@ bind_samplers(struct exa_context *exa, int op,
exa->num_bound_samplers = 0;
+#if 0
+ if ((pSrc && (exa->pipe->is_texture_referenced(exa->pipe, pSrc->tex, 0, 0) &
+ PIPE_REFERENCED_FOR_WRITE)) ||
+ (pMask && (exa->pipe->is_texture_referenced(exa->pipe, pMask->tex, 0, 0) &
+ PIPE_REFERENCED_FOR_WRITE)))
+ xorg_exa_flush(exa, PIPE_FLUSH_RENDER_CACHE, NULL);
+#endif
+
memset(&src_sampler, 0, sizeof(struct pipe_sampler_state));
memset(&mask_sampler, 0, sizeof(struct pipe_sampler_state));
@@ -461,7 +469,7 @@ void xorg_composite(struct exa_context *exa,
if (exa->transform.has_mask)
mask_matrix = exa->transform.mask;
-#if 1
+#if 0
renderer_draw_textures(exa->renderer,
pos, width, height,
exa->bound_textures,