diff options
author | Marek Olšák <[email protected]> | 2013-09-18 22:46:25 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2013-09-25 20:45:22 +0200 |
commit | 6317a3fb31014d89edff2993f3cf403f651a07f6 (patch) | |
tree | cda1afe0c7e157a66bb6fa82e1a76d2f8a4d9160 /src/gallium/drivers | |
parent | 4871128e58402385dc6f920884273c003a1124e1 (diff) |
r600g: fix constant buffer cache flushing
Cc: "9.2" <[email protected]>
Diffstat (limited to 'src/gallium/drivers')
-rw-r--r-- | src/gallium/drivers/r600/r600_hw_context.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/gallium/drivers/r600/r600_hw_context.c b/src/gallium/drivers/r600/r600_hw_context.c index 9c0a78e0720..18e17bb0723 100644 --- a/src/gallium/drivers/r600/r600_hw_context.c +++ b/src/gallium/drivers/r600/r600_hw_context.c @@ -236,7 +236,11 @@ void r600_flush_emit(struct r600_context *rctx) } if (rctx->b.flags & R600_CONTEXT_INV_CONST_CACHE) { - cp_coher_cntl |= S_0085F0_SH_ACTION_ENA(1); + /* Direct constant addressing uses the shader cache. + * Indirect contant addressing uses the vertex cache. */ + cp_coher_cntl |= S_0085F0_SH_ACTION_ENA(1) | + (rctx->has_vertex_cache ? S_0085F0_VC_ACTION_ENA(1) + : S_0085F0_TC_ACTION_ENA(1)); } if (rctx->b.flags & R600_CONTEXT_INV_VERTEX_CACHE) { cp_coher_cntl |= rctx->has_vertex_cache ? S_0085F0_VC_ACTION_ENA(1) |