diff --git a/packages/graphics/Mesa/package.mk b/packages/graphics/Mesa/package.mk index 3c36209a86..6e5454973a 100644 --- a/packages/graphics/Mesa/package.mk +++ b/packages/graphics/Mesa/package.mk @@ -17,13 +17,13 @@ ################################################################################ PKG_NAME="Mesa" -PKG_VERSION="10.0.3" +PKG_VERSION="10.1.0" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="OSS" PKG_SITE="http://www.mesa3d.org/" -PKG_URL="ftp://freedesktop.org/pub/mesa/$PKG_VERSION/MesaLib-$PKG_VERSION.tar.bz2" -PKG_DEPENDS_TARGET="toolchain Python:host makedepend:host libxml2:host expat glproto dri2proto libdrm libXext libXdamage libXfixes libXxf86vm libxcb libX11 systemd" +PKG_URL="ftp://freedesktop.org/pub/mesa/10.1/MesaLib-$PKG_VERSION.tar.bz2" +PKG_DEPENDS_TARGET="toolchain Python:host makedepend:host libxml2:host expat glproto dri2proto libdrm libXext libXdamage libXfixes libXxf86vm libxcb libX11 systemd dri3proto libxshmfence" PKG_PRIORITY="optional" PKG_SECTION="graphics" PKG_SHORTDESC="mesa: 3-D graphics library with OpenGL API" @@ -77,6 +77,7 @@ PKG_CONFIGURE_OPTS_TARGET="CC_FOR_BUILD=$HOST_CC \ --disable-gles2 \ --disable-openvg \ --enable-dri \ + --enable-dri3 \ --enable-glx \ --disable-osmesa \ --enable-egl --with-egl-platforms=x11,drm \ diff --git a/packages/graphics/Mesa/patches/Mesa-01-fix-uvd-performance.patch b/packages/graphics/Mesa/patches/Mesa-01-fix-uvd-performance.patch deleted file mode 100644 index 8de185312d..0000000000 --- a/packages/graphics/Mesa/patches/Mesa-01-fix-uvd-performance.patch +++ /dev/null @@ -1,141 +0,0 @@ -From: Christian König - -Without the correct feedback buffer size UVD runs -into an error on each frame, reducing the maximum FPS. - -Signed-off-by: Christian König ---- - src/gallium/drivers/radeon/radeon_uvd.c | 38 +++++++++++++++++++++++---------- - 1 file changed, 27 insertions(+), 11 deletions(-) - -diff --git a/src/gallium/drivers/radeon/radeon_uvd.c b/src/gallium/drivers/radeon/radeon_uvd.c -index 95757e3..6ac2199 100644 ---- a/src/gallium/drivers/radeon/radeon_uvd.c -+++ b/src/gallium/drivers/radeon/radeon_uvd.c -@@ -58,6 +58,9 @@ - #define NUM_H264_REFS 17 - #define NUM_VC1_REFS 5 - -+#define FB_BUFFER_OFFSET 0x1000 -+#define FB_BUFFER_SIZE 2048 -+ - /* UVD buffer representation */ - struct ruvd_buffer - { -@@ -81,6 +84,7 @@ struct ruvd_decoder { - - struct ruvd_buffer msg_fb_buffers[NUM_BUFFERS]; - struct ruvd_msg *msg; -+ uint32_t *fb; - - struct ruvd_buffer bs_buffers[NUM_BUFFERS]; - void* bs_ptr; -@@ -132,15 +136,20 @@ static void send_cmd(struct ruvd_decoder *dec, unsigned cmd, - } - - /* map the next available message buffer */ --static void map_msg_buf(struct ruvd_decoder *dec) -+static void map_msg_fb_buf(struct ruvd_decoder *dec) - { - struct ruvd_buffer* buf; -+ void *ptr; - -- /* grap the current message buffer */ -+ /* grap the current message/feedback buffer */ - buf = &dec->msg_fb_buffers[dec->cur_buffer]; - -- /* copy the message into it */ -- dec->msg = dec->ws->buffer_map(buf->cs_handle, dec->cs, PIPE_TRANSFER_WRITE); -+ /* and map it for CPU access */ -+ ptr = dec->ws->buffer_map(buf->cs_handle, dec->cs, PIPE_TRANSFER_WRITE); -+ -+ /* calc buffer offsets */ -+ dec->msg = ptr; -+ dec->fb = ptr + FB_BUFFER_OFFSET; - } - - /* unmap and send a message command to the VCPU */ -@@ -148,8 +157,8 @@ static void send_msg_buf(struct ruvd_decoder *dec) - { - struct ruvd_buffer* buf; - -- /* ignore the request if message buffer isn't mapped */ -- if (!dec->msg) -+ /* ignore the request if message/feedback buffer isn't mapped */ -+ if (!dec->msg || !dec->fb) - return; - - /* grap the current message buffer */ -@@ -157,6 +166,8 @@ static void send_msg_buf(struct ruvd_decoder *dec) - - /* unmap the buffer */ - dec->ws->buffer_unmap(buf->cs_handle); -+ dec->msg = NULL; -+ dec->fb = NULL; - - /* and send it to the hardware */ - send_cmd(dec, RUVD_CMD_MSG_BUFFER, buf->cs_handle, 0, -@@ -644,7 +655,7 @@ static void ruvd_destroy(struct pipe_video_codec *decoder) - - assert(decoder); - -- map_msg_buf(dec); -+ map_msg_fb_buf(dec); - memset(dec->msg, 0, sizeof(*dec->msg)); - dec->msg->size = sizeof(*dec->msg); - dec->msg->msg_type = RUVD_MSG_DESTROY; -@@ -773,7 +784,7 @@ static void ruvd_end_frame(struct pipe_video_codec *decoder, - memset(dec->bs_ptr, 0, bs_size - dec->bs_size); - dec->ws->buffer_unmap(bs_buf->cs_handle); - -- map_msg_buf(dec); -+ map_msg_fb_buf(dec); - dec->msg->size = sizeof(*dec->msg); - dec->msg->msg_type = RUVD_MSG_DECODE; - dec->msg->stream_handle = dec->stream_handle; -@@ -813,6 +824,10 @@ static void ruvd_end_frame(struct pipe_video_codec *decoder, - - dec->msg->body.decode.db_surf_tile_config = dec->msg->body.decode.dt_surf_tile_config; - dec->msg->body.decode.extension_support = 0x1; -+ -+ /* set at least the feedback buffer size */ -+ dec->fb[0] = FB_BUFFER_SIZE; -+ - send_msg_buf(dec); - - send_cmd(dec, RUVD_CMD_DPB_BUFFER, dec->dpb.cs_handle, 0, -@@ -822,7 +837,7 @@ static void ruvd_end_frame(struct pipe_video_codec *decoder, - send_cmd(dec, RUVD_CMD_DECODING_TARGET_BUFFER, dt, 0, - RADEON_USAGE_WRITE, RADEON_DOMAIN_VRAM); - send_cmd(dec, RUVD_CMD_FEEDBACK_BUFFER, msg_fb_buf->cs_handle, -- 0x1000, RADEON_USAGE_WRITE, RADEON_DOMAIN_GTT); -+ FB_BUFFER_OFFSET, RADEON_USAGE_WRITE, RADEON_DOMAIN_GTT); - set_reg(dec, RUVD_ENGINE_CNTL, 1); - - flush(dec); -@@ -898,7 +913,8 @@ struct pipe_video_codec *ruvd_create_decoder(struct pipe_context *context, - - bs_buf_size = width * height * 512 / (16 * 16); - for (i = 0; i < NUM_BUFFERS; ++i) { -- unsigned msg_fb_size = align(sizeof(struct ruvd_msg), 0x1000) + 0x1000; -+ unsigned msg_fb_size = FB_BUFFER_OFFSET + FB_BUFFER_SIZE; -+ assert(sizeof(struct ruvd_msg) <= FB_BUFFER_OFFSET); - if (!create_buffer(dec, &dec->msg_fb_buffers[i], msg_fb_size)) { - RUVD_ERR("Can't allocated message buffers.\n"); - goto error; -@@ -920,7 +936,7 @@ struct pipe_video_codec *ruvd_create_decoder(struct pipe_context *context, - - clear_buffer(dec, &dec->dpb); - -- map_msg_buf(dec); -+ map_msg_fb_buf(dec); - dec->msg->size = sizeof(*dec->msg); - dec->msg->msg_type = RUVD_MSG_CREATE; - dec->msg->stream_handle = dec->stream_handle; --- -1.8.1.2 - -_______________________________________________ -mesa-dev mailing list -mesa-dev@lists.freedesktop.org -http://lists.freedesktop.org/mailman/listinfo/mesa-dev