diff --git a/src/xrt/auxiliary/vk/vk_bundle_init.c b/src/xrt/auxiliary/vk/vk_bundle_init.c index f2bf1db38..d5162cd76 100644 --- a/src/xrt/auxiliary/vk/vk_bundle_init.c +++ b/src/xrt/auxiliary/vk/vk_bundle_init.c @@ -1045,6 +1045,8 @@ filter_device_features(struct vk_bundle *vk, #ifdef VK_KHR_timeline_semaphore CHECK(timeline_semaphore, timeline_semaphore_info.timelineSemaphore); #endif + CHECK(shader_image_gather_extended, physical_device_features.features.shaderImageGatherExtended); + CHECK(shader_storage_image_write_without_format, physical_device_features.features.shaderStorageImageWriteWithoutFormat); @@ -1054,9 +1056,11 @@ filter_device_features(struct vk_bundle *vk, VK_DEBUG(vk, "Features:" "\n\tnull_descriptor: %i" + "\n\tshader_image_gather_extended: %i" "\n\tshader_storage_image_write_without_format: %i" "\n\ttimeline_semaphore: %i", // device_features->null_descriptor, // + device_features->shader_image_gather_extended, // device_features->shader_storage_image_write_without_format, // device_features->timeline_semaphore); } @@ -1176,6 +1180,7 @@ vk_create_device(struct vk_bundle *vk, #endif VkPhysicalDeviceFeatures enabled_features = { + .shaderImageGatherExtended = device_features.shader_image_gather_extended, .shaderStorageImageWriteWithoutFormat = device_features.shader_storage_image_write_without_format, }; diff --git a/src/xrt/auxiliary/vk/vk_helpers.h b/src/xrt/auxiliary/vk/vk_helpers.h index 0733c2e3b..b49e0427b 100644 --- a/src/xrt/auxiliary/vk/vk_helpers.h +++ b/src/xrt/auxiliary/vk/vk_helpers.h @@ -836,6 +836,7 @@ vk_select_physical_device(struct vk_bundle *vk, int forced_index); */ struct vk_device_features { + bool shader_image_gather_extended; bool shader_storage_image_write_without_format; bool null_descriptor; bool timeline_semaphore; diff --git a/src/xrt/compositor/util/comp_vulkan.c b/src/xrt/compositor/util/comp_vulkan.c index dc5824c25..091ffeb95 100644 --- a/src/xrt/compositor/util/comp_vulkan.c +++ b/src/xrt/compositor/util/comp_vulkan.c @@ -274,6 +274,7 @@ create_device(struct vk_bundle *vk, const struct comp_vulkan_arguments *vk_args) const bool only_compute_queue = vk_args->only_compute_queue; struct vk_device_features device_features = { + .shader_image_gather_extended = true, .shader_storage_image_write_without_format = true, .null_descriptor = only_compute_queue, .timeline_semaphore = vk_args->timeline_semaphore,