From 97b9198e04f1e6915a90b8a50c48b95e456bcdd1 Mon Sep 17 00:00:00 2001 From: Yi Zhao Date: Wed, 9 Jan 2019 15:19:39 +0800 Subject: libsdl2: upgrade 2.0.8 -> 2.0.9 Drop 0001-GLES2-Get-sin-cos-out-of-vertex-shader.patch as it had been merged upstream. (From OE-Core rev: b46dbcad31c990b5556d61357e0a976948a5dede) Signed-off-by: Yi Zhao Signed-off-by: Richard Purdie --- ...01-GLES2-Get-sin-cos-out-of-vertex-shader.patch | 141 --------------------- meta/recipes-graphics/libsdl2/libsdl2_2.0.8.bb | 69 ---------- meta/recipes-graphics/libsdl2/libsdl2_2.0.9.bb | 68 ++++++++++ 3 files changed, 68 insertions(+), 210 deletions(-) delete mode 100644 meta/recipes-graphics/libsdl2/libsdl2/0001-GLES2-Get-sin-cos-out-of-vertex-shader.patch delete mode 100644 meta/recipes-graphics/libsdl2/libsdl2_2.0.8.bb create mode 100644 meta/recipes-graphics/libsdl2/libsdl2_2.0.9.bb (limited to 'meta/recipes-graphics/libsdl2') diff --git a/meta/recipes-graphics/libsdl2/libsdl2/0001-GLES2-Get-sin-cos-out-of-vertex-shader.patch b/meta/recipes-graphics/libsdl2/libsdl2/0001-GLES2-Get-sin-cos-out-of-vertex-shader.patch deleted file mode 100644 index 9b32b3788d..0000000000 --- a/meta/recipes-graphics/libsdl2/libsdl2/0001-GLES2-Get-sin-cos-out-of-vertex-shader.patch +++ /dev/null @@ -1,141 +0,0 @@ -From c215ba1d52a3d4ef03af3ab1a5baa1863f812aed Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= -Date: Fri, 24 Aug 2018 23:10:25 +0200 -Subject: [PATCH] GLES2: Get sin/cos out of vertex shader -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The only place angle is activated and causes effect is RenderCopyEx. All other -methods which use vertex shader, leave angle disabled and cause useless sin/cos -calculation in shader. - -To get around shader's interface is changed to a vector that contains results -of sin and cos. To behave properly when disabled, cos value is set with offset --1.0 making 0.0 default when deactivated. - -As nice side effect it simplifies GLES2_UpdateVertexBuffer: All attributes are -vectors now. - -Additional background: - -* On RaspberryPi it gives a performace win for operations. Tested with - [1] numbers go down for 5-10% (not easy to estimate due to huge variation). -* SDL_RenderCopyEx was tested with [2] -* It works around left rotated display caused by low accuracy sin implemetation - in RaspberryPi/VC4 [3] - -Upstream-Status: Accepted [4] - -[1] https://github.com/schnitzeltony/sdl2box -[2] https://github.com/schnitzeltony/sdl2rendercopyex -[3] https://github.com/anholt/mesa/issues/110 -[4] https://hg.libsdl.org/SDL/rev/e5a666405750 - -Signed-off-by: Andreas Müller ---- - src/render/opengles2/SDL_render_gles2.c | 17 ++++++++++++----- - src/render/opengles2/SDL_shaders_gles2.c | 14 +++++++++----- - 2 files changed, 21 insertions(+), 10 deletions(-) - -diff --git a/src/render/opengles2/SDL_render_gles2.c b/src/render/opengles2/SDL_render_gles2.c -index 14671f7c8..7c54a7333 100644 ---- a/src/render/opengles2/SDL_render_gles2.c -+++ b/src/render/opengles2/SDL_render_gles2.c -@@ -1530,7 +1530,7 @@ GLES2_UpdateVertexBuffer(SDL_Renderer *renderer, GLES2_Attribute attr, - GLES2_DriverContext *data = (GLES2_DriverContext *)renderer->driverdata; - - #if !SDL_GLES2_USE_VBOS -- data->glVertexAttribPointer(attr, attr == GLES2_ATTRIBUTE_ANGLE ? 1 : 2, GL_FLOAT, GL_FALSE, 0, vertexData); -+ data->glVertexAttribPointer(attr, 2, GL_FLOAT, GL_FALSE, 0, vertexData); - #else - if (!data->vertex_buffers[attr]) { - data->glGenBuffers(1, &data->vertex_buffers[attr]); -@@ -1545,7 +1545,7 @@ GLES2_UpdateVertexBuffer(SDL_Renderer *renderer, GLES2_Attribute attr, - data->glBufferSubData(GL_ARRAY_BUFFER, 0, dataSizeInBytes, vertexData); - } - -- data->glVertexAttribPointer(attr, attr == GLES2_ATTRIBUTE_ANGLE ? 1 : 2, GL_FLOAT, GL_FALSE, 0, 0); -+ data->glVertexAttribPointer(attr, 2, GL_FLOAT, GL_FALSE, 0, 0); - #endif - - return 0; -@@ -1853,6 +1853,8 @@ GLES2_RenderCopy(SDL_Renderer *renderer, SDL_Texture *texture, const SDL_Rect *s - return GL_CheckError("", renderer); - } - -+#define PI 3.14159265f -+ - static int - GLES2_RenderCopyEx(SDL_Renderer *renderer, SDL_Texture *texture, const SDL_Rect *srcrect, - const SDL_FRect *dstrect, const double angle, const SDL_FPoint *center, const SDL_RendererFlip flip) -@@ -1861,8 +1863,9 @@ GLES2_RenderCopyEx(SDL_Renderer *renderer, SDL_Texture *texture, const SDL_Rect - GLfloat vertices[8]; - GLfloat texCoords[8]; - GLfloat translate[8]; -- GLfloat fAngle[4]; -+ GLfloat fAngle[8]; - GLfloat tmp; -+ float radian_angle; - - GLES2_ActivateRenderer(renderer); - -@@ -1872,7 +1875,11 @@ GLES2_RenderCopyEx(SDL_Renderer *renderer, SDL_Texture *texture, const SDL_Rect - - data->glEnableVertexAttribArray(GLES2_ATTRIBUTE_CENTER); - data->glEnableVertexAttribArray(GLES2_ATTRIBUTE_ANGLE); -- fAngle[0] = fAngle[1] = fAngle[2] = fAngle[3] = (GLfloat)(360.0f - angle); -+ -+ radian_angle = PI * (360.0f - angle) / 180.f; -+ fAngle[0] = fAngle[2] = fAngle[4] = fAngle[6] = (GLfloat)sin(radian_angle); -+ /* render expects cos value - 1 (see GLES2_VertexSrc_Default_) */ -+ fAngle[1] = fAngle[3] = fAngle[5] = fAngle[7] = (GLfloat)cos(radian_angle) - 1.0f; - /* Calculate the center of rotation */ - translate[0] = translate[2] = translate[4] = translate[6] = (center->x + dstrect->x); - translate[1] = translate[3] = translate[5] = translate[7] = (center->y + dstrect->y); -@@ -1901,7 +1908,7 @@ GLES2_RenderCopyEx(SDL_Renderer *renderer, SDL_Texture *texture, const SDL_Rect - data->glVertexAttribPointer(GLES2_ATTRIBUTE_CENTER, 2, GL_FLOAT, GL_FALSE, 0, translate); - data->glVertexAttribPointer(GLES2_ATTRIBUTE_POSITION, 2, GL_FLOAT, GL_FALSE, 0, vertices);*/ - -- GLES2_UpdateVertexBuffer(renderer, GLES2_ATTRIBUTE_ANGLE, fAngle, 4 * sizeof(GLfloat)); -+ GLES2_UpdateVertexBuffer(renderer, GLES2_ATTRIBUTE_ANGLE, fAngle, 8 * sizeof(GLfloat)); - GLES2_UpdateVertexBuffer(renderer, GLES2_ATTRIBUTE_CENTER, translate, 8 * sizeof(GLfloat)); - GLES2_UpdateVertexBuffer(renderer, GLES2_ATTRIBUTE_POSITION, vertices, 8 * sizeof(GLfloat)); - -diff --git a/src/render/opengles2/SDL_shaders_gles2.c b/src/render/opengles2/SDL_shaders_gles2.c -index b0bcdff25..f428a4945 100644 ---- a/src/render/opengles2/SDL_shaders_gles2.c -+++ b/src/render/opengles2/SDL_shaders_gles2.c -@@ -30,20 +30,24 @@ - /************************************************************************************************* - * Vertex/fragment shader source * - *************************************************************************************************/ -- -+/* Notes on a_angle: -+ * It is a vector containing sin and cos for rotation matrix -+ * To get correct rotation for most cases when a_angle is disabled cos -+ value is decremented by 1.0 to get proper output with 0.0 which is -+ default value -+*/ - static const Uint8 GLES2_VertexSrc_Default_[] = " \ - uniform mat4 u_projection; \ - attribute vec2 a_position; \ - attribute vec2 a_texCoord; \ -- attribute float a_angle; \ -+ attribute vec2 a_angle; \ - attribute vec2 a_center; \ - varying vec2 v_texCoord; \ - \ - void main() \ - { \ -- float angle = radians(a_angle); \ -- float c = cos(angle); \ -- float s = sin(angle); \ -+ float s = a_angle[0]; \ -+ float c = a_angle[1] + 1.0; \ - mat2 rotationMatrix = mat2(c, -s, s, c); \ - vec2 position = rotationMatrix * (a_position - a_center) + a_center; \ - v_texCoord = a_texCoord; \ --- -2.14.4 - diff --git a/meta/recipes-graphics/libsdl2/libsdl2_2.0.8.bb b/meta/recipes-graphics/libsdl2/libsdl2_2.0.8.bb deleted file mode 100644 index 812a9abf3c..0000000000 --- a/meta/recipes-graphics/libsdl2/libsdl2_2.0.8.bb +++ /dev/null @@ -1,69 +0,0 @@ -SUMMARY = "Simple DirectMedia Layer" -DESCRIPTION = "Simple DirectMedia Layer is a cross-platform multimedia \ -library designed to provide low level access to audio, keyboard, mouse, \ -joystick, 3D hardware via OpenGL, and 2D video framebuffer." -HOMEPAGE = "http://www.libsdl.org" -BUGTRACKER = "http://bugzilla.libsdl.org/" - -SECTION = "libs" - -LICENSE = "Zlib" -LIC_FILES_CHKSUM = "file://COPYING.txt;md5=02ee26814dd044bd7838ae24e05b880f" - -PROVIDES = "virtual/libsdl2" - -SRC_URI = "http://www.libsdl.org/release/SDL2-${PV}.tar.gz \ - file://more-gen-depends.patch \ - file://0001-GLES2-Get-sin-cos-out-of-vertex-shader.patch \ -" - -S = "${WORKDIR}/SDL2-${PV}" - -SRC_URI[md5sum] = "3800d705cef742c6a634f202c37f263f" -SRC_URI[sha256sum] = "edc77c57308661d576e843344d8638e025a7818bff73f8fbfab09c3c5fd092ec" - -inherit autotools lib_package binconfig pkgconfig - -EXTRA_OECONF = "--disable-oss --disable-esd --disable-arts \ - --disable-diskaudio --disable-nas --disable-esd-shared --disable-esdtest \ - --disable-video-dummy \ - --enable-pthreads \ - --enable-sdl-dlopen \ - --disable-rpath \ - --disable-sndio \ - " - -# opengl packageconfig factored out to make it easy for distros -# and BSP layers to pick either (desktop) opengl, gles2, or no GL -PACKAGECONFIG_GL ?= "${@bb.utils.filter('DISTRO_FEATURES', 'opengl', d)}" - -PACKAGECONFIG_class-native = "x11" -PACKAGECONFIG_class-nativesdk = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" -PACKAGECONFIG ??= " \ - ${PACKAGECONFIG_GL} \ - ${@bb.utils.filter('DISTRO_FEATURES', 'alsa directfb pulseaudio x11', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland gles2', '', d)} \ -" -PACKAGECONFIG[alsa] = "--enable-alsa --disable-alsatest,--disable-alsa,alsa-lib," -PACKAGECONFIG[directfb] = "--enable-video-directfb,--disable-video-directfb,directfb" -PACKAGECONFIG[gles2] = "--enable-video-opengles,--disable-video-opengles,virtual/libgles2" -PACKAGECONFIG[opengl] = "--enable-video-opengl,--disable-video-opengl,virtual/libgl" -PACKAGECONFIG[pulseaudio] = "--enable-pulseaudio,--disable-pulseaudio,pulseaudio" -PACKAGECONFIG[tslib] = "--enable-input-tslib,--disable-input-tslib,tslib" -PACKAGECONFIG[wayland] = "--enable-video-wayland,--disable-video-wayland,wayland-native wayland wayland-protocols libxkbcommon" -PACKAGECONFIG[x11] = "--enable-video-x11,--disable-video-x11,virtual/libx11 libxext libxrandr libxrender" - -EXTRA_AUTORECONF += "--include=acinclude --exclude=autoheader" - -do_configure_prepend() { - # Remove old libtool macros. - MACROS="libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4" - for i in ${MACROS}; do - rm -f ${S}/acinclude/$i - done - export SYSROOT=$PKG_CONFIG_SYSROOT_DIR -} - -FILES_${PN}-dev += "${libdir}/cmake" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-graphics/libsdl2/libsdl2_2.0.9.bb b/meta/recipes-graphics/libsdl2/libsdl2_2.0.9.bb new file mode 100644 index 0000000000..a5ec77728a --- /dev/null +++ b/meta/recipes-graphics/libsdl2/libsdl2_2.0.9.bb @@ -0,0 +1,68 @@ +SUMMARY = "Simple DirectMedia Layer" +DESCRIPTION = "Simple DirectMedia Layer is a cross-platform multimedia \ +library designed to provide low level access to audio, keyboard, mouse, \ +joystick, 3D hardware via OpenGL, and 2D video framebuffer." +HOMEPAGE = "http://www.libsdl.org" +BUGTRACKER = "http://bugzilla.libsdl.org/" + +SECTION = "libs" + +LICENSE = "Zlib" +LIC_FILES_CHKSUM = "file://COPYING.txt;md5=02ee26814dd044bd7838ae24e05b880f" + +PROVIDES = "virtual/libsdl2" + +SRC_URI = "http://www.libsdl.org/release/SDL2-${PV}.tar.gz \ + file://more-gen-depends.patch \ +" + +S = "${WORKDIR}/SDL2-${PV}" + +SRC_URI[md5sum] = "f2ecfba915c54f7200f504d8b48a5dfe" +SRC_URI[sha256sum] = "255186dc676ecd0c1dbf10ec8a2cc5d6869b5079d8a38194c2aecdff54b324b1" + +inherit autotools lib_package binconfig pkgconfig + +EXTRA_OECONF = "--disable-oss --disable-esd --disable-arts \ + --disable-diskaudio --disable-nas --disable-esd-shared --disable-esdtest \ + --disable-video-dummy \ + --enable-pthreads \ + --enable-sdl-dlopen \ + --disable-rpath \ + --disable-sndio \ + " + +# opengl packageconfig factored out to make it easy for distros +# and BSP layers to pick either (desktop) opengl, gles2, or no GL +PACKAGECONFIG_GL ?= "${@bb.utils.filter('DISTRO_FEATURES', 'opengl', d)}" + +PACKAGECONFIG_class-native = "x11" +PACKAGECONFIG_class-nativesdk = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" +PACKAGECONFIG ??= " \ + ${PACKAGECONFIG_GL} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'alsa directfb pulseaudio x11', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland gles2', '', d)} \ +" +PACKAGECONFIG[alsa] = "--enable-alsa --disable-alsatest,--disable-alsa,alsa-lib," +PACKAGECONFIG[directfb] = "--enable-video-directfb,--disable-video-directfb,directfb" +PACKAGECONFIG[gles2] = "--enable-video-opengles,--disable-video-opengles,virtual/libgles2" +PACKAGECONFIG[opengl] = "--enable-video-opengl,--disable-video-opengl,virtual/libgl" +PACKAGECONFIG[pulseaudio] = "--enable-pulseaudio,--disable-pulseaudio,pulseaudio" +PACKAGECONFIG[tslib] = "--enable-input-tslib,--disable-input-tslib,tslib" +PACKAGECONFIG[wayland] = "--enable-video-wayland,--disable-video-wayland,wayland-native wayland wayland-protocols libxkbcommon" +PACKAGECONFIG[x11] = "--enable-video-x11,--disable-video-x11,virtual/libx11 libxext libxrandr libxrender" + +EXTRA_AUTORECONF += "--include=acinclude --exclude=autoheader" + +do_configure_prepend() { + # Remove old libtool macros. + MACROS="libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4" + for i in ${MACROS}; do + rm -f ${S}/acinclude/$i + done + export SYSROOT=$PKG_CONFIG_SYSROOT_DIR +} + +FILES_${PN}-dev += "${libdir}/cmake" + +BBCLASSEXTEND = "native nativesdk" -- cgit v1.2.3-54-g00ecf