vulkan_device: Enable shaderStorageImageMultisample conditionally
Fix Vulkan initialization on ANV.
This commit is contained in:
parent
93f7719eed
commit
ba2ea7eeac
|
@ -256,7 +256,7 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR
|
||||||
.shaderTessellationAndGeometryPointSize = false,
|
.shaderTessellationAndGeometryPointSize = false,
|
||||||
.shaderImageGatherExtended = true,
|
.shaderImageGatherExtended = true,
|
||||||
.shaderStorageImageExtendedFormats = false,
|
.shaderStorageImageExtendedFormats = false,
|
||||||
.shaderStorageImageMultisample = true,
|
.shaderStorageImageMultisample = is_shader_storage_image_multisample,
|
||||||
.shaderStorageImageReadWithoutFormat = is_formatless_image_load_supported,
|
.shaderStorageImageReadWithoutFormat = is_formatless_image_load_supported,
|
||||||
.shaderStorageImageWriteWithoutFormat = true,
|
.shaderStorageImageWriteWithoutFormat = true,
|
||||||
.shaderUniformBufferArrayDynamicIndexing = false,
|
.shaderUniformBufferArrayDynamicIndexing = false,
|
||||||
|
@ -803,6 +803,7 @@ void Device::SetupFamilies(VkSurfaceKHR surface) {
|
||||||
void Device::SetupFeatures() {
|
void Device::SetupFeatures() {
|
||||||
const auto supported_features{physical.GetFeatures()};
|
const auto supported_features{physical.GetFeatures()};
|
||||||
is_formatless_image_load_supported = supported_features.shaderStorageImageReadWithoutFormat;
|
is_formatless_image_load_supported = supported_features.shaderStorageImageReadWithoutFormat;
|
||||||
|
is_shader_storage_image_multisample = supported_features.shaderStorageImageMultisample;
|
||||||
is_blit_depth_stencil_supported = TestDepthStencilBlits();
|
is_blit_depth_stencil_supported = TestDepthStencilBlits();
|
||||||
is_optimal_astc_supported = IsOptimalAstcSupported(supported_features);
|
is_optimal_astc_supported = IsOptimalAstcSupported(supported_features);
|
||||||
}
|
}
|
||||||
|
|
|
@ -272,23 +272,24 @@ private:
|
||||||
bool is_optimal_astc_supported{}; ///< Support for native ASTC.
|
bool is_optimal_astc_supported{}; ///< Support for native ASTC.
|
||||||
bool is_float16_supported{}; ///< Support for float16 arithmetics.
|
bool is_float16_supported{}; ///< Support for float16 arithmetics.
|
||||||
bool is_warp_potentially_bigger{}; ///< Host warp size can be bigger than guest.
|
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_formatless_image_load_supported{}; ///< Support for shader image read without format.
|
||||||
bool is_blit_depth_stencil_supported{}; ///< Support for blitting from and to depth stencil.
|
bool is_shader_storage_image_multisample{}; ///< Support for image operations on MSAA images.
|
||||||
bool nv_viewport_swizzle{}; ///< Support for VK_NV_viewport_swizzle.
|
bool is_blit_depth_stencil_supported{}; ///< Support for blitting from and to depth stencil.
|
||||||
bool khr_uniform_buffer_standard_layout{}; ///< Support for std430 on UBOs.
|
bool nv_viewport_swizzle{}; ///< Support for VK_NV_viewport_swizzle.
|
||||||
bool ext_index_type_uint8{}; ///< Support for VK_EXT_index_type_uint8.
|
bool khr_uniform_buffer_standard_layout{}; ///< Support for std430 on UBOs.
|
||||||
bool ext_sampler_filter_minmax{}; ///< Support for VK_EXT_sampler_filter_minmax.
|
bool ext_index_type_uint8{}; ///< Support for VK_EXT_index_type_uint8.
|
||||||
bool ext_depth_range_unrestricted{}; ///< Support for VK_EXT_depth_range_unrestricted.
|
bool ext_sampler_filter_minmax{}; ///< Support for VK_EXT_sampler_filter_minmax.
|
||||||
bool ext_shader_viewport_index_layer{}; ///< Support for VK_EXT_shader_viewport_index_layer.
|
bool ext_depth_range_unrestricted{}; ///< Support for VK_EXT_depth_range_unrestricted.
|
||||||
bool ext_tooling_info{}; ///< Support for VK_EXT_tooling_info.
|
bool ext_shader_viewport_index_layer{}; ///< Support for VK_EXT_shader_viewport_index_layer.
|
||||||
bool ext_transform_feedback{}; ///< Support for VK_EXT_transform_feedback.
|
bool ext_tooling_info{}; ///< Support for VK_EXT_tooling_info.
|
||||||
bool ext_custom_border_color{}; ///< Support for VK_EXT_custom_border_color.
|
bool ext_transform_feedback{}; ///< Support for VK_EXT_transform_feedback.
|
||||||
bool ext_extended_dynamic_state{}; ///< Support for VK_EXT_extended_dynamic_state.
|
bool ext_custom_border_color{}; ///< Support for VK_EXT_custom_border_color.
|
||||||
bool ext_robustness2{}; ///< Support for VK_EXT_robustness2.
|
bool ext_extended_dynamic_state{}; ///< Support for VK_EXT_extended_dynamic_state.
|
||||||
bool ext_shader_stencil_export{}; ///< Support for VK_EXT_shader_stencil_export.
|
bool ext_robustness2{}; ///< Support for VK_EXT_robustness2.
|
||||||
bool nv_device_diagnostics_config{}; ///< Support for VK_NV_device_diagnostics_config.
|
bool ext_shader_stencil_export{}; ///< Support for VK_EXT_shader_stencil_export.
|
||||||
bool has_renderdoc{}; ///< Has RenderDoc attached
|
bool nv_device_diagnostics_config{}; ///< Support for VK_NV_device_diagnostics_config.
|
||||||
bool has_nsight_graphics{}; ///< Has Nsight Graphics attached
|
bool has_renderdoc{}; ///< Has RenderDoc attached
|
||||||
|
bool has_nsight_graphics{}; ///< Has Nsight Graphics attached
|
||||||
|
|
||||||
// Asynchronous Graphics Pipeline setting
|
// Asynchronous Graphics Pipeline setting
|
||||||
bool use_asynchronous_shaders{}; ///< Setting to use asynchronous shaders/graphics pipeline
|
bool use_asynchronous_shaders{}; ///< Setting to use asynchronous shaders/graphics pipeline
|
||||||
|
|
Reference in New Issue