Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • 0.20240321.x
  • main
  • v0.20231013.x
  • wip/case_insensitive_fs
  • wip/denittis/line_based
  • wip/denittis/portal_helper
  • wip/denittis/t17372
  • wip/denittis/t20052
  • wip/denittis/t20177
  • wip/denittis/t7017
  • wip/denittis/tasks239
  • wip/denittis/up_libcapsule
  • wip/diagnose-task724
  • wip/fix_archlinux_ci
  • wip/flatpak_exports_for_run_host
  • wip/gameoverlayrenderer
  • wip/input-device-diagnostic
  • wip/input-portal
  • wip/issue18
  • wip/luigipiucco/nixos
  • wip/protected/ci
  • wip/protected/scout-on-soldier
  • wip/protected/smcv-ci
  • wip/protected/smcv-merge-slr
  • wip/protected/task679
  • wip/refi64/check-steam-running
  • wip/refi64/ci-coverage-demo
  • wip/refi64/ci-coverage-expose
  • wip/refi64/mr_template_test
  • wip/refi64/openxr
  • wip/refi64/openxr-rt-pv
  • wip/refi64/openxr-socket
  • wip/refi64/openxr-sysinfo
  • wip/refi64/vk-layers
  • wip/regenerate-ldso-cache
  • wip/shorten_socket
  • wip/smcv/always-copy-runtime
  • wip/smcv/ci
  • wip/smcv/clang
  • wip/smcv/delete-in-background
  • wip/smcv/dev-lib-symlinks
  • wip/smcv/diagnose-sfl10602
  • wip/smcv/diffable
  • wip/smcv/doc
  • wip/smcv/docs
  • wip/smcv/fex-3
  • wip/smcv/gcc11
  • wip/smcv/guessed-library-arch
  • wip/smcv/inspect-library
  • wip/smcv/into-library
  • wip/smcv/ld-so-wrapper
  • wip/smcv/lxc
  • wip/smcv/no-nvidia-pkcs11
  • wip/smcv/pv-wrap-to-journal
  • wip/smcv/refcount-locks
  • wip/smcv/relocatable-bin
  • wip/smcv/spawn-really-async
  • wip/smcv/staging
  • wip/smcv/steam-portal
  • wip/smcv/task149-nonfhs
  • wip/smcv/task212-basename
  • wip/smcv/task370-debug
  • wip/smcv/test-diagnostics
  • wip/smcv/variant-init-statically
  • wip/smcv/vulkan-1-1
  • wip/sr640
  • wip/sr684
  • wip/task293-v1
  • wip/task342-3
  • wip/task466
  • wip/task466-more
  • wip/task481-test
  • wip/task488-test
  • wip/task595
  • wip/task634
  • wip/task647
  • wip/task88
  • wip/task88-pre
  • wip/vulkan_shaders
  • wip/xytovl/openxr
  • pressure-vessel-v0.20180430.0
  • pressure-vessel-v0.20180517.0
  • pressure-vessel-v0.20180517.1
  • pressure-vessel-v0.20180518.0
  • pressure-vessel-v0.20180518.1
  • pressure-vessel-v0.20190510.0
  • pressure-vessel-v0.20190815.0
  • pressure-vessel-v0.20190819.0
  • pressure-vessel-v0.20190820.0
  • pressure-vessel-v0.20190822.0
  • pressure-vessel-v0.20190823.0
  • pressure-vessel-v0.20190912.0
  • pressure-vessel-v0.20190926.0
  • pressure-vessel-v0.20190927.0
  • pressure-vessel-v0.20191112.0
  • pressure-vessel-v0.20191112.1
  • pressure-vessel-v0.20191115.0
  • pressure-vessel-v0.20191216.0
  • pressure-vessel-v0.20200108.0
  • pressure-vessel-v0.20200331.0
  • pressure-vessel-v0.20200624.0
  • pressure-vessel-v0.20200708.0
  • pressure-vessel-v0.20200709.0
  • pressure-vessel-v0.20200805.0
  • pressure-vessel-v0.20200819.0
  • pressure-vessel-v0.20200908.0
  • pressure-vessel-v0.20200909.0
  • steamrt/0.20190926.0-0+steamrt1.2
  • v0.20190717.0
  • v0.20190801.0
  • v0.20190802.0
  • v0.20190806.0
  • v0.20190816.0
  • v0.20190820.0
  • v0.20190820.1
  • v0.20190822.0
  • v0.20190909.0
  • v0.20190926.0
  • v0.20190926.1
  • v0.20191024.0
  • v0.20191120.0
  • v0.20191205.0
  • v0.20191209.0
  • v0.20200108.0
  • v0.20200109.0
  • v0.20200306.0
  • v0.20200331.0
  • v0.20200331.1
  • v0.20200415.0
  • v0.20200624.0
  • v0.20200908.0
  • v0.20200908.1
  • v0.20200914.0
  • v0.20201002.0
  • v0.20201007.0
  • v0.20201022.0
  • v0.20201124.0
  • v0.20201203.0
  • v0.20210105.0
  • v0.20210114.0
  • v0.20210126.0
  • v0.20210201.0
  • v0.20210203.0
  • v0.20210305.0
  • v0.20210312.0
  • v0.20210317.0
  • v0.20210331.0
  • v0.20210415.0
  • v0.20210430.0
  • v0.20210518.0
  • v0.20210608.0
  • v0.20210608.1
  • v0.20210608.2
  • v0.20210608.3
  • v0.20210617.0
  • v0.20210617.1
  • v0.20210630.0
  • v0.20210722.0
  • v0.20210806.0
  • v0.20210809.0
  • v0.20210809.1
  • v0.20210820.0
  • v0.20210906.0
  • v0.20210906.1
  • v0.20210906.2
  • v0.20211027.0
  • v0.20211207.0
  • v0.20220107.0
  • v0.20220111.0
  • v0.20220119.0
  • v0.20220131.0
  • v0.20220311.0
  • v0.20220315.0
  • v0.20220420.0
  • v0.20220601.0
  • v0.20220620.0
  • v0.20220624.0
  • v0.20220725.0
  • v0.20220725.1
  • v0.20220726.0
