vulkan_device: Enable float64 and int64 conditionally

Add Intel Xe support.
master
ReinUsesLisp 2021-05-29 02:53:39 +07:00 committed by ameerj
parent d093522fac
commit 99f2c31b64
2 changed files with 6 additions and 2 deletions

@ -251,8 +251,8 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR
.shaderStorageImageArrayDynamicIndexing = false,
.shaderClipDistance = true,
.shaderCullDistance = true,
.shaderFloat64 = true,
.shaderInt64 = true,
.shaderFloat64 = is_shader_float64_supported,
.shaderInt64 = is_shader_int64_supported,
.shaderInt16 = true,
.shaderResourceResidency = false,
.shaderResourceMinLod = false,
@ -909,6 +909,8 @@ void Device::SetupFamilies(VkSurfaceKHR surface) {
void Device::SetupFeatures() {
const VkPhysicalDeviceFeatures features{physical.GetFeatures()};
is_formatless_image_load_supported = features.shaderStorageImageReadWithoutFormat;
is_shader_float64_supported = features.shaderFloat64;
is_shader_int64_supported = features.shaderInt64;
is_shader_storage_image_multisample = features.shaderStorageImageMultisample;
is_blit_depth_stencil_supported = TestDepthStencilBlits();
is_optimal_astc_supported = IsOptimalAstcSupported(features);

@ -314,6 +314,8 @@ private:
bool is_float16_supported{}; ///< Support for float16 arithmetics.
bool is_warp_potentially_bigger{}; ///< Host warp size can be bigger than guest.
bool is_formatless_image_load_supported{}; ///< Support for shader image read without format.
bool is_shader_float64_supported{}; ///< Support for float64.
bool is_shader_int64_supported{}; ///< Support for int64.
bool is_shader_storage_image_multisample{}; ///< Support for image operations on MSAA images.
bool is_blit_depth_stencil_supported{}; ///< Support for blitting from and to depth stencil.
bool nv_viewport_swizzle{}; ///< Support for VK_NV_viewport_swizzle.