mirror of
https://git.ryujinx.app/projects/Kenji-NX.git
synced 2026-09-25 15:00:03 +02:00
misc: chore: Use explicit types & fix object creation
This commit is contained in:
@@ -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++)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user