vulkan: Conditionally use shaderInt16
Add support for Polaris AMD devices.
This commit is contained in:
parent
77372443c3
commit
1148a4eac7
|
@ -249,7 +249,7 @@ PipelineCache::PipelineCache(RasterizerVulkan& rasterizer_, Tegra::Engines::Maxw
|
||||||
.unified_descriptor_binding = true,
|
.unified_descriptor_binding = true,
|
||||||
.support_descriptor_aliasing = true,
|
.support_descriptor_aliasing = true,
|
||||||
.support_int8 = true,
|
.support_int8 = true,
|
||||||
.support_int16 = true,
|
.support_int16 = device.IsShaderInt16Supported(),
|
||||||
.support_vertex_instance_id = false,
|
.support_vertex_instance_id = false,
|
||||||
.support_float_controls = true,
|
.support_float_controls = true,
|
||||||
.support_separate_denorm_behavior = float_control.denormBehaviorIndependence ==
|
.support_separate_denorm_behavior = float_control.denormBehaviorIndependence ==
|
||||||
|
|
|
@ -253,7 +253,7 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR
|
||||||
.shaderCullDistance = true,
|
.shaderCullDistance = true,
|
||||||
.shaderFloat64 = is_shader_float64_supported,
|
.shaderFloat64 = is_shader_float64_supported,
|
||||||
.shaderInt64 = is_shader_int64_supported,
|
.shaderInt64 = is_shader_int64_supported,
|
||||||
.shaderInt16 = true,
|
.shaderInt16 = is_shader_int16_supported,
|
||||||
.shaderResourceResidency = false,
|
.shaderResourceResidency = false,
|
||||||
.shaderResourceMinLod = false,
|
.shaderResourceMinLod = false,
|
||||||
.sparseBinding = false,
|
.sparseBinding = false,
|
||||||
|
@ -912,6 +912,7 @@ void Device::SetupFeatures() {
|
||||||
is_formatless_image_load_supported = features.shaderStorageImageReadWithoutFormat;
|
is_formatless_image_load_supported = features.shaderStorageImageReadWithoutFormat;
|
||||||
is_shader_float64_supported = features.shaderFloat64;
|
is_shader_float64_supported = features.shaderFloat64;
|
||||||
is_shader_int64_supported = features.shaderInt64;
|
is_shader_int64_supported = features.shaderInt64;
|
||||||
|
is_shader_int16_supported = features.shaderInt16;
|
||||||
is_shader_storage_image_multisample = features.shaderStorageImageMultisample;
|
is_shader_storage_image_multisample = features.shaderStorageImageMultisample;
|
||||||
is_blit_depth_stencil_supported = TestDepthStencilBlits();
|
is_blit_depth_stencil_supported = TestDepthStencilBlits();
|
||||||
is_optimal_astc_supported = IsOptimalAstcSupported(features);
|
is_optimal_astc_supported = IsOptimalAstcSupported(features);
|
||||||
|
|
|
@ -159,6 +159,11 @@ public:
|
||||||
return is_formatless_image_load_supported;
|
return is_formatless_image_load_supported;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Returns true if shader int16 is supported.
|
||||||
|
bool IsShaderInt16Supported() const {
|
||||||
|
return is_shader_int16_supported;
|
||||||
|
}
|
||||||
|
|
||||||
// Returns true if depth bounds is supported.
|
// Returns true if depth bounds is supported.
|
||||||
bool IsDepthBoundsSupported() const {
|
bool IsDepthBoundsSupported() const {
|
||||||
return is_depth_bounds_supported;
|
return is_depth_bounds_supported;
|
||||||
|
@ -322,6 +327,7 @@ private:
|
||||||
bool is_depth_bounds_supported{}; ///< Support for depth bounds.
|
bool is_depth_bounds_supported{}; ///< Support for depth bounds.
|
||||||
bool is_shader_float64_supported{}; ///< Support for float64.
|
bool is_shader_float64_supported{}; ///< Support for float64.
|
||||||
bool is_shader_int64_supported{}; ///< Support for int64.
|
bool is_shader_int64_supported{}; ///< Support for int64.
|
||||||
|
bool is_shader_int16_supported{}; ///< Support for int16.
|
||||||
bool is_shader_storage_image_multisample{}; ///< Support for image operations on MSAA images.
|
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 is_blit_depth_stencil_supported{}; ///< Support for blitting from and to depth stencil.
|
||||||
bool nv_viewport_swizzle{}; ///< Support for VK_NV_viewport_swizzle.
|
bool nv_viewport_swizzle{}; ///< Support for VK_NV_viewport_swizzle.
|
||||||
|
|
Reference in New Issue