180 results

Target

Select target project
  • steamrt/steam-runtime-tools
1 result
Select Git revision
  • 0.20240321.x
  • main
  • v0.20231013.x
  • wip/case_insensitive_fs
  • wip/denittis/line_based
  • wip/denittis/portal_helper
  • wip/denittis/t17372
  • wip/denittis/t20052
  • wip/denittis/t20177
  • wip/denittis/t7017
  • wip/denittis/tasks239
  • wip/denittis/up_libcapsule
  • wip/diagnose-task724
  • wip/fix_archlinux_ci
  • wip/flatpak_exports_for_run_host
  • wip/gameoverlayrenderer
  • wip/input-device-diagnostic
  • wip/input-portal
  • wip/issue18
  • wip/luigipiucco/nixos
  • wip/protected/ci
  • wip/protected/scout-on-soldier
  • wip/protected/smcv-ci
  • wip/protected/smcv-merge-slr
  • wip/protected/task679
  • wip/refi64/check-steam-running
  • wip/refi64/ci-coverage-demo
  • wip/refi64/ci-coverage-expose
  • wip/refi64/mr_template_test
  • wip/refi64/openxr
  • wip/refi64/openxr-rt-pv
  • wip/refi64/openxr-socket
  • wip/refi64/openxr-sysinfo
  • wip/refi64/vk-layers
  • wip/regenerate-ldso-cache
  • wip/shorten_socket
  • wip/smcv/always-copy-runtime
  • wip/smcv/ci
  • wip/smcv/clang
  • wip/smcv/delete-in-background
  • wip/smcv/dev-lib-symlinks
  • wip/smcv/diagnose-sfl10602
  • wip/smcv/diffable
  • wip/smcv/doc
  • wip/smcv/docs
  • wip/smcv/fex-3
  • wip/smcv/gcc11
  • wip/smcv/guessed-library-arch
  • wip/smcv/inspect-library
  • wip/smcv/into-library
  • wip/smcv/ld-so-wrapper
  • wip/smcv/lxc
  • wip/smcv/no-nvidia-pkcs11
  • wip/smcv/pv-wrap-to-journal
  • wip/smcv/refcount-locks
  • wip/smcv/relocatable-bin
  • wip/smcv/spawn-really-async
  • wip/smcv/staging
  • wip/smcv/steam-portal
  • wip/smcv/task149-nonfhs
  • wip/smcv/task212-basename
  • wip/smcv/task370-debug
  • wip/smcv/test-diagnostics
  • wip/smcv/variant-init-statically
  • wip/smcv/vulkan-1-1
  • wip/sr640
  • wip/sr684
  • wip/task293-v1
  • wip/task342-3
  • wip/task466
  • wip/task466-more
  • wip/task481-test
  • wip/task488-test
  • wip/task595
  • wip/task634
  • wip/task647
  • wip/task88
  • wip/task88-pre
  • wip/vulkan_shaders
  • wip/xytovl/openxr
  • pressure-vessel-v0.20180430.0
  • pressure-vessel-v0.20180517.0
  • pressure-vessel-v0.20180517.1
  • pressure-vessel-v0.20180518.0
  • pressure-vessel-v0.20180518.1
  • pressure-vessel-v0.20190510.0
  • pressure-vessel-v0.20190815.0
  • pressure-vessel-v0.20190819.0
  • pressure-vessel-v0.20190820.0
  • pressure-vessel-v0.20190822.0
  • pressure-vessel-v0.20190823.0
  • pressure-vessel-v0.20190912.0
  • pressure-vessel-v0.20190926.0
  • pressure-vessel-v0.20190927.0
  • pressure-vessel-v0.20191112.0
  • pressure-vessel-v0.20191112.1
  • pressure-vessel-v0.20191115.0
  • pressure-vessel-v0.20191216.0
  • pressure-vessel-v0.20200108.0
  • pressure-vessel-v0.20200331.0
  • pressure-vessel-v0.20200624.0
  • pressure-vessel-v0.20200708.0
  • pressure-vessel-v0.20200709.0
  • pressure-vessel-v0.20200805.0
  • pressure-vessel-v0.20200819.0
  • pressure-vessel-v0.20200908.0
  • pressure-vessel-v0.20200909.0
  • steamrt/0.20190926.0-0+steamrt1.2
  • v0.20190717.0
  • v0.20190801.0
  • v0.20190802.0
  • v0.20190806.0
  • v0.20190816.0
  • v0.20190820.0
  • v0.20190820.1
  • v0.20190822.0
  • v0.20190909.0
  • v0.20190926.0
  • v0.20190926.1
  • v0.20191024.0
  • v0.20191120.0
  • v0.20191205.0
  • v0.20191209.0
  • v0.20200108.0
  • v0.20200109.0
  • v0.20200306.0
  • v0.20200331.0
  • v0.20200331.1
  • v0.20200415.0
  • v0.20200624.0
  • v0.20200908.0
  • v0.20200908.1
  • v0.20200914.0
  • v0.20201002.0
  • v0.20201007.0
  • v0.20201022.0
  • v0.20201124.0
  • v0.20201203.0
  • v0.20210105.0
  • v0.20210114.0
  • v0.20210126.0
  • v0.20210201.0
  • v0.20210203.0
  • v0.20210305.0
  • v0.20210312.0
  • v0.20210317.0
  • v0.20210331.0
  • v0.20210415.0
  • v0.20210430.0
  • v0.20210518.0
  • v0.20210608.0
  • v0.20210608.1
  • v0.20210608.2
  • v0.20210608.3
  • v0.20210617.0
  • v0.20210617.1
  • v0.20210630.0
  • v0.20210722.0
  • v0.20210806.0
  • v0.20210809.0
  • v0.20210809.1
  • v0.20210820.0
  • v0.20210906.0
  • v0.20210906.1
  • v0.20210906.2
  • v0.20211027.0
  • v0.20211207.0
  • v0.20220107.0
  • v0.20220111.0
  • v0.20220119.0
  • v0.20220131.0
  • v0.20220311.0
  • v0.20220315.0
  • v0.20220420.0
  • v0.20220601.0
  • v0.20220620.0
  • v0.20220624.0
  • v0.20220725.0
  • v0.20220725.1
  • v0.20220726.0
