|
|
@ -376,13 +376,13 @@ PipelineCache::PipelineCache(Tegra::MaxwellDeviceMemoryManager& device_memory_, |
|
|
driver_id == VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA, |
|
|
driver_id == VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA, |
|
|
|
|
|
|
|
|
.has_broken_spirv_clamp = driver_id == VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS, |
|
|
.has_broken_spirv_clamp = driver_id == VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS, |
|
|
.has_broken_spirv_position_input = driver_id == VK_DRIVER_ID_QUALCOMM_PROPRIETARY, |
|
|
|
|
|
|
|
|
.has_broken_spirv_position_input = device.IsQualcomm(), |
|
|
.has_broken_unsigned_image_offsets = false, |
|
|
.has_broken_unsigned_image_offsets = false, |
|
|
.has_broken_signed_operations = false, |
|
|
.has_broken_signed_operations = false, |
|
|
.has_broken_fp16_float_controls = driver_id == VK_DRIVER_ID_NVIDIA_PROPRIETARY, |
|
|
.has_broken_fp16_float_controls = driver_id == VK_DRIVER_ID_NVIDIA_PROPRIETARY, |
|
|
.ignore_nan_fp_comparisons = false, |
|
|
.ignore_nan_fp_comparisons = false, |
|
|
.has_broken_spirv_subgroup_mask_vector_extract_dynamic = |
|
|
.has_broken_spirv_subgroup_mask_vector_extract_dynamic = |
|
|
driver_id == VK_DRIVER_ID_QUALCOMM_PROPRIETARY, |
|
|
|
|
|
|
|
|
device.IsQualcomm(), |
|
|
.has_broken_robust = |
|
|
.has_broken_robust = |
|
|
device.IsNvidia() && device.GetNvidiaArch() <= NvidiaArchitecture::Arch_Pascal, |
|
|
device.IsNvidia() && device.GetNvidiaArch() <= NvidiaArchitecture::Arch_Pascal, |
|
|
.min_ssbo_alignment = device.GetStorageBufferAlignment(), |
|
|
.min_ssbo_alignment = device.GetStorageBufferAlignment(), |
|
|
@ -449,7 +449,7 @@ GraphicsPipeline* PipelineCache::CurrentGraphicsPipeline() { |
|
|
// Decide per-pipeline FTZ (flush-to-zero) usage based on device float-controls
|
|
|
// Decide per-pipeline FTZ (flush-to-zero) usage based on device float-controls
|
|
|
// properties and vendor-specific workarounds, going initially for Qualcomm drivers
|
|
|
// properties and vendor-specific workarounds, going initially for Qualcomm drivers
|
|
|
const bool force_extensions = Settings::values.force_unsupported_extensions.GetValue(); |
|
|
const bool force_extensions = Settings::values.force_unsupported_extensions.GetValue(); |
|
|
const bool is_qualcomm = driver_id == VK_DRIVER_ID_QUALCOMM_PROPRIETARY; |
|
|
|
|
|
|
|
|
const bool is_qualcomm = device.IsQualcomm(); |
|
|
const auto& float_control = device.FloatControlProperties(); |
|
|
const auto& float_control = device.FloatControlProperties(); |
|
|
const bool has_khr_float_controls = device.IsKhrShaderFloatControlsSupported(); |
|
|
const bool has_khr_float_controls = device.IsKhrShaderFloatControlsSupported(); |
|
|
const bool denorm_indep_all = float_control.denormBehaviorIndependence == VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL; |
|
|
const bool denorm_indep_all = float_control.denormBehaviorIndependence == VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL; |
|
|
|