diff -Naur nuvolaruntime-4.7.0/README.md nuvolaruntime-4.7.0.new/README.md
--- nuvolaruntime-4.7.0/README.md 2017-09-01 18:52:34.000000000 +0200
+++ nuvolaruntime-4.7.0.new/README.md 2017-09-02 12:14:39.357095888 +0200
@@ -117,8 +117,6 @@
* [javascriptcoregtk-4.0](http://webkitgtk.org/) >= 2.16.0 (2.16.1 recommended)
* [libnotify](https://git.gnome.org/browse/libnotify/) >= 0.7
* [gstreamer](https://gstreamer.freedesktop.org/) >= 1.8.3 (>= 1.12 for MSE)
- * [libdri2](https://github.com/robclark/libdri2) >= 1.0.0
- * [libdrm](https://dri.freedesktop.org/libdrm/) >= 2.2
* libuuid
* libsecret-1 >= 0.16
* g-ir-compiler
diff -Naur nuvolaruntime-4.7.0/src/nuvolakit-runner/system/Graphics.vala nuvolaruntime-4.7.0.new/src/nuvolakit-runner/system/Graphics.vala
--- nuvolaruntime-4.7.0/src/nuvolakit-runner/system/Graphics.vala 2017-09-01 18:52:34.000000000 +0200
+++ nuvolaruntime-4.7.0.new/src/nuvolakit-runner/system/Graphics.vala 2017-09-02 12:19:28.957113872 +0200
@@ -69,109 +69,4 @@
}
#endif
-const Dri2.EventOps DRI2_NO_OPS = {};
-
-public errordomain DriError
-{
- NO_X_DISPLAY,
- INIT_DISPLAY,
- EXTENSION_QUERY,
- VERSION_QUERY,
- CONNECT;
-}
-
-/**
- * Get the name of DRI2 driver
- *
- * @return driver name
- * @throws DriError on failure
- */
-public string dri2_get_driver_name() throws DriError
-{
- var dpy = new X.Display(null);
- if (dpy == null)
- throw new DriError.NO_X_DISPLAY("Cannot connect to X display.");
- int major, minor;
- string driver;
- dri2_connect(dpy, out major, out minor, out driver);
- debug("DRI %d.%d; driver %s", major, minor, driver);
- return driver;
-}
-
-private void dri2_connect(X.Display dpy, out int major, out int minor, out string driver) throws DriError
-{
- major = 0;
- minor = 0;
- int driverType = Dri2.DriverDRI;
- driver = null;
- int eventBase, errorBase;
- string? device = null;
-
- if (!Dri2.init_display(dpy, DRI2_NO_OPS))
- throw new DriError.INIT_DISPLAY("DRI2InitDisplay failed.");
-
- if (!Dri2.query_extension(dpy, out eventBase, out errorBase))
- throw new DriError.EXTENSION_QUERY("DRI2QueryExtension failed, %d, %d", eventBase, errorBase);
-
- if (!Dri2.query_version(dpy, out major, out minor))
- throw new DriError.VERSION_QUERY("DRI2QueryVersion failed");
-
- if (!Dri2.connect(dpy, dpy.default_root_window(), driverType, out driver, out device))
- throw new DriError.CONNECT("DRI2Connect failed");
-}
-
-/**
- * Check whether VDPAU driver is available
- *
- * @param name The driver name.
- * @return `true` if the corresponding `libvdpau_XXX.so` has been found, false otherwise.
- */
-public bool have_vdpau_driver(string name)
-{
- var filename = "/usr/lib/vdpau/libvdpau_%s.so".printf(name);
- if (FileUtils.test(filename, FileTest.EXISTS))
- {
- debug("VDPAU driver found: %s", filename);
- return true;
- }
- var libdirs = Drt.String.split_strip(Environment.get_variable("LD_LIBRARY_PATH"), ":");
- foreach (unowned string libdir in libdirs)
- {
- filename = "%s/vdpau/libvdpau_%s.so".printf(libdir, name);
- if (FileUtils.test(filename, FileTest.EXISTS))
- {
- debug("VDPAU driver found: %s", filename);
- return true;
- }
- }
- return false;
-}
-
-/**
- * Check whether VA-API driver is available
- *
- * @param name The driver name.
- * @return `true` if the corresponding `dri/XXX_dri_video.so` has been found, false otherwise.
- */
-public bool have_vaapi_driver(string name)
-{
- var filename = "/usr/lib/dri/%s_drv_video.so".printf(name);
- if (FileUtils.test(filename, FileTest.EXISTS))
- {
- debug("VA-API driver found: %s", filename);
- return true;
- }
- var libdirs = Drt.String.split_strip(Environment.get_variable("LIBVA_DRIVERS_PATH"), ":");
- foreach (unowned string libdir in libdirs)
- {
- filename = "%s/%s_drv_video.so".printf(libdir, name);
- if (FileUtils.test(filename, FileTest.EXISTS))
- {
- debug("VA-API driver found: %s", filename);
- return true;
- }
- }
- return false;
-}
-
} // namespace Nuvola.Graphics
diff -Naur nuvolaruntime-4.7.0/src/nuvolakit-runner/system/StartupCheck.vala nuvolaruntime-4.7.0.new/src/nuvolakit-runner/system/StartupCheck.vala
--- nuvolaruntime-4.7.0/src/nuvolakit-runner/system/StartupCheck.vala 2017-09-01 18:52:34.000000000 +0200
+++ nuvolaruntime-4.7.0.new/src/nuvolakit-runner/system/StartupCheck.vala 2017-09-02 12:23:11.980127723 +0200
@@ -299,54 +299,6 @@
#else
opengl_driver_status = Status.NOT_APPLICABLE;
#endif
- try
- {
- const string DRIVER_NOT_FOUND_TEMPLATE = (
- "%s Driver for '%s' not found. Rendering performance of some web apps may suffer. "
- #if !FLATPAK
- + "Contact your distributor to get help with installation."
- #else
- + "Please <a href=\"https://github.com/tiliado/nuvolaruntime/issues/280\">report your issue</a>"
- +" so that the driver can be added to Nuvola Runtime flatpak."
- #endif
- );
-
- var dri2_driver = Graphics.dri2_get_driver_name();
- if (!Graphics.have_vdpau_driver(dri2_driver))
- {
- vdpau_driver_message = Markup.printf_escaped(DRIVER_NOT_FOUND_TEMPLATE, "VDPAU", dri2_driver);
- vdpau_driver_status = Status.WARNING;
- }
- else
- {
- vdpau_driver_status = Status.OK;
- }
- if (!Graphics.have_vaapi_driver(dri2_driver))
- {
- vaapi_driver_message = Markup.printf_escaped(DRIVER_NOT_FOUND_TEMPLATE, "VA-API", dri2_driver);
- vaapi_driver_status = Status.WARNING;
- }
- else
- {
- vaapi_driver_status = Status.OK;
- }
- }
- catch (Graphics.DriError e)
- {
- if (e is Graphics.DriError.NO_X_DISPLAY || e is Graphics.DriError.EXTENSION_QUERY)
- {
- vdpau_driver_status = Status.NOT_APPLICABLE;
- vaapi_driver_status = Status.NOT_APPLICABLE;
- }
- else
- {
- var msg = Markup.printf_escaped("Failed to get DRI2 driver name. %s", e.message);
- vdpau_driver_message = msg;
- vdpau_driver_status = Status.WARNING;
- vaapi_driver_message = (owned) msg;
- vaapi_driver_status = Status.WARNING;
- }
- }
yield Drt.EventLoop.resume_later();
task_finished(NAME);
}
diff -Naur nuvolaruntime-4.7.0/src/tests/GraphicsTest.vala nuvolaruntime-4.7.0.new/src/tests/GraphicsTest.vala
--- nuvolaruntime-4.7.0/src/tests/GraphicsTest.vala 2017-09-01 18:52:34.000000000 +0200
+++ nuvolaruntime-4.7.0.new/src/tests/GraphicsTest.vala 1970-01-01 01:00:00.000000000 +0100
@@ -1,76 +0,0 @@
-/*
- * Author: Jiří Janoušek <janousek.jiri@gmail.com>
- *
- * To the extent possible under law, author has waived all
- * copyright and related or neighboring rights to this file.
- * http://creativecommons.org/publicdomain/zero/1.0/
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * Tests are under public domain because they might contain useful sample code.
- */
-
-namespace Nuvola
-{
-
-public class GraphicsTest: Drt.TestCase
-{
- public void test_dri2_get_driver_name()
- {
- try
- {
- var name = Graphics.dri2_get_driver_name();
- expect_false(Drt.String.is_empty(name), "driver name not empty");
- }
- catch (Graphics.DriError e)
- {
- if (!(e is Graphics.DriError.NO_X_DISPLAY))
- expectation_failed("Unexpected error: %s %d %s", e.domain.to_string(), e.code, e.message);
- }
- }
-
- public void test_have_vdpau_driver()
- {
- var name = "i965";
- var result = Graphics.have_vdpau_driver(name);
- var expected = FileUtils.test("/usr/lib/vdpau/libvdpau_i965.so", FileTest.EXISTS)
- || FileUtils.test("/app/lib/vdpau/libvdpau_i965.so", FileTest.EXISTS);
- expect_true(expected == result, "have vdpau driver");
- }
-
- public void test_have_vaapi_driver()
- {
- var name = "i965";
- var result = Graphics.have_vaapi_driver(name);
- var expected = FileUtils.test("/usr/lib/drv/i965_drv_video.so", FileTest.EXISTS)
- || FileUtils.test("/app/lib/dri/i965_drv_video.so", FileTest.EXISTS);
- expect_true(expected == result, "have vaapi driver");
- }
-
- #if FLATPAK
- public void test_have_vdpau_drivers()
- {
- string[] names = {"i965", "i915", "r300", "r600", "radeon", "radeonsi", "nouveau"};
- foreach (var name in names)
- expect_true(Graphics.have_vdpau_driver(name), "VDPAU: %s", name);
- }
-
- public void test_have_vaapi_drivers()
- {
- string[] names = {"i965", "i915", "r300", "r600", "radeon", "radeonsi", "nouveau"};
- foreach (var name in names)
- expect_true(Graphics.have_vaapi_driver(name), "VA-API: %s", name);
- }
- #endif
-}
-
-} // namespace Nuvola
diff -Naur nuvolaruntime-4.7.0/vapi/dri2.deps nuvolaruntime-4.7.0.new/vapi/dri2.deps
--- nuvolaruntime-4.7.0/vapi/dri2.deps 2017-09-01 18:52:34.000000000 +0200
+++ nuvolaruntime-4.7.0.new/vapi/dri2.deps 1970-01-01 01:00:00.000000000 +0100
@@ -1,2 +0,0 @@
-x11
-libdrm
diff -Naur nuvolaruntime-4.7.0/vapi/dri2.vapi nuvolaruntime-4.7.0.new/vapi/dri2.vapi
--- nuvolaruntime-4.7.0/vapi/dri2.vapi 2017-09-01 18:52:34.000000000 +0200
+++ nuvolaruntime-4.7.0.new/vapi/dri2.vapi 1970-01-01 01:00:00.000000000 +0100
@@ -1,22 +0,0 @@
-namespace Dri2
-{
- [CCode(cname="DRI2InitDisplay", cheader_filename="X11/extensions/dri2.h")]
- public bool init_display(X.Display dpy, EventOps ops);
-
- [CCode(cname="DRI2QueryExtension", cheader_filename="X11/extensions/dri2.h")]
- public bool query_extension(X.Display dpy, out int eventBase, out int errorBase);
-
- [CCode(cname="DRI2QueryVersion", cheader_filename="X11/extensions/dri2.h")]
- public bool query_version(X.Display dpy, out int major, out int minor);
-
- [CCode(cname="DRI2Connect", cheader_filename="X11/extensions/dri2.h")]
- public bool connect(X.Display dpy, X.Window root, int driverType, out string driver, out string device);
-
- [CCode(cname="DRI2DriverDRI", cheader_filename="X11/extensions/dri2.h")]
- public const int DriverDRI;
-
- [CCode(cname="DRI2EventOps", cheader_filename="X11/extensions/dri2.h")]
- public struct EventOps
- {
- }
-}
diff -Naur nuvolaruntime-4.7.0/wscript nuvolaruntime-4.7.0.new/wscript
--- nuvolaruntime-4.7.0/wscript 2017-09-01 18:52:34.000000000 +0200
+++ nuvolaruntime-4.7.0.new/wscript 2017-09-02 12:30:36.802155347 +0200
@@ -317,8 +317,6 @@
pkgconfig(ctx, 'javascriptcoregtk-4.0', 'JSCORE', MIN_WEBKIT)
pkgconfig(ctx, 'uuid', 'UUID', '0') # Engine.io
pkgconfig(ctx, 'libsoup-2.4', 'SOUP', '0') # Engine.io
- pkgconfig(ctx, 'dri2', 'DRI2', '1.0')
- pkgconfig(ctx, 'libdrm', 'DRM', '2.2')
# For tests
ctx.find_program("diorite-testgen{}".format(TARGET_DIORITE), var="DIORITE_TESTGEN")
@@ -491,8 +489,8 @@
target = NUVOLAKIT_RUNNER,
gir = "NuvolaRunner-1.0",
source_dir = 'src/nuvolakit-runner',
- packages = packages + ' webkit2gtk-4.0 javascriptcoregtk-4.0 gstreamer-1.0 libsecret-1 dri2 libdrm',
- uselib = uselib + ' JSCORE WEBKIT GST SECRET DRI2 DRM',
+ packages = packages + ' webkit2gtk-4.0 javascriptcoregtk-4.0 gstreamer-1.0 libsecret-1',
+ uselib = uselib + ' JSCORE WEBKIT GST SECRET',
use = [NUVOLAKIT_BASE, ENGINEIO],
lib = ['m'],
includes = ["build"],