180 results
Show changes
...@@ -105,7 +105,7 @@ main (int argc, ...@@ -105,7 +105,7 @@ main (int argc,
VASurfaceID *surfaces = NULL; VASurfaceID *surfaces = NULL;
VAImageFormat image_format; VAImageFormat image_format;
VAProfile *profiles = NULL; VAProfile *profiles = NULL;
VAConfigID config; VAConfigID config = VA_INVALID_ID;
VAContextID context = VA_INVALID_ID; VAContextID context = VA_INVALID_ID;
VABufferID misc_buf_id = VA_INVALID_ID; VABufferID misc_buf_id = VA_INVALID_ID;
VABufferID pipeline_param_buf_id = VA_INVALID_ID; VABufferID pipeline_param_buf_id = VA_INVALID_ID;
...@@ -283,6 +283,8 @@ out: ...@@ -283,6 +283,8 @@ out:
vaDestroyContext (va_display, context); vaDestroyContext (va_display, context);
if (img.image_id != VA_INVALID_ID) if (img.image_id != VA_INVALID_ID)
vaDestroyImage (va_display, img.image_id); vaDestroyImage (va_display, img.image_id);
if (config != VA_INVALID_ID)
vaDestroyConfig(va_display, config);
if (surfaces) if (surfaces)
vaDestroySurfaces (va_display, surfaces, surfaces_count); vaDestroySurfaces (va_display, surfaces, surfaces_count);
......
...@@ -483,6 +483,7 @@ _argv_for_graphics_test (const char *helpers_path, ...@@ -483,6 +483,7 @@ _argv_for_graphics_test (const char *helpers_path,
SrtRenderingInterface rendering_interface, SrtRenderingInterface rendering_interface,
GError **error) GError **error)
{ {
const char *api;
GPtrArray *argv = NULL; GPtrArray *argv = NULL;
gchar *platformstring = NULL; gchar *platformstring = NULL;
SrtHelperFlags flags = (SRT_HELPER_FLAGS_TIME_OUT SrtHelperFlags flags = (SRT_HELPER_FLAGS_TIME_OUT
...@@ -495,55 +496,60 @@ _argv_for_graphics_test (const char *helpers_path, ...@@ -495,55 +496,60 @@ _argv_for_graphics_test (const char *helpers_path,
if (*window_system == SRT_WINDOW_SYSTEM_GLX) if (*window_system == SRT_WINDOW_SYSTEM_GLX)
{ {
if (rendering_interface == SRT_RENDERING_INTERFACE_GL) switch (rendering_interface)
{ {
platformstring = g_strdup ("glx"); case SRT_RENDERING_INTERFACE_GL:
} platformstring = g_strdup ("glx");
else break;
{
g_critical ("GLX window system only makes sense with GL " case SRT_RENDERING_INTERFACE_GLESV2:
"rendering interface, not %d", case SRT_RENDERING_INTERFACE_VULKAN:
rendering_interface); default:
g_return_val_if_reached (NULL); g_critical ("GLX window system only makes sense with GL "
"rendering interface, not %d",
rendering_interface);
g_return_val_if_reached (NULL);
break;
} }
} }
else if (*window_system == SRT_WINDOW_SYSTEM_X11) else if (*window_system == SRT_WINDOW_SYSTEM_X11)
{ {
if (rendering_interface == SRT_RENDERING_INTERFACE_GL) switch (rendering_interface)
{
platformstring = g_strdup ("glx");
*window_system = SRT_WINDOW_SYSTEM_GLX;
}
else if (rendering_interface == SRT_RENDERING_INTERFACE_GLESV2)
{
platformstring = g_strdup ("x11_egl");
*window_system = SRT_WINDOW_SYSTEM_EGL_X11;
}
else if (rendering_interface == SRT_RENDERING_INTERFACE_VULKAN)
{
// Vulkan, don't set platformstring, just set argv later.
}
else
{ {
/* should not be reached because the precondition checks case SRT_RENDERING_INTERFACE_GL:
* should have caught this */ platformstring = g_strdup ("glx");
g_return_val_if_reached (NULL); *window_system = SRT_WINDOW_SYSTEM_GLX;
break;
case SRT_RENDERING_INTERFACE_GLESV2:
platformstring = g_strdup ("x11_egl");
*window_system = SRT_WINDOW_SYSTEM_EGL_X11;
break;
case SRT_RENDERING_INTERFACE_VULKAN:
/* They don't set platformstring, just set argv later. */
break;
default:
g_return_val_if_reached (NULL);
} }
} }
else if (*window_system == SRT_WINDOW_SYSTEM_EGL_X11) else if (*window_system == SRT_WINDOW_SYSTEM_EGL_X11)
{ {
if (rendering_interface == SRT_RENDERING_INTERFACE_GL switch (rendering_interface)
|| rendering_interface == SRT_RENDERING_INTERFACE_GLESV2)
{ {
platformstring = g_strdup ("x11_egl"); case SRT_RENDERING_INTERFACE_GL:
} case SRT_RENDERING_INTERFACE_GLESV2:
else platformstring = g_strdup ("x11_egl");
{ break;
/* e.g. Vulkan (when implemented) */
g_critical ("EGL window system only makes sense with a GL-based " case SRT_RENDERING_INTERFACE_VULKAN:
"rendering interface, not %d", default:
rendering_interface); g_critical ("EGL window system only makes sense with a GL-based "
g_return_val_if_reached (NULL); "rendering interface, not %d",
rendering_interface);
g_return_val_if_reached (NULL);
break;
} }
} }
else else
...@@ -553,41 +559,39 @@ _argv_for_graphics_test (const char *helpers_path, ...@@ -553,41 +559,39 @@ _argv_for_graphics_test (const char *helpers_path,
g_return_val_if_reached (NULL); g_return_val_if_reached (NULL);
} }
if (rendering_interface == SRT_RENDERING_INTERFACE_GL switch (rendering_interface)
|| rendering_interface == SRT_RENDERING_INTERFACE_GLESV2)
{ {
const char *api; case SRT_RENDERING_INTERFACE_GL:
case SRT_RENDERING_INTERFACE_GLESV2:
argv = _srt_get_helper (helpers_path, multiarch_tuple, "wflinfo", flags,
error);
argv = _srt_get_helper (helpers_path, multiarch_tuple, "wflinfo", flags, if (argv == NULL)
error); goto out;
if (argv == NULL) if (rendering_interface == SRT_RENDERING_INTERFACE_GLESV2)
goto out; api = "gles2";
else
api = "gl";
if (rendering_interface == SRT_RENDERING_INTERFACE_GLESV2) g_ptr_array_add (argv, g_strdup_printf ("--platform=%s", platformstring));
api = "gles2"; g_ptr_array_add (argv, g_strdup_printf ("--api=%s", api));
else g_ptr_array_add (argv, g_strdup ("--format=json"));
api = "gl"; break;
g_ptr_array_add (argv, g_strdup_printf ("--platform=%s", platformstring)); case SRT_RENDERING_INTERFACE_VULKAN:
g_ptr_array_add (argv, g_strdup_printf ("--api=%s", api)); argv = _srt_get_helper (helpers_path, multiarch_tuple, "vulkaninfo",
g_ptr_array_add (argv, g_strdup ("--format=json")); flags, error);
}
else if (rendering_interface == SRT_RENDERING_INTERFACE_VULKAN)
{
argv = _srt_get_helper (helpers_path, multiarch_tuple, "vulkaninfo",
flags, error);
if (argv == NULL) if (argv == NULL)
goto out; goto out;
g_ptr_array_add (argv, g_strdup ("-j")); g_ptr_array_add (argv, g_strdup ("-j"));
} break;
else
{ default:
/* should not be reached because the precondition checks should g_return_val_if_reached (NULL);
* have caught this */ break;
g_return_val_if_reached (NULL);
} }
g_ptr_array_add (argv, NULL); g_ptr_array_add (argv, NULL);
...@@ -954,7 +958,6 @@ _srt_check_graphics (const char *helpers_path, ...@@ -954,7 +958,6 @@ _srt_check_graphics (const char *helpers_path,
const gchar *ld_preload; const gchar *ld_preload;
gchar *filtered_preload = NULL; gchar *filtered_preload = NULL;
SrtGraphicsLibraryVendor library_vendor = SRT_GRAPHICS_LIBRARY_VENDOR_UNKNOWN; SrtGraphicsLibraryVendor library_vendor = SRT_GRAPHICS_LIBRARY_VENDOR_UNKNOWN;
gboolean parse_wflinfo = (rendering_interface != SRT_RENDERING_INTERFACE_VULKAN);
g_return_val_if_fail (details_out == NULL || *details_out == NULL, SRT_GRAPHICS_ISSUES_INTERNAL_ERROR); g_return_val_if_fail (details_out == NULL || *details_out == NULL, SRT_GRAPHICS_ISSUES_INTERNAL_ERROR);
g_return_val_if_fail (((unsigned) window_system) < SRT_N_WINDOW_SYSTEMS, SRT_GRAPHICS_ISSUES_INTERNAL_ERROR); g_return_val_if_fail (((unsigned) window_system) < SRT_N_WINDOW_SYSTEMS, SRT_GRAPHICS_ISSUES_INTERNAL_ERROR);
...@@ -1008,138 +1011,148 @@ _srt_check_graphics (const char *helpers_path, ...@@ -1008,138 +1011,148 @@ _srt_check_graphics (const char *helpers_path,
&terminating_signal, &terminating_signal,
TRUE, TRUE,
SRT_GRAPHICS_ISSUES_CANNOT_LOAD); SRT_GRAPHICS_ISSUES_CANNOT_LOAD);
}
if (issues != SRT_GRAPHICS_ISSUES_NONE)
{
goto out; goto out;
} }
/* We can't use `json_from_string()` directly because we are targeting an switch (rendering_interface)
* older json-glib version */
parser = json_parser_new ();
if (!json_parser_load_from_data (parser, output, -1, &error))
{ {
g_debug ("The helper output is not a valid JSON: %s", error->message); case SRT_RENDERING_INTERFACE_GL:
issues |= SRT_GRAPHICS_ISSUES_CANNOT_LOAD; case SRT_RENDERING_INTERFACE_GLESV2:
case SRT_RENDERING_INTERFACE_VULKAN:
// Issues found, so run again with LIBGL_DEBUG=verbose set in environment /* We can't use `json_from_string()` directly because we are targeting an
issues |= _srt_run_helper (&my_environ, * older json-glib version */
&output, parser = json_parser_new ();
&child_stderr,
argv, if (!json_parser_load_from_data (parser, output, -1, &error))
&wait_status, {
&exit_status, g_debug ("The helper output is not a valid JSON: %s", error->message);
&terminating_signal, issues |= SRT_GRAPHICS_ISSUES_CANNOT_LOAD;
TRUE,
SRT_GRAPHICS_ISSUES_CANNOT_LOAD); // Issues found, so run again with LIBGL_DEBUG=verbose set in environment
issues |= _srt_run_helper (&my_environ,
&output,
&child_stderr,
argv,
&wait_status,
&exit_status,
&terminating_signal,
TRUE,
SRT_GRAPHICS_ISSUES_CANNOT_LOAD);
goto out;
}
break;
goto out; default:
g_return_val_if_reached (SRT_GRAPHICS_ISSUES_INTERNAL_ERROR);
} }
/* Process json output */ switch (rendering_interface)
if (parse_wflinfo)
{ {
issues |= _srt_process_wflinfo (parser, &version_string, &renderer_string); case SRT_RENDERING_INTERFACE_GL:
case SRT_RENDERING_INTERFACE_GLESV2:
issues |= _srt_process_wflinfo (parser, &version_string, &renderer_string);
if (issues != SRT_GRAPHICS_ISSUES_NONE) if (issues != SRT_GRAPHICS_ISSUES_NONE)
{ {
// Issues found, so run again with LIBGL_DEBUG=verbose set in environment // Issues found, so run again with LIBGL_DEBUG=verbose set in environment
issues |= _srt_run_helper (&my_environ, issues |= _srt_run_helper (&my_environ,
&output, &output,
&child_stderr, &child_stderr,
argv, argv,
&wait_status, &wait_status,
&exit_status, &exit_status,
&terminating_signal, &terminating_signal,
TRUE, TRUE,
SRT_GRAPHICS_ISSUES_CANNOT_LOAD); SRT_GRAPHICS_ISSUES_CANNOT_LOAD);
} }
if (rendering_interface == SRT_RENDERING_INTERFACE_GL && if (rendering_interface == SRT_RENDERING_INTERFACE_GL &&
window_system == SRT_WINDOW_SYSTEM_GLX) window_system == SRT_WINDOW_SYSTEM_GLX)
{ {
/* Now perform *-check-gl drawing test */ /* Now perform *-check-gl drawing test */
g_ptr_array_unref (argv); g_ptr_array_unref (argv);
g_clear_pointer (&output, g_free); g_clear_pointer (&output, g_free);
argv = _argv_for_check_gl (helpers_path, argv = _argv_for_check_gl (helpers_path,
test_flags, test_flags,
multiarch_tuple, multiarch_tuple,
&error); &error);
if (argv == NULL) if (argv == NULL)
{ {
issues |= SRT_GRAPHICS_ISSUES_CANNOT_DRAW; issues |= SRT_GRAPHICS_ISSUES_CANNOT_DRAW;
/* Put the error message in the 'messages' */ /* Put the error message in the 'messages' */
child_stderr2 = g_strdup (error->message); child_stderr2 = g_strdup (error->message);
goto out; goto out;
} }
/* Now run and report exit code/messages if failure */ /* Now run and report exit code/messages if failure */
issues |= _srt_run_helper (&my_environ, issues |= _srt_run_helper (&my_environ,
&output, &output,
&child_stderr2, &child_stderr2,
argv, argv,
&wait_status, &wait_status,
&exit_status, &exit_status,
&terminating_signal, &terminating_signal,
FALSE, FALSE,
SRT_GRAPHICS_ISSUES_CANNOT_DRAW); SRT_GRAPHICS_ISSUES_CANNOT_DRAW);
if (issues != SRT_GRAPHICS_ISSUES_NONE) if (issues != SRT_GRAPHICS_ISSUES_NONE)
{ {
// Issues found, so run again with LIBGL_DEBUG=verbose set in environment // Issues found, so run again with LIBGL_DEBUG=verbose set in environment
issues |= _srt_run_helper (&my_environ, issues |= _srt_run_helper (&my_environ,
&output, &output,
&child_stderr2, &child_stderr2,
argv, argv,
&wait_status, &wait_status,
&exit_status, &exit_status,
&terminating_signal, &terminating_signal,
TRUE, TRUE,
SRT_GRAPHICS_ISSUES_CANNOT_DRAW); SRT_GRAPHICS_ISSUES_CANNOT_DRAW);
} }
} }
} break;
else
{
issues |= _srt_process_vulkaninfo (parser, &new_version_string, &renderer_string);
if (new_version_string != NULL)
{
version_string = new_version_string;
}
/* Now perform *-check-vulkan drawing test */ case SRT_RENDERING_INTERFACE_VULKAN:
g_ptr_array_unref (argv); issues |= _srt_process_vulkaninfo (parser, &new_version_string, &renderer_string);
g_clear_pointer (&output, g_free); if (new_version_string != NULL)
{
version_string = new_version_string;
}
argv = _argv_for_check_vulkan (helpers_path, /* Now perform *-check-vulkan drawing test */
test_flags, g_ptr_array_unref (argv);
multiarch_tuple, g_clear_pointer (&output, g_free);
&error);
if (argv == NULL) argv = _argv_for_check_vulkan (helpers_path,
{ test_flags,
issues |= SRT_GRAPHICS_ISSUES_CANNOT_DRAW; multiarch_tuple,
/* Put the error message in the 'messages' */ &error);
child_stderr2 = g_strdup (error->message);
goto out;
}
/* Now run and report exit code/messages if failure */ if (argv == NULL)
issues |= _srt_run_helper (&my_environ, {
&output, issues |= SRT_GRAPHICS_ISSUES_CANNOT_DRAW;
&child_stderr2, /* Put the error message in the 'messages' */
argv, child_stderr2 = g_strdup (error->message);
&wait_status, goto out;
&exit_status, }
&terminating_signal,
FALSE,
SRT_GRAPHICS_ISSUES_CANNOT_DRAW);
/* Now run and report exit code/messages if failure */
issues |= _srt_run_helper (&my_environ,
&output,
&child_stderr2,
argv,
&wait_status,
&exit_status,
&terminating_signal,
FALSE,
SRT_GRAPHICS_ISSUES_CANNOT_DRAW);
break;
default:
g_return_val_if_reached (SRT_GRAPHICS_ISSUES_INTERNAL_ERROR);
} }
out: out:
......