diff options
author | José Fonseca <[email protected]> | 2009-03-02 17:32:37 +0000 |
---|---|---|
committer | José Fonseca <[email protected]> | 2009-03-02 17:32:37 +0000 |
commit | 2c1d40a051187242d7e55c7755e0433d4fb9c93a (patch) | |
tree | 76c8053356fdb69c5c8415a3f6564cb0b5363d4d | |
parent | 802a5ff507e44eafe86b687f603d496c3846fd50 (diff) |
pipebuffer: Wait for the GPU to finish reading too.
No real change, as we're not tracking relocations read/write access yet.
-rw-r--r-- | src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c b/src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c index 91b55c82387..ede2af4460f 100644 --- a/src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c +++ b/src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c @@ -296,9 +296,10 @@ fenced_buffer_map(struct pb_buffer *buf, assert(!(flags & ~PIPE_BUFFER_USAGE_CPU_READ_WRITE)); flags &= PIPE_BUFFER_USAGE_CPU_READ_WRITE; - /* Check for GPU read/write access */ - if(fenced_buf->flags & PIPE_BUFFER_USAGE_GPU_WRITE) { - /* Wait for the GPU to finish writing */ + /* Serialize writes */ + if((fenced_buf->flags & PIPE_BUFFER_USAGE_GPU_WRITE) || + ((fenced_buf->flags & PIPE_BUFFER_USAGE_GPU_READ) && (flags & PIPE_BUFFER_USAGE_CPU_WRITE))) { + /* Wait for the GPU to finish */ _fenced_buffer_finish(fenced_buf); } |