mirror of
https://github.com/skyline-emu/skyline.git
synced 2024-12-27 19:11:48 +01:00
Enable VK uint8 indices feature when supported
This commit is contained in:
parent
dccc86ea97
commit
cdc6a4628a
@ -234,7 +234,8 @@ namespace skyline::gpu {
|
||||
vk::PhysicalDeviceProvokingVertexFeaturesEXT,
|
||||
vk::PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT,
|
||||
vk::PhysicalDeviceImagelessFramebufferFeatures,
|
||||
vk::PhysicalDeviceTransformFeedbackFeaturesEXT>()};
|
||||
vk::PhysicalDeviceTransformFeedbackFeaturesEXT,
|
||||
vk::PhysicalDeviceIndexTypeUint8FeaturesEXT>()};
|
||||
decltype(deviceFeatures2) enabledFeatures2{}; // We only want to enable features we required due to potential overhead from unused features
|
||||
|
||||
#define FEAT_REQ(structName, feature) \
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
namespace skyline::gpu {
|
||||
TraitManager::TraitManager(const DeviceFeatures2 &deviceFeatures2, DeviceFeatures2 &enabledFeatures2, const std::vector<vk::ExtensionProperties> &deviceExtensions, std::vector<std::array<char, VK_MAX_EXTENSION_NAME_SIZE>> &enabledExtensions, const DeviceProperties2 &deviceProperties2, const vk::raii::PhysicalDevice &physicalDevice) : quirks(deviceProperties2.get<vk::PhysicalDeviceProperties2>().properties, deviceProperties2.get<vk::PhysicalDeviceDriverProperties>()) {
|
||||
bool hasCustomBorderColorExt{}, hasShaderAtomicInt64Ext{}, hasShaderFloat16Int8Ext{}, hasShaderDemoteToHelperExt{}, hasVertexAttributeDivisorExt{}, hasProvokingVertexExt{}, hasPrimitiveTopologyListRestartExt{}, hasImagelessFramebuffersExt{}, hasTransformFeedbackExt{};
|
||||
bool hasCustomBorderColorExt{}, hasShaderAtomicInt64Ext{}, hasShaderFloat16Int8Ext{}, hasShaderDemoteToHelperExt{}, hasVertexAttributeDivisorExt{}, hasProvokingVertexExt{}, hasPrimitiveTopologyListRestartExt{}, hasImagelessFramebuffersExt{}, hasTransformFeedbackExt{}, hasUint8IndicesExt{};
|
||||
bool supportsUniformBufferStandardLayout{}; // We require VK_KHR_uniform_buffer_standard_layout but assume it is implicitly supported even when not present
|
||||
|
||||
for (auto &extension : deviceExtensions) {
|
||||
@ -39,7 +39,7 @@ namespace skyline::gpu {
|
||||
std::string_view extensionName{extension.extensionName};
|
||||
auto extensionVersion{extension.specVersion};
|
||||
switch (util::Hash(extensionName)) {
|
||||
EXT_SET("VK_EXT_index_type_uint8", supportsUint8Indices);
|
||||
EXT_SET("VK_EXT_index_type_uint8", hasUint8IndicesExt);
|
||||
EXT_SET("VK_EXT_sampler_mirror_clamp_to_edge", supportsSamplerMirrorClampToEdge);
|
||||
EXT_SET("VK_EXT_sampler_filter_minmax", supportsSamplerReductionMode);
|
||||
EXT_SET("VK_EXT_custom_border_color", hasCustomBorderColorExt);
|
||||
@ -78,6 +78,11 @@ namespace skyline::gpu {
|
||||
FEAT_SET(vk::PhysicalDeviceFeatures2, features.shaderInt64, supportsInt64)
|
||||
FEAT_SET(vk::PhysicalDeviceFeatures2, features.shaderStorageImageReadWithoutFormat, supportsImageReadWithoutFormat)
|
||||
|
||||
if (hasUint8IndicesExt)
|
||||
FEAT_SET(vk::PhysicalDeviceIndexTypeUint8FeaturesEXT, indexTypeUint8, supportsUint8Indices)
|
||||
else
|
||||
enabledFeatures2.unlink<vk::PhysicalDeviceIndexTypeUint8FeaturesEXT>();
|
||||
|
||||
if (hasCustomBorderColorExt) {
|
||||
bool hasCustomBorderColorFeature{};
|
||||
FEAT_SET(vk::PhysicalDeviceCustomBorderColorFeaturesEXT, customBorderColors, hasCustomBorderColorFeature)
|
||||
|
@ -91,7 +91,8 @@ namespace skyline::gpu {
|
||||
vk::PhysicalDeviceProvokingVertexFeaturesEXT,
|
||||
vk::PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT,
|
||||
vk::PhysicalDeviceImagelessFramebufferFeatures,
|
||||
vk::PhysicalDeviceTransformFeedbackFeaturesEXT>;
|
||||
vk::PhysicalDeviceTransformFeedbackFeaturesEXT,
|
||||
vk::PhysicalDeviceIndexTypeUint8FeaturesEXT>;
|
||||
|
||||
TraitManager(const DeviceFeatures2 &deviceFeatures2, DeviceFeatures2 &enabledFeatures2, const std::vector<vk::ExtensionProperties> &deviceExtensions, std::vector<std::array<char, VK_MAX_EXTENSION_NAME_SIZE>> &enabledExtensions, const DeviceProperties2 &deviceProperties2, const vk::raii::PhysicalDevice& physicalDevice);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user