mirror of
https://git.eden-emu.dev/eden-emu/eden
synced 2026-02-04 11:01:18 +01:00
Fix android crashing
This commit is contained in:
committed by
Caio Oliveira
parent
b64d5ca23f
commit
dd1ab91da7
@@ -465,40 +465,50 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR
|
||||
first_next = &diagnostics_nv;
|
||||
}
|
||||
|
||||
VkPhysicalDeviceDescriptorIndexingFeaturesEXT descriptor_indexing{
|
||||
.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT,
|
||||
// Query descriptor indexing features from the physical device first so we only
|
||||
// request sub-features that are actually supported by the driver.
|
||||
VkPhysicalDeviceDescriptorIndexingFeaturesEXT descriptor_indexing_temp{};
|
||||
descriptor_indexing_temp.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT;
|
||||
descriptor_indexing_temp.pNext = nullptr;
|
||||
VkPhysicalDeviceFeatures2 desc_idx_features2{};
|
||||
desc_idx_features2.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
|
||||
desc_idx_features2.pNext = &descriptor_indexing_temp;
|
||||
physical.GetFeatures2(desc_idx_features2);
|
||||
|
||||
VkPhysicalDeviceDescriptorIndexingFeaturesEXT descriptor_indexing_req{
|
||||
.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT,
|
||||
.pNext = use_diagnostics_nv ? static_cast<void*>(&diagnostics_nv) : static_cast<void*>(&features2),
|
||||
.shaderSampledImageArrayNonUniformIndexing = VK_TRUE,
|
||||
.descriptorBindingPartiallyBound = VK_TRUE,
|
||||
.descriptorBindingVariableDescriptorCount = VK_TRUE,
|
||||
.shaderSampledImageArrayNonUniformIndexing = descriptor_indexing_temp.shaderSampledImageArrayNonUniformIndexing,
|
||||
.descriptorBindingPartiallyBound = descriptor_indexing_temp.descriptorBindingPartiallyBound,
|
||||
.descriptorBindingVariableDescriptorCount = descriptor_indexing_temp.descriptorBindingVariableDescriptorCount,
|
||||
};
|
||||
|
||||
if (extensions.descriptor_indexing && Settings::values.descriptor_indexing.GetValue()) {
|
||||
first_next = &descriptor_indexing;
|
||||
first_next = &descriptor_indexing_req;
|
||||
}
|
||||
|
||||
// VK_EXT_descriptor_buffer
|
||||
VkPhysicalDeviceDescriptorBufferFeaturesEXT descriptor_buffer_features{
|
||||
.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT,
|
||||
.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT,
|
||||
.pNext = first_next,
|
||||
.descriptorBuffer = VK_TRUE,
|
||||
.descriptorBufferCaptureReplay = VK_TRUE,
|
||||
.descriptorBufferImageLayoutIgnored = VK_TRUE,
|
||||
.descriptorBufferPushDescriptors = VK_FALSE,
|
||||
.descriptorBuffer = features.descriptor_buffer.descriptorBuffer ? VK_TRUE : VK_FALSE,
|
||||
.descriptorBufferCaptureReplay = features.descriptor_buffer.descriptorBufferCaptureReplay ? VK_TRUE : VK_FALSE,
|
||||
.descriptorBufferImageLayoutIgnored = features.descriptor_buffer.descriptorBufferImageLayoutIgnored ? VK_TRUE : VK_FALSE,
|
||||
.descriptorBufferPushDescriptors = features.descriptor_buffer.descriptorBufferPushDescriptors ? VK_TRUE : VK_FALSE,
|
||||
};
|
||||
|
||||
if (loaded_extensions.contains(VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME)) {
|
||||
if (extensions.descriptor_buffer) {
|
||||
first_next = &descriptor_buffer_features;
|
||||
}
|
||||
|
||||
// VK_EXT_inline_uniform_block
|
||||
VkPhysicalDeviceInlineUniformBlockFeaturesEXT inline_uniform_block_features{
|
||||
.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT,
|
||||
VkPhysicalDeviceInlineUniformBlockFeaturesEXT inline_uniform_block_features{
|
||||
.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT,
|
||||
.pNext = first_next,
|
||||
.inlineUniformBlock = VK_TRUE,
|
||||
.inlineUniformBlock = features.inline_uniform_block.inlineUniformBlock ? VK_TRUE : VK_FALSE,
|
||||
};
|
||||
|
||||
if (loaded_extensions.contains(VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME)) {
|
||||
if (extensions.inline_uniform_block && features.inline_uniform_block.inlineUniformBlock) {
|
||||
first_next = &inline_uniform_block_features;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user