virgl: modify how we handle GL_MAP_FLUSH_EXPLICIT_BIT
Previously, we ignored the the glUnmap(..) operation and
flushed before we flush the cbuf. Now, let's just flush
the data when we unmap.
Neither method is optimal, for example:
glMapBufferRange(.., 0, 100, GL_MAP_FLUSH_EXPLICIT_BIT)
glFlushMappedBufferRange(.., 25, 30)
glFlushMappedBufferRange(.., 65, 70)
We'll end up flushing 25 --> 70. Maybe we can fix this later.
v2: Add fixme comment in the code (Elie)
Reviewed-by:
Elie Tournier <elie.tournier@collabora.com>
- src/gallium/drivers/virgl/virgl_buffer.c 24 additions, 22 deletionssrc/gallium/drivers/virgl/virgl_buffer.c
- src/gallium/drivers/virgl/virgl_context.c 1 addition, 33 deletionssrc/gallium/drivers/virgl/virgl_context.c
- src/gallium/drivers/virgl/virgl_context.h 0 additions, 1 deletionsrc/gallium/drivers/virgl/virgl_context.h
- src/gallium/drivers/virgl/virgl_resource.h 0 additions, 13 deletionssrc/gallium/drivers/virgl/virgl_resource.h