From 7f6b9baee2dde4acecf38e77758d379fc249daf9 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Tue, 27 Aug 2019 16:38:05 -0400 Subject: [PATCH] st/mesa: always allocate pack/unpack buffers as staging Acked-by: Pierre-Eric Pelloux-Prayer --- src/mesa/state_tracker/st_cb_bufferobjects.c | 14 ++++++-------- 1 file 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: -- 2.30.2