mirror of
https://git.ryujinx.app/ryubing/ryujinx.git
synced 2025-06-29 08:46:24 +02:00
misc: chore: Use explicit types in Vulkan project
This commit is contained in:
parent
e6b393e420
commit
2d1a4c3ce5
58 changed files with 682 additions and 667 deletions
|
@ -1,6 +1,7 @@
|
|||
using Ryujinx.Common.Configuration;
|
||||
using Ryujinx.Common.Logging;
|
||||
using Ryujinx.Graphics.GAL;
|
||||
using Silk.NET.Core;
|
||||
using Silk.NET.Vulkan;
|
||||
using Silk.NET.Vulkan.Extensions.EXT;
|
||||
using Silk.NET.Vulkan.Extensions.KHR;
|
||||
|
@ -54,10 +55,10 @@ namespace Ryujinx.Graphics.Vulkan
|
|||
|
||||
internal static VulkanInstance CreateInstance(Vk api, GraphicsDebugLevel logLevel, string[] requiredExtensions)
|
||||
{
|
||||
var enabledLayers = new List<string>();
|
||||
List<string> enabledLayers = new List<string>();
|
||||
|
||||
var instanceExtensions = VulkanInstance.GetInstanceExtensions(api);
|
||||
var instanceLayers = VulkanInstance.GetInstanceLayers(api);
|
||||
IReadOnlySet<string> instanceExtensions = VulkanInstance.GetInstanceExtensions(api);
|
||||
IReadOnlySet<string> instanceLayers = VulkanInstance.GetInstanceLayers(api);
|
||||
|
||||
void AddAvailableLayer(string layerName)
|
||||
{
|
||||
|
@ -76,16 +77,16 @@ namespace Ryujinx.Graphics.Vulkan
|
|||
AddAvailableLayer("VK_LAYER_KHRONOS_validation");
|
||||
}
|
||||
|
||||
var enabledExtensions = requiredExtensions;
|
||||
string[] enabledExtensions = requiredExtensions;
|
||||
|
||||
if (instanceExtensions.Contains("VK_EXT_debug_utils"))
|
||||
{
|
||||
enabledExtensions = enabledExtensions.Append(ExtDebugUtils.ExtensionName).ToArray();
|
||||
}
|
||||
|
||||
var appName = Marshal.StringToHGlobalAnsi(AppName);
|
||||
IntPtr appName = Marshal.StringToHGlobalAnsi(AppName);
|
||||
|
||||
var applicationInfo = new ApplicationInfo
|
||||
ApplicationInfo applicationInfo = new ApplicationInfo
|
||||
{
|
||||
PApplicationName = (byte*)appName,
|
||||
ApplicationVersion = 1,
|
||||
|
@ -107,7 +108,7 @@ namespace Ryujinx.Graphics.Vulkan
|
|||
ppEnabledLayers[i] = Marshal.StringToHGlobalAnsi(enabledLayers[i]);
|
||||
}
|
||||
|
||||
var instanceCreateInfo = new InstanceCreateInfo
|
||||
InstanceCreateInfo instanceCreateInfo = new InstanceCreateInfo
|
||||
{
|
||||
SType = StructureType.InstanceCreateInfo,
|
||||
PApplicationInfo = &applicationInfo,
|
||||
|
@ -117,7 +118,7 @@ namespace Ryujinx.Graphics.Vulkan
|
|||
EnabledLayerCount = (uint)enabledLayers.Count,
|
||||
};
|
||||
|
||||
Result result = VulkanInstance.Create(api, ref instanceCreateInfo, out var instance);
|
||||
Result result = VulkanInstance.Create(api, ref instanceCreateInfo, out VulkanInstance instance);
|
||||
|
||||
Marshal.FreeHGlobal(appName);
|
||||
|
||||
|
@ -138,7 +139,7 @@ namespace Ryujinx.Graphics.Vulkan
|
|||
|
||||
internal static VulkanPhysicalDevice FindSuitablePhysicalDevice(Vk api, VulkanInstance instance, SurfaceKHR surface, string preferredGpuId)
|
||||
{
|
||||
instance.EnumeratePhysicalDevices(out var physicalDevices).ThrowOnError();
|
||||
instance.EnumeratePhysicalDevices(out VulkanPhysicalDevice[] physicalDevices).ThrowOnError();
|
||||
|
||||
// First we try to pick the user preferred GPU.
|
||||
for (int i = 0; i < physicalDevices.Length; i++)
|
||||
|
@ -163,9 +164,9 @@ namespace Ryujinx.Graphics.Vulkan
|
|||
|
||||
internal static DeviceInfo[] GetSuitablePhysicalDevices(Vk api)
|
||||
{
|
||||
var appName = Marshal.StringToHGlobalAnsi(AppName);
|
||||
IntPtr appName = Marshal.StringToHGlobalAnsi(AppName);
|
||||
|
||||
var applicationInfo = new ApplicationInfo
|
||||
ApplicationInfo applicationInfo = new ApplicationInfo
|
||||
{
|
||||
PApplicationName = (byte*)appName,
|
||||
ApplicationVersion = 1,
|
||||
|
@ -174,7 +175,7 @@ namespace Ryujinx.Graphics.Vulkan
|
|||
ApiVersion = _maximumVulkanVersion,
|
||||
};
|
||||
|
||||
var instanceCreateInfo = new InstanceCreateInfo
|
||||
InstanceCreateInfo instanceCreateInfo = new InstanceCreateInfo
|
||||
{
|
||||
SType = StructureType.InstanceCreateInfo,
|
||||
PApplicationInfo = &applicationInfo,
|
||||
|
@ -184,7 +185,7 @@ namespace Ryujinx.Graphics.Vulkan
|
|||
EnabledLayerCount = 0,
|
||||
};
|
||||
|
||||
Result result = VulkanInstance.Create(api, ref instanceCreateInfo, out var rawInstance);
|
||||
Result result = VulkanInstance.Create(api, ref instanceCreateInfo, out VulkanInstance rawInstance);
|
||||
|
||||
Marshal.FreeHGlobal(appName);
|
||||
|
||||
|
@ -245,13 +246,13 @@ namespace Ryujinx.Graphics.Vulkan
|
|||
{
|
||||
const QueueFlags RequiredFlags = QueueFlags.GraphicsBit | QueueFlags.ComputeBit;
|
||||
|
||||
var khrSurface = new KhrSurface(api.Context);
|
||||
KhrSurface khrSurface = new KhrSurface(api.Context);
|
||||
|
||||
for (uint index = 0; index < physicalDevice.QueueFamilyProperties.Length; index++)
|
||||
{
|
||||
ref QueueFamilyProperties property = ref physicalDevice.QueueFamilyProperties[index];
|
||||
|
||||
khrSurface.GetPhysicalDeviceSurfaceSupport(physicalDevice.PhysicalDevice, index, surface, out var surfaceSupported).ThrowOnError();
|
||||
khrSurface.GetPhysicalDeviceSurfaceSupport(physicalDevice.PhysicalDevice, index, surface, out Bool32 surfaceSupported).ThrowOnError();
|
||||
|
||||
if (property.QueueFlags.HasFlag(RequiredFlags) && surfaceSupported)
|
||||
{
|
||||
|
@ -280,7 +281,7 @@ namespace Ryujinx.Graphics.Vulkan
|
|||
queuePriorities[i] = 1f;
|
||||
}
|
||||
|
||||
var queueCreateInfo = new DeviceQueueCreateInfo
|
||||
DeviceQueueCreateInfo queueCreateInfo = new DeviceQueueCreateInfo
|
||||
{
|
||||
SType = StructureType.DeviceQueueCreateInfo,
|
||||
QueueFamilyIndex = queueFamilyIndex,
|
||||
|
@ -391,9 +392,9 @@ namespace Ryujinx.Graphics.Vulkan
|
|||
|
||||
api.GetPhysicalDeviceFeatures2(physicalDevice.PhysicalDevice, &features2);
|
||||
|
||||
var supportedFeatures = features2.Features;
|
||||
PhysicalDeviceFeatures supportedFeatures = features2.Features;
|
||||
|
||||
var features = new PhysicalDeviceFeatures
|
||||
PhysicalDeviceFeatures features = new PhysicalDeviceFeatures
|
||||
{
|
||||
DepthBiasClamp = supportedFeatures.DepthBiasClamp,
|
||||
DepthClamp = supportedFeatures.DepthClamp,
|
||||
|
@ -464,7 +465,7 @@ namespace Ryujinx.Graphics.Vulkan
|
|||
pExtendedFeatures = &featuresRobustness2;
|
||||
}
|
||||
|
||||
var featuresExtendedDynamicState = new PhysicalDeviceExtendedDynamicStateFeaturesEXT
|
||||
PhysicalDeviceExtendedDynamicStateFeaturesEXT featuresExtendedDynamicState = new PhysicalDeviceExtendedDynamicStateFeaturesEXT
|
||||
{
|
||||
SType = StructureType.PhysicalDeviceExtendedDynamicStateFeaturesExt,
|
||||
PNext = pExtendedFeatures,
|
||||
|
@ -473,7 +474,7 @@ namespace Ryujinx.Graphics.Vulkan
|
|||
|
||||
pExtendedFeatures = &featuresExtendedDynamicState;
|
||||
|
||||
var featuresVk11 = new PhysicalDeviceVulkan11Features
|
||||
PhysicalDeviceVulkan11Features featuresVk11 = new PhysicalDeviceVulkan11Features
|
||||
{
|
||||
SType = StructureType.PhysicalDeviceVulkan11Features,
|
||||
PNext = pExtendedFeatures,
|
||||
|
@ -482,7 +483,7 @@ namespace Ryujinx.Graphics.Vulkan
|
|||
|
||||
pExtendedFeatures = &featuresVk11;
|
||||
|
||||
var featuresVk12 = new PhysicalDeviceVulkan12Features
|
||||
PhysicalDeviceVulkan12Features featuresVk12 = new PhysicalDeviceVulkan12Features
|
||||
{
|
||||
SType = StructureType.PhysicalDeviceVulkan12Features,
|
||||
PNext = pExtendedFeatures,
|
||||
|
@ -585,7 +586,7 @@ namespace Ryujinx.Graphics.Vulkan
|
|||
pExtendedFeatures = &featuresDynamicAttachmentFeedbackLoopLayout;
|
||||
}
|
||||
|
||||
var enabledExtensions = _requiredExtensions.Union(_desirableExtensions.Intersect(physicalDevice.DeviceExtensions)).ToArray();
|
||||
string[] enabledExtensions = _requiredExtensions.Union(_desirableExtensions.Intersect(physicalDevice.DeviceExtensions)).ToArray();
|
||||
|
||||
nint* ppEnabledExtensions = stackalloc nint[enabledExtensions.Length];
|
||||
|
||||
|
@ -594,7 +595,7 @@ namespace Ryujinx.Graphics.Vulkan
|
|||
ppEnabledExtensions[i] = Marshal.StringToHGlobalAnsi(enabledExtensions[i]);
|
||||
}
|
||||
|
||||
var deviceCreateInfo = new DeviceCreateInfo
|
||||
DeviceCreateInfo deviceCreateInfo = new DeviceCreateInfo
|
||||
{
|
||||
SType = StructureType.DeviceCreateInfo,
|
||||
PNext = pExtendedFeatures,
|
||||
|
@ -605,7 +606,7 @@ namespace Ryujinx.Graphics.Vulkan
|
|||
PEnabledFeatures = &features,
|
||||
};
|
||||
|
||||
api.CreateDevice(physicalDevice.PhysicalDevice, in deviceCreateInfo, null, out var device).ThrowOnError();
|
||||
api.CreateDevice(physicalDevice.PhysicalDevice, in deviceCreateInfo, null, out Device device).ThrowOnError();
|
||||
|
||||
for (int i = 0; i < enabledExtensions.Length; i++)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue