summaryrefslogtreecommitdiff
path: root/src/egl
AgeCommit message (Collapse)AuthorFilesLines
2017-05-29egl: refactor dri2_create_screen() into three separate functionsEmil Velikov6-19/+58
Split the create_screen into: - create screen - setup/bind extensions - setup screen This will allow us to reuse the latter two on egl/drm. Said platform does create its own screen and attempts to reinvent the later two functions itself. Since the GBM ones tend to get out of sync quite often, and there is no distinct reason why it does so we'll drop them with latter commits. v2: disp -> dpy for the Android platform. v3: use correct goto label (Rob) Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Tested-by: Rob Herring <robh@kernel.org>
2017-05-29egl/x11: make use of the dri2_display_destroy() helperEmil Velikov1-55/+23
Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Tested-by: Rob Herring <robh@kernel.org>
2017-05-29egl/wayland: make use of the dri2_display_destroy() helperEmil Velikov1-59/+25
Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Tested-by: Rob Herring <robh@kernel.org>
2017-05-29egl/surfaceless: make use of the dri2_display_destroy() helperEmil Velikov1-14/+8
Cc: Chad Versace <chadversary@chromium.org> Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org> Tested-by: Rob Herring <robh@kernel.org>
2017-05-29egl/drm: make use of the dri2_display_destroy() helperEmil Velikov1-5/+2
Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Tested-by: Rob Herring <robh@kernel.org>
2017-05-29egl/android: make use of dri2_display_destroy() helperEmil Velikov1-18/+9
v2: disp -> dpy (Tapani) Cc: Tomasz Figa <tfiga@chromium.org> Cc: Tapani Pälli <tapani.palli@intel.com> Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Tested-by: Rob Herring <robh@kernel.org>
2017-05-29egl: split out a dri2_display_destroy() helperEmil Velikov2-1/+11
Within dri2_display_release() we already tear down all the display specifics. Within the platform specific dri initialize however we badly and partially duplicate that. Let's stop that by fleshing out the required functionality into a helper and using it throughout the codebase. Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org> Tested-by: Rob Herring <robh@kernel.org>
2017-05-29egl: check for driver_configs in dri2_display_releaseTapani Pälli1-1/+1
With later commits we'll split and reuse the destroy side of the function for the initialize_foo error path. In such cases, driver_configs may be NULL leading to a crash. Signed-off-by: Tapani Pälli <tapani.palli@intel.com> [Emil Velikov: reword commit message] Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Tested-by: Rob Herring <robh@kernel.org>
2017-05-29gbm: remove unneeded gbm_drm_device abstractionEmil Velikov2-12/+7
Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Tested-by: Rob Herring <robh@kernel.org>
2017-05-29gbm: move gbm_drm_device::driver_name to gbm_dri_deviceEmil Velikov1-1/+1
The former already keeps track of the DRI module opened, based on the driver_name provided. So let's keep them together. As a nice bonus this Will allows us to remove the gbm_drm_device all together with next patch. Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Tested-by: Rob Herring <robh@kernel.org>
2017-05-29gbm: remove "struct gbm_drm_bo" abstractionEmil Velikov1-2/+2
The struct is a simple wraper around gbm_bo and brings no actual benefit. Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Tested-by: Rob Herring <robh@kernel.org>
2017-05-22egl/wayland: verify event queue was allocatedLionel Landwerlin1-1/+1
We're already verified that 'window' wasn't NULL, I'm guessing this allocation error is about the newly created queue. CID: 1409754 Fixes: 03dd9a88b0b ("egl/wayland: Use per-surface event queues") Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Daniel Stone <daniels@collabora.com>
2017-05-19configure: set HAVE_foo_PLATFORM as applicableEmil Velikov1-5/+0
Rather than having multiple places that define the macros, do it just once in configure. Makes existing code a bit shorter and easier to manage as we fix the VL targets with follow-up commits. Cc: mesa-stable@lists.freedesktop.org Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric@engestrom.ch>
2017-05-19configure: update remaining --with-egl-platforms referencesEmil Velikov1-1/+1
Rename the remaining references to omit the egl part. Cc: mesa-stable@lists.freedesktop.org Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric@engestrom.ch>
2017-05-19configure: rename remaining HAVE_EGL_PLATFORM_* guardsEmil Velikov1-3/+3
Analogous to others earlier, these will be used to control the platform for more than the EGL driver. Cc: <mesa-stable@lists.freedesktop.org> Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric@engestrom.ch>
2017-05-19egl: add g_egldispatchstubs.h to the release tarballEmil Velikov1-1/+2
Fixes: ce562f9e3fa ("EGL: Implement the libglvnd interface for EGL (v3)") Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
2017-05-19egl/android: fix segfault within swap_buffersTapani Pälli1-1/+6
Function droid_swap_buffers may get called without dri2_surf->buffer set, in these cases we don't have a back buffer set either. Patch fixes segfault seen with 3DMark that uses android.opengl.GLSurfaceView for rendering it's UI. backtrace: #00 pc 00013f88 /system/lib/egl/libGLES_mesa.so (droid_swap_buffers+104) #01 pc 000117b2 /system/lib/egl/libGLES_mesa.so (dri2_swap_buffers+50) #02 pc 000058b2 /system/lib/egl/libGLES_mesa.so (eglSwapBuffers+386) #03 pc 00011329 /system/lib/libEGL.so (eglSwapBuffersWithDamageKHR+553) #04 pc 000118e7 /system/lib/libEGL.so (eglSwapBuffers+55) #05 pc 000754dc /system/lib/libandroid_runtime.so Note, this is v1 as v2 caused dEQP regressions. Fixes: 2acc69d ("EGL/Android: Add EGL_EXT_buffer_age extension") Signed-off-by: Tapani Pälli <tapani.palli@intel.com> Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com> Acked-by: Emil Velikov <emil.velikov@collabora.com> Cc: "17.1" <mesa-stable@lists.freedesktop.org>
2017-05-19egl/wayland: Ensure we get a back bufferDaniel Stone1-1/+9
Commit 9ca6711faa03 changed the Wayland winsys to only block for the frame callback inside SwapBuffers, rather than get_back_bo. get_back_bo would perform a single non-blocking Wayland event dispatch, to try to find any release events which we had pulled off the wire but not actually processed. The blocking dispatch was moved to SwapBuffers. This removed a guarantee that we would've processed all events inside get_back_bo(), and introduced a failure whereby the server could've sent a buffer release event, but we wouldn't have read it. In clients unconstrained by SwapInterval (rendering ~as fast as possible), which were being displayed directly without composition (buffer release delayed), this could lead to get_back_bo() failing because there were no free buffers available to it. The drawing rightly failed, but this was papered over because of the path in eglSwapBuffers() which attempts to guarantee a BO, in order to support calling SwapBuffers twice in a row with no rendering actually having been performed. Since eglSwapBuffers will perform a blocking dispatch of Wayland events, a buffer release would have arrived by that point, and we could then choose a buffer to post to the server. The effect was that frames were displayed out-of-order, since we grabbed a frame with random past content to display to the compositor. Ideally get_back_bo() failing should store a failure flag inside the surface and cause the next SwapBuffers to fail, but for the meantime, restore the correct behaviour such that get_back_bo() no longer fails. Signed-off-by: Daniel Stone <daniels@collabora.com> Reported-by: Eero Tamminen <eero.t.tamminen@intel.com> Acked-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98833 Fixes: 9ca6711faa03 ("Revert "wayland: Block for the frame callback in get_back_bo not dri2_swap_buffers"")
2017-05-19egl/wayland: Use per-surface event queuesDaniel Stone2-27/+68
During display initialisation, we need a separate event queue to handle the registry events, which is correctly handled. But we also need separate per-surface event queues to handle swapchain-related events, such as surface frame events and buffer release events. This avoids two surfaces from the same EGLDisplay, both current on separate threads, dispatching each other's events. Create separate per-surface event queues, create wl_surface and wl_drm proxy wrapper objects per surface, so we eliminate the race around sending events to the wrong queue. swrast buffers do not need a dedicated proxy wrapper, as the wl_shm_pool used to create the wl_buffers, being transient, can itself be assigned to a queue. Signed-off-by: Daniel Stone <daniels@collabora.com> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Fixes: 36b9976e1f99 ("egl/wayland: Avoid race conditions when on non-main thread") Cc: mesa-stable@lists.freedesktop.org
2017-05-19egl/wayland: Don't open-code roundtripDaniel Stone1-25/+1
wl_display_roundtrip_queue() exists and can replace roundtrip(). The API was introduced with wayland 1.6, while we currently require 1.11. Signed-off-by: Daniel Stone <daniels@collabora.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Cc: mesa-stable@lists.freedesktop.org
2017-05-18egl: Partially revert 23c86c74, fix eglMakeCurrentChad Versace1-19/+0
Fixes regressions in Android CtsVerifier.apk on Intel Chrome OS devices due to incorrect error handling in eglMakeCurrent. See below on how to confirm the regression is fixed. This partially reverts commit 23c86c74cc450a23848b85cfe914376caede1cdf Author: Chad Versace <chadversary@chromium.org> Subject: egl: Emit error when EGLSurface is lost The problem with commit 23c86c74 is that, once an EGLSurface became lost, the app could never unbind the bad surface. Each attempt to unbind the bad surface with eglMakeCurrent failed with EGL_BAD_CURRENT_SURFACE. Specificaly, the bad commit added the error handling below. #2 and #3 were right, but #1 was wrong. 1. eglMakeCurrent emits EGL_BAD_CURRENT_SURFACE if the calling thread has unflushed commands and either previous surface is no longer valid. 2. eglMakeCurrent emits EGL_BAD_NATIVE_WINDOW if either new surface is no longer valid. 3. eglSwapBuffers emits EGL_BAD_NATIVE_WINDOW if the swapped surface is no longer valid. Whe I wrote the bad commit, I misunderstood the EGL spec language for #1. The correct behavior is, if I understand correctly now, is below. This patch doesn't implement the correct behavior, though, it just reverts the broken behavior. - Assume a bound EGLSurface is no longer valid. - Assume the bound EGLContext has unflushed commands. - The app calls eglMakeCurrent. The spec requires eglMakeCurrent to implicitly flush. After flushing, eglMakeCurrent emits EGL_BAD_CURRENT_SURFACE and does *not* alter the thread's current bindings. - If the app calls eglMakeCurrent again, and the app inserts no commands into the GL command stream between the two eglMakeCurrent calls, then this second eglMakeCurrent succeeds without emitting an error. How to confirm this fixes the regression: Download android-cts-verifier-7.1_r5-linux_x86-x86.zip from source.android.com, unpack, and `adb install CtsVerifier.apk`. Run test "Projection Cube". Click the Pass button (a green checkmark). Then run test "Projection Widget". Confirm that widgets are visible and that logcat does not complain about eglMakeCurrent failure. Then confirm there are no regressions in the cts-traded module that commit 263243b1 fixed: cts-tf > run cts --skip-preconditions --skip-device-info \ -m CtsCameraTestCases \ -t android.hardware.camera2.cts.RobustnessTest Tested with Chrome OS board "reef". Fixes: 23c86c74 (egl: Emit error when EGLSurface is lost) Acked-by: Tapani Pälli <tapani.palli@intel.com> Cc: "17.1" <mesa-stable@lists.freedesktop.org> Cc: Tomasz Figa <tfiga@chromium.org> Cc: Nicolas Boichat <drinkcat@chromium.org> Cc: Emil Velikov <emil.velikov@collabora.com>
2017-05-15egl: fix android logger compilationTapani Pälli1-5/+5
1ce5853 broken compilation since LOG_ERROR is not defined and also macro expansion won't work as planned (expands to 'ANDROID_egl2alog[level]') v2: append 'ANDROID' to egl2alog table and use LOG_PRI (suggested by Chih-Wei Huang) Fixes: 1ce5853 ("egl: simplify the Android logger") Signed-off-by: Tapani Pälli <tapani.palli@intel.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
2017-05-11egl: simplify the Android loggerEmil Velikov1-27/+7
Drop the unsupported pre-JellyBean macros and use a simple egl2android mapping. With this we loose the explicit abort() provided by LOG_FATAL, although Mesa already already calls exit(1) in case of a fatal errors. Suggested-by: Rob Herring <robh@kernel.org> Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Rob Herring <robh@kernel.org>
2017-05-11Android: push driver build details to driver makefilesRob Herring1-9/+9
src/gallium/targets/dri/Android.mk contains lots of conditional for individual drivers. Let's move these details into the individual driver makefiles. In the process, align the make driver conditionals with automake (i.e. HAVE_GALLIUM_*). Signed-off-by: Rob Herring <robh@kernel.org> [Emil Velikov: add the radeon winsys for radeonsi] Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
2017-05-08egl: Fix -Wint-to-pointer-castChad Versace1-1/+1
main/egldisplay.c: In function '_eglParseX11DisplayAttribList': main/egldisplay.c:491:38: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] display->Options.Platform = (void *)value; The fix: cast to uinptr_t before void*. ^ Fixes: ddb99127 egl/x11: Honor the EGL_PLATFORM_X11_SCREEN_EXT attribute Cc: Adam Jackson <ajax@redhat.com> Reviewed-by: Eric Engestrom <eric@engestrom.ch> Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
2017-05-08egl: use designated initializersEmil Velikov1-8/+7
All the compilers used to build Mesa support them. Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric@engestrom.ch> Reviewed-by: Chad Versace <chadversary@chromium.org>
2017-05-08egl: drop unneeded sentinel from level_strings[]Emil Velikov1-2/+2
The array is local so we already know its size. v2: Correct loop condition (Bartosz) Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric@engestrom.ch> Reviewed-by: Chad Versace <chadversary@chromium.org>
2017-05-08egl: remove suprous header eglcompiler.hEmil Velikov7-52/+4
The header is used only to provide STATIC_ASSERT. The latter is already available in utils/macros.h so use that instead and kill of the header. Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric@engestrom.ch> Reviewed-by: Chad Versace <chadversary@chromium.org>
2017-05-08egl: remove unneeded else statement in _eglInitLoggerEmil Velikov1-3/+0
The variable level is already initialized to -1 which is already interpreted as FALLBACK_LOG_LEVEL. Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric@engestrom.ch> Reviewed-by: Chad Versace <chadversary@chromium.org>
2017-05-08egl: remove no longer needed logger infraEmil Velikov2-49/+6
As of last commit nobody requires anything else but the _eglDefaultLogger(). As such use it directly and simplify the implementation. Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric@engestrom.ch> Reviewed-by: Chad Versace <chadversary@chromium.org>
2017-05-08egl: fold Android logger into main/Emil Velikov3-35/+36
Will allow us to greatly simplify a lot of the code in egllog.c Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric@engestrom.ch> Reviewed-by: Chad Versace <chadversary@chromium.org>
2017-05-08egl: remove unused _eglSetLogLevel()Emil Velikov2-25/+0
Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric@engestrom.ch> Reviewed-by: Chad Versace <chadversary@chromium.org>
2017-05-08egl: avoid dereferencing a null displayEric Engestrom1-1/+3
Fixes: ddb99127a6f6c ("egl/x11: Honor the EGL_PLATFORM_X11_SCREEN_EXT attribute") Signed-off-by: Eric Engestrom <eric@engestrom.ch> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
2017-05-04egl/android: Set EGLSurface.Lost to EGL_TRUE/EGL_FALSENicolas Boichat1-2/+2
Lost is an EGLBoolean, so we should assign it to EGL_TRUE/EGL_FALSE, not true/false. Fixes: e5eace58684 ("egl/android: Mark surface as lost when dequeueBuffer fails") Fixes: 0212db35040 ("egl/android: Cancel any outstanding ANativeBuffer in surface destructor") Reviewed-by: Chad Versace <chadversary@chromium.org>
2017-05-04egl/android: Mark surface as lost when dequeueBuffer failsChad Versace1-0/+10
This ensures that future calls to eglSwapBuffers and eglMakeCurrent emit an error. This patch is part of a series for fixing android.hardware.camera2.cts.RobustnessTest#testAbandonRepeatingRequestSurface on Chrome OS x86 devices. Cc: mesa-stable@lists.freedesktop.org Cc: Tomasz Figa <tfiga@chromium.org> Cc: Tapani Pälli <tapani.palli@intel.com> Reviewed-by: Nicolas Boichat <drinkcat@chromium.org> Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
2017-05-04egl/android: Cancel any outstanding ANativeBuffer in surface destructorChad Versace1-4/+9
That is, call ANativeWindow::cancelBuffer in droid_destroy_surface(). This should prevent application deadlock when the app destroys the EGLSurface after EGL has acquired a buffer from SurfaceFlinger (ANativeWindow::dequeueBuffer) but before EGL has released it (ANativeWindow::enqueueBuffer). This patch is part of a series for fixing android.hardware.camera2.cts.RobustnessTest#testAbandonRepeatingRequestSurface on Chrome OS x86 devices. Cc: mesa-stable@lists.freedesktop.org Cc: Tomasz Figa <tfiga@chromium.org> Cc: Tapani Pälli <tapani.palli@intel.com> Reviewed-by: Nicolas Boichat <drinkcat@chromium.org> Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
2017-05-04egl: Emit error when EGLSurface is lostChad Versace3-0/+42
Add a new bool, _EGLSurface::Lost, and check it in eglMakeCurrent and eglSwapBuffers. The EGL 1.5 spec says that those functions emit errors when the native surface is no longer valid. This patch just updates core EGL. No driver sets _EGLSurface::Lost yet. I discovered that Mesa failed to detect lost surfaces while debugging an Android CTS camera test, android.hardware.camera2.cts.RobustnessTest#testAbandonRepeatingRequestSurface. This patch doesn't fix the test though, though, because the test expects EGL_BAD_SURFACE when the surface becomes lost, and this patch actually complies with the EGL spec. If I interpreted the EGL spec correctly, EGL_BAD_NATIVE_WINDOW or EGL_BAD_CURRENT_SURFACE is the correct error. Cc: mesa-stable@lists.freedesktop.org Cc: Tomasz Figa <tfiga@chromium.org> Cc: Tapani Pälli <tapani.palli@intel.com> Reviewed-by: Nicolas Boichat <drinkcat@chromium.org> Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
2017-05-04eg: explicitly size dri2_to_egl_attribute_map[]Emil Velikov1-1/+1
This way we'll get an implicit zero initialization of the remaining members, as required by dri2_add_config(). Fixes: e5efaeb85c3 ("egl: polish dri2_to_egl_attribute_map[]") Cc: Tomasz Figa <tfiga@chromium.org> Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
2017-05-04egl/platform/drm: Don't take display ownership until gbm is initializedAdam Jackson1-1/+1
If the gbm_create_device() call here actually did fail, any subsequent eglTerminate on the display would segfault. Cc: <mesa-stable@lists.freedesktop.org> Reviewed-by: Eric Anholt <eric@anholt.net> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Signed-off-by: Adam Jackson <ajax@redhat.com>
2017-05-04egl/x11: Honor the EGL_PLATFORM_X11_SCREEN_EXT attributeAdam Jackson3-8/+14
Introduce _egl_display::Options::Platforms for private storage. For X11 platforms we can use it for the screen number as set by EGL_PLATFORM_X11_SCREEN_EXT. Reviewed-by: Eric Anholt <eric@anholt.net> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Signed-off-by: Adam Jackson <ajax@redhat.com>
2017-04-29egl: initialise dummy_thread via _eglInitThreadInfoEmil Velikov1-9/+4
Considering we cannot make dummy_thread a constant we might as well, initialise by the same function that handles the actual thread info. This way we don't need to worry about mismatch between the initialiser and initialising function. Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
2017-04-29egl: polish dri2_to_egl_attribute_map[]Emil Velikov1-50/+18
Annotate the array as static const and use C99 initialiser to populate it. Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Matt Turner <mattst88@gmail.com>
2017-04-22egl: add gitignoreElie TOURNIER1-0/+2
Since commit ce562f9e3fa, two new files are generated. We don't want to track them. Signed-off-by: Elie Tournier <elie.tournier@collabora.com> Reviewed-by: Plamena Manolova <plamena.manolova@intel.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
2017-04-21Revert "android: fix segfault within swap_buffers"Tapani Pälli1-8/+0
This reverts commit 4d4558411db166d2d66f8cec9cb581149dbe1597. This was a wrong call, while it fixed issue with 3DMark it actually introduced regression elsewhere. Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
2017-04-17EGL: Implement the libglvnd interface for EGL (v3)Kyle Brenneman13-26/+3491
The new interface mostly just sits on top of the existing library. The only change to the existing EGL code is to split the client extension string into platform extensions and everything else. On non-glvnd builds, eglQueryString will just concatenate the two strings. The EGL dispatch stubs are all generated. The script is based on the one used to generate entrypoints in libglvnd itself. v2: [Kyle] - Rebased against master. - Reworked the EGL makefile to use separate libraries - Made the EGL code generation scripts work with Python 2 and 3. - Change gen_egl_dispatch.py to use argparse for the command line arguments. - Assorted formatting and style cleanup in the Python scripts. v3: [Emil Velikov] - Rebase - Remove separate glvnd glx/egl configure toggles Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
2017-03-22Android: drop Android 4.4 (KitKat) supportRob Herring1-4/+0
Any users of KitKat are likely using an older version of Mesa and KitKat support adds complexity to the make files. Dropping support allows removing the MESA_LOLLIPOP_BUILD make variable in various make files. Signed-off-by: Rob Herring <robh@kernel.org> Reviewed-by: Tapani Pälli <tapani.palli@intel.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
2017-03-22Android: kill off {MESA_}ANDROID_VERSION defines aka Android 4.1 and olderRob Herring3-28/+3
The Android version defines are only needed for versions less than 4.2 which aren't really supported or tested. Signed-off-by: Rob Herring <robh@kernel.org> Reviewed-by: Tapani Pälli <tapani.palli@intel.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
2017-03-22Android: clean-up trailing '\' in make variablesRob Herring1-2/+2
Fixed with the following command: perl -pe 'BEGIN{undef $/;} s/ \\\n\n/\n\n/smg' $(find . -name 'Android.*') Signed-off-by: Rob Herring <robh@kernel.org> Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
2017-03-22egl/dri2: consistently use ifndef guards over pragma onceEmil Velikov1-1/+4
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Acked-by: Vedran Miletić <vedran@miletic.net> Acked-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net>
2017-03-17android: fix segfault within swap_buffersTapani Pälli1-0/+8
Function droid_swap_buffers may get called without dri2_surf->buffer set, in these cases we don't have a back buffer set either. Patch fixes segfault seen with 3DMark that uses android.opengl.GLSurfaceView for rendering it's UI. backtrace: #00 pc 00013f88 /system/lib/egl/libGLES_mesa.so (droid_swap_buffers+104) #01 pc 000117b2 /system/lib/egl/libGLES_mesa.so (dri2_swap_buffers+50) #02 pc 000058b2 /system/lib/egl/libGLES_mesa.so (eglSwapBuffers+386) #03 pc 00011329 /system/lib/libEGL.so (eglSwapBuffersWithDamageKHR+553) #04 pc 000118e7 /system/lib/libEGL.so (eglSwapBuffers+55) #05 pc 000754dc /system/lib/libandroid_runtime.so v2: do like other backends, call get_back_bo (Emil Velikov) Fixes: 2acc69d ("EGL/Android: Add EGL_EXT_buffer_age extension") Signed-off-by: Tapani Pälli <tapani.palli@intel.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com>