mirror of
https://git.eden-emu.dev/eden-emu/eden
synced 2026-04-28 00:29:01 +02:00
[vk, qcom] Adjusting unused features
This commit is contained in:
parent
6aa09b6b9e
commit
eec090f76b
6 changed files with 131 additions and 61 deletions
|
|
@ -438,6 +438,10 @@ PipelineCache::PipelineCache(Tegra::MaxwellDeviceMemoryManager& device_memory_,
|
|||
.support_fp64_signed_zero_nan_preserve = float_controls_supported &&
|
||||
float_control.shaderSignedZeroInfNanPreserveFloat64 != VK_FALSE,
|
||||
.support_explicit_workgroup_layout = device.IsKhrWorkgroupMemoryExplicitLayoutSupported(),
|
||||
.support_explicit_workgroup_layout_u8 =
|
||||
device.SupportsWorkgroupExplicitLayout8Bit(),
|
||||
.support_explicit_workgroup_layout_u16 =
|
||||
device.SupportsWorkgroupExplicitLayout16Bit(),
|
||||
.support_vote = device.IsSubgroupFeatureSupported(VK_SUBGROUP_FEATURE_VOTE_BIT),
|
||||
.support_viewport_index_layer_non_geometry =
|
||||
device.IsExtShaderViewportIndexLayerSupported(),
|
||||
|
|
|
|||
|
|
@ -1449,12 +1449,22 @@ void Device::RemoveUnsuitableExtensions() {
|
|||
}
|
||||
|
||||
// VK_KHR_workgroup_memory_explicit_layout
|
||||
extensions.workgroup_memory_explicit_layout =
|
||||
features.features.shaderInt16 &&
|
||||
workgroup_memory_explicit_layout_caps.supports_8bit =
|
||||
features.workgroup_memory_explicit_layout.workgroupMemoryExplicitLayout8BitAccess;
|
||||
workgroup_memory_explicit_layout_caps.supports_16bit =
|
||||
features.workgroup_memory_explicit_layout.workgroupMemoryExplicitLayout16BitAccess;
|
||||
const bool has_workgroup_base =
|
||||
features.workgroup_memory_explicit_layout.workgroupMemoryExplicitLayout &&
|
||||
features.workgroup_memory_explicit_layout.workgroupMemoryExplicitLayout8BitAccess &&
|
||||
features.workgroup_memory_explicit_layout.workgroupMemoryExplicitLayout16BitAccess &&
|
||||
features.workgroup_memory_explicit_layout.workgroupMemoryExplicitLayoutScalarBlockLayout;
|
||||
if (is_qualcomm) {
|
||||
extensions.workgroup_memory_explicit_layout =
|
||||
features.features.shaderInt16 && has_workgroup_base;
|
||||
} else {
|
||||
extensions.workgroup_memory_explicit_layout =
|
||||
features.features.shaderInt16 && has_workgroup_base &&
|
||||
workgroup_memory_explicit_layout_caps.supports_8bit &&
|
||||
workgroup_memory_explicit_layout_caps.supports_16bit;
|
||||
}
|
||||
RemoveExtensionFeatureIfUnsuitable(extensions.workgroup_memory_explicit_layout,
|
||||
features.workgroup_memory_explicit_layout,
|
||||
VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME);
|
||||
|
|
|
|||
|
|
@ -499,6 +499,16 @@ public:
|
|||
return extensions.workgroup_memory_explicit_layout;
|
||||
}
|
||||
|
||||
/// Returns true if explicit workgroup layout supports 8-bit access.
|
||||
bool SupportsWorkgroupExplicitLayout8Bit() const {
|
||||
return workgroup_memory_explicit_layout_caps.supports_8bit;
|
||||
}
|
||||
|
||||
/// Returns true if explicit workgroup layout supports 16-bit access.
|
||||
bool SupportsWorkgroupExplicitLayout16Bit() const {
|
||||
return workgroup_memory_explicit_layout_caps.supports_16bit;
|
||||
}
|
||||
|
||||
/// Returns true if the device supports VK_KHR_image_format_list.
|
||||
bool IsKhrImageFormatListSupported() const {
|
||||
return extensions.image_format_list || instance_version >= VK_API_VERSION_1_2;
|
||||
|
|
@ -1062,6 +1072,13 @@ private:
|
|||
Features features{};
|
||||
Properties properties{};
|
||||
|
||||
struct WorkgroupExplicitLayoutCaps {
|
||||
bool supports_8bit{};
|
||||
bool supports_16bit{};
|
||||
};
|
||||
|
||||
WorkgroupExplicitLayoutCaps workgroup_memory_explicit_layout_caps{};
|
||||
|
||||
VkPhysicalDeviceFeatures2 features2{};
|
||||
VkPhysicalDeviceProperties2 properties2{};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue