misc: chore: Use explicit types & fix object creation

This commit is contained in:
KeatonTheBot
2026-08-12 13:57:33 -05:00
parent 69c088004a
commit 88cef7e853
461 changed files with 3163 additions and 3082 deletions
@@ -4,6 +4,7 @@ using Ryujinx.Graphics.GAL;
using Silk.NET.Vulkan;
using Silk.NET.Vulkan.Extensions.EXT;
using Silk.NET.Vulkan.Extensions.KHR;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
@@ -57,10 +58,10 @@ namespace Ryujinx.Graphics.Vulkan
internal static VulkanInstance CreateInstance(Vk api, GraphicsDebugLevel logLevel, string[] requiredExtensions)
{
var enabledLayers = new List<string>();
List<string> enabledLayers = new();
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)
{
@@ -79,16 +80,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()
{
PApplicationName = (byte*)appName,
ApplicationVersion = 1,
@@ -110,7 +111,7 @@ namespace Ryujinx.Graphics.Vulkan
ppEnabledLayers[i] = Marshal.StringToHGlobalAnsi(enabledLayers[i]);
}
var instanceCreateInfo = new InstanceCreateInfo
InstanceCreateInfo instanceCreateInfo = new()
{
SType = StructureType.InstanceCreateInfo,
PApplicationInfo = &applicationInfo,
@@ -120,7 +121,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);
@@ -141,7 +142,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++)
@@ -166,9 +167,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()
{
PApplicationName = (byte*)appName,
ApplicationVersion = 1,
@@ -177,7 +178,7 @@ namespace Ryujinx.Graphics.Vulkan
ApiVersion = _maximumVulkanVersion,
};
var instanceCreateInfo = new InstanceCreateInfo
InstanceCreateInfo instanceCreateInfo = new()
{
SType = StructureType.InstanceCreateInfo,
PApplicationInfo = &applicationInfo,
@@ -187,7 +188,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);
@@ -248,13 +249,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)
{
@@ -283,7 +284,7 @@ namespace Ryujinx.Graphics.Vulkan
queuePriorities[i] = 1f;
}
var queueCreateInfo = new DeviceQueueCreateInfo
DeviceQueueCreateInfo queueCreateInfo = new()
{
SType = StructureType.DeviceQueueCreateInfo,
QueueFamilyIndex = queueFamilyIndex,
@@ -493,9 +494,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()
{
DepthBiasClamp = supportedFeatures.DepthBiasClamp,
DepthClamp = supportedFeatures.DepthClamp,
@@ -574,7 +575,7 @@ namespace Ryujinx.Graphics.Vulkan
pExtendedFeatures = &featuresExtendedDynamicState;
var featuresVk11 = new PhysicalDeviceVulkan11Features
PhysicalDeviceVulkan11Features featuresVk11 = new()
{
SType = StructureType.PhysicalDeviceVulkan11Features,
PNext = pExtendedFeatures,
@@ -587,7 +588,7 @@ namespace Ryujinx.Graphics.Vulkan
pExtendedFeatures = &featuresVk11;
var featuresVk12 = new PhysicalDeviceVulkan12Features
PhysicalDeviceVulkan12Features featuresVk12 = new()
{
SType = StructureType.PhysicalDeviceVulkan12Features,
PNext = pExtendedFeatures,
@@ -683,7 +684,7 @@ namespace Ryujinx.Graphics.Vulkan
pExtendedFeatures = &featuresDeviceMemoryPriority;
}
var enabledExtensions = _requiredExtensions.Union(_desirableExtensions.Intersect(physicalDevice.DeviceExtensions)).ToArray();
string[] enabledExtensions = _requiredExtensions.Union(_desirableExtensions.Intersect(physicalDevice.DeviceExtensions)).ToArray();
nint* ppEnabledExtensions = stackalloc nint[enabledExtensions.Length];
@@ -692,7 +693,7 @@ namespace Ryujinx.Graphics.Vulkan
ppEnabledExtensions[i] = Marshal.StringToHGlobalAnsi(enabledExtensions[i]);
}
var deviceCreateInfo = new DeviceCreateInfo
DeviceCreateInfo deviceCreateInfo = new()
{
SType = StructureType.DeviceCreateInfo,
PNext = pExtendedFeatures,
@@ -703,7 +704,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++)
{