summaryrefslogtreecommitdiffstats
path: root/src/mesa
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2019-08-27 16:38:05 -0400
committerMarek Olšák <[email protected]>2019-10-15 14:24:23 -0400
commit7f6b9baee2dde4acecf38e77758d379fc249daf9 (patch)
tree54410c71e23f750cc8ab5384c37efe9ae4a0a707 /src/mesa
parent3f840e5ccdaa14981974bfb475d2d1aa4da47e5e (diff)
st/mesa: always allocate pack/unpack buffers as staging
Acked-by: Pierre-Eric Pelloux-Prayer <[email protected]>
Diffstat (limited to 'src/mesa')
-rw-r--r--src/mesa/state_tracker/st_cb_bufferobjects.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/src/mesa/state_tracker/st_cb_bufferobjects.c b/src/mesa/state_tracker/st_cb_bufferobjects.c
index 6b54aa67583..6c20a57ef76 100644
--- a/src/mesa/state_tracker/st_cb_bufferobjects.c
+++ b/src/mesa/state_tracker/st_cb_bufferobjects.c
@@ -245,6 +245,11 @@ buffer_usage(GLenum target, GLboolean immutable,
}
}
else {
+ /* These are often read by the CPU, so enable CPU caches. */
+ if (target == GL_PIXEL_PACK_BUFFER ||
+ target == GL_PIXEL_UNPACK_BUFFER)
+ return PIPE_USAGE_STAGING;
+
/* BufferData */
switch (usage) {
case GL_DYNAMIC_DRAW:
@@ -252,14 +257,7 @@ buffer_usage(GLenum target, GLboolean immutable,
return PIPE_USAGE_DYNAMIC;
case GL_STREAM_DRAW:
case GL_STREAM_COPY:
- /* XXX: Remove this test and fall-through when we have PBO unpacking
- * acceleration. Right now, PBO unpacking is done by the CPU, so we
- * have to make sure CPU reads are fast.
- */
- if (target != GL_PIXEL_UNPACK_BUFFER_ARB) {
- return PIPE_USAGE_STREAM;
- }
- /* fall through */
+ return PIPE_USAGE_STREAM;
case GL_STATIC_READ:
case GL_DYNAMIC_READ:
case GL_STREAM_READ: