diff --git a/helpers/check-vulkan.c b/helpers/check-vulkan.c
index 598148abbcbc935c63bea00a10e258082c716bea..77ea9e6c0a71a39ab0551d0d177f20d5352c01dd 100644
--- a/helpers/check-vulkan.c
+++ b/helpers/check-vulkan.c
@@ -664,15 +664,19 @@ create_shader_module (VkDevice device,
                       VkShaderModule *shader_module,
                       GError **error)
 {
-  g_autofree gchar *shader_data = NULL;
+  const gchar *shader_data = NULL;
+  g_autoptr(GBytes) bytes = NULL;
   gsize size;
 
   g_return_val_if_fail (filename != NULL, FALSE);
   g_return_val_if_fail (shader_module != NULL, FALSE);
 
-  if (!g_file_get_contents (filename, &shader_data, &size, error))
+  bytes = g_resources_lookup_data (filename, G_RESOURCE_LOOKUP_FLAGS_NONE, error);
+  if (bytes == NULL)
     return FALSE;
 
+  shader_data = g_bytes_get_data (bytes, &size);
+
   VkShaderModuleCreateInfo create_info =
   {
     .sType = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO,
@@ -692,16 +696,9 @@ create_graphics_pipeline (VulkanPhysicalDeviceProperties *dev_props,
 {
   g_autofree gchar *vert_path = NULL;
   g_autofree gchar *frag_path = NULL;
-  g_autofree gchar *base_path = NULL;
-
-  g_return_val_if_fail (dev_props != NULL, FALSE);
-
-  base_path = g_strdup (getenv ("SRT_DATA_PATH"));
-  if (base_path == NULL)
-    base_path = g_path_get_dirname (argv0);
 
-  vert_path = g_build_filename (base_path, "shaders", "/vert.spv", NULL);
-  frag_path = g_build_filename (base_path, "shaders", "/frag.spv", NULL);
+  vert_path = g_build_filename ("/com", "valvesoftware", "steam-runtime-tools", "shader", "vert.spv", NULL);
+  frag_path = g_build_filename ("/com", "valvesoftware", "steam-runtime-tools", "shader", "frag.spv", NULL);
 
   VkShaderModule vert_shader_module;
   VkShaderModule frag_shader_module;
diff --git a/helpers/meson.build b/helpers/meson.build
index 0034412f4816194bba6042eec2128f545687f889..34c3a87f5f127f30da6922b05a29ac0fd684c239 100644
--- a/helpers/meson.build
+++ b/helpers/meson.build
@@ -76,21 +76,10 @@ executable(
   # a game with no special linking would be able to use VDPAU.
 )
 
-executable(
-  multiarch + '-check-vulkan',
-  'check-vulkan.c',
-  dependencies : [glib, gio_unix, libglnx_dep, libsteamrt_dep, json_glib, vulkan, xcb],
-  include_directories : project_include_dirs,
-  install : true,
-  install_dir : pkglibexecdir,
-  # Use the adjacent libsteam-runtime-tools and json-glib, ignoring
-  # LD_LIBRARY_PATH even if set
-  build_rpath : pkglibexec_rpath,
-  install_rpath : pkglibexec_rpath,
-)
+shaders = []
 
 foreach shader : ['frag', 'vert']
-  custom_target(
+  shaders += custom_target(
     shader + '.spv',
     build_by_default : true,
     command : [
@@ -101,16 +90,31 @@ foreach shader : ['frag', 'vert']
     ],
     input : 'shader.' + shader,
     output : shader + '.spv',
-    install : true,
-    install_dir : join_paths(
-      get_option('prefix'),
-      get_option('libexecdir'),
-      'steam-runtime-tools-' + api_major,
-      'shaders',
-    )
   )
 endforeach
 
+shader_resources = gnome.compile_resources(
+  'shader-resources',
+  'shader.gresource.xml',
+  source_dir: meson.current_build_dir(),
+  dependencies: shaders,
+  c_name: 'shader',
+)
+
+executable(
+  multiarch + '-check-vulkan',
+  'check-vulkan.c',
+  shader_resources,
+  dependencies : [glib, gio_unix, libglnx_dep, libsteamrt_dep, json_glib, vulkan, xcb],
+  include_directories : project_include_dirs,
+  install : true,
+  install_dir : pkglibexecdir,
+  # Use the adjacent libsteam-runtime-tools and json-glib, ignoring
+  # LD_LIBRARY_PATH even if set
+  build_rpath : pkglibexec_rpath,
+  install_rpath : pkglibexec_rpath,
+)
+
 executable(
   multiarch + '-check-gl',
   'check-gl.cpp',
diff --git a/helpers/shader.gresource.xml b/helpers/shader.gresource.xml
new file mode 100644
index 0000000000000000000000000000000000000000..8b94db30464b4cf55068973a0a90f8caa33443ca
--- /dev/null
+++ b/helpers/shader.gresource.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gresources>
+  <gresource prefix="/com/valvesoftware/steam-runtime-tools/shader">
+    <file>frag.spv</file>
+    <file>vert.spv</file>
+  </gresource>
+</gresources>