diff options
author | Chia-I Wu <[email protected]> | 2019-06-17 09:53:48 -0700 |
---|---|---|
committer | Chia-I Wu <[email protected]> | 2019-06-18 10:38:21 -0700 |
commit | 98eda99ab88b8a5bcf5da5daa7ca4edbf34592fd (patch) | |
tree | e4aaf0bd2bc553a4b87cc39fc240a1ee40ca33c6 /src/glx/indirect_window_pos.c | |
parent | 2a717f300bb6fdb610f20ec8c693af4896e4fc5a (diff) |
virgl: fix sync issue regarding discard/unsync transfers
GL_MAP_INVALIDATE_BUFFER_BIT cannot be treated as
GL_MAP_INVALIDATE_RANGE_BIT naively. When we run into
ptr = glMapBufferRange(buf, 0, size,
GL_WRITE_BIT|GL_MAP_INVALIDATE_BUFFER_BIT);
memcpy(ptr, data1, size);
glUnmapBuffer(buf);
ptr = glMapBufferRange(buf, size, size,
GL_WRITE_BIT|GL_MAP_UNSYNCHRONIZED_BIT);
memcpy(ptr, data2, size);
glUnmapBuffer(buf);
we never want data1 to be copy_transfer'ed. Because that would mean
that data2 might overwrite valid data.
Signed-off-by: Chia-I Wu <[email protected]>
Reviewed-by: Alexandros Frantzis [email protected]
Fixes: a22c5df0794 ("virgl: Use buffer copy transfers to avoid waiting when mapping")
Reviewed-by: Emil Velikov <[email protected]>
Diffstat (limited to 'src/glx/indirect_window_pos.c')
0 files changed, 0 insertions, 0 deletions