WIP: attempt 1 #2710

Draft
Ribbit wants to merge 3 commits from Ribbit/ribbitvulkanadditions:8eattempt into master
2 changed files with 18 additions and 2 deletions

View file

@ -324,9 +324,11 @@ PipelineCache::PipelineCache(Tegra::MaxwellDeviceMemoryManager& device_memory_,
.support_descriptor_aliasing = device.IsDescriptorAliasingSupported(),
.support_int8 = device.IsInt8Supported(),
.support_int16 = device.IsShaderInt16Supported(),
.support_int64 = device.IsShaderInt64Supported(),
.support_int64 = device.IsShaderInt64Supported() &&
driver_id != VK_DRIVER_ID_QUALCOMM_PROPRIETARY,
.support_vertex_instance_id = false,
.support_float_controls = device.IsKhrShaderFloatControlsSupported(),
.support_float_controls = device.IsKhrShaderFloatControlsSupported() &&
driver_id != VK_DRIVER_ID_QUALCOMM_PROPRIETARY,
.support_separate_denorm_behavior =
float_control.denormBehaviorIndependence == VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL,
.support_separate_rounding_mode =

View file

@ -506,6 +506,20 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR
"Qualcomm drivers have a slow VK_KHR_push_descriptor implementation");
//RemoveExtension(extensions.push_descriptor, VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME);
if (extensions.shader_float_controls) {
LOG_WARNING(Render_Vulkan,
"Qualcomm drivers have broken VK_KHR_shader_float_controls; disabling it");
RemoveExtension(extensions.shader_float_controls,
VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME);
}
if (extensions.shader_atomic_int64) {
LOG_WARNING(Render_Vulkan,
"Qualcomm drivers have broken VK_KHR_shader_atomic_int64; disabling it");
RemoveExtensionFeature(extensions.shader_atomic_int64, features.shader_atomic_int64,
VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME);
}
#if defined(ANDROID) && defined(ARCHITECTURE_arm64)
// Patch the driver to enable BCn textures.
const auto major = (properties.properties.driverVersion >> 24) << 2;