From d45b28f6b7ee969dcc695ccd9e6d4fee1325d290 Mon Sep 17 00:00:00 2001 From: riperiperi Date: Wed, 9 Mar 2022 22:40:05 +0000 Subject: [PATCH] Cleanup for merge (note: disables spir-v) --- .../Multithreading/Resources/ThreadedTexture.cs | 1 + Ryujinx.Graphics.Gpu/GraphicsConfig.cs | 2 +- Ryujinx.Graphics.Vulkan/PipelineBase.cs | 11 +++++------ Ryujinx.Graphics.Vulkan/PipelineConverter.cs | 2 +- Ryujinx.Graphics.Vulkan/PipelineState.cs | 1 - Ryujinx.Graphics.Vulkan/ShaderCollection.cs | 8 ++++---- 6 files changed, 12 insertions(+), 13 deletions(-) diff --git a/Ryujinx.Graphics.GAL/Multithreading/Resources/ThreadedTexture.cs b/Ryujinx.Graphics.GAL/Multithreading/Resources/ThreadedTexture.cs index 6023ee388..64d8aa3bd 100644 --- a/Ryujinx.Graphics.GAL/Multithreading/Resources/ThreadedTexture.cs +++ b/Ryujinx.Graphics.GAL/Multithreading/Resources/ThreadedTexture.cs @@ -14,6 +14,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Resources public ITexture Base; public int Width => _info.Width; + public int Height => _info.Height; public float ScaleFactor { get; } diff --git a/Ryujinx.Graphics.Gpu/GraphicsConfig.cs b/Ryujinx.Graphics.Gpu/GraphicsConfig.cs index 1365db4bc..9f9de50f6 100644 --- a/Ryujinx.Graphics.Gpu/GraphicsConfig.cs +++ b/Ryujinx.Graphics.Gpu/GraphicsConfig.cs @@ -60,6 +60,6 @@ namespace Ryujinx.Graphics.Gpu /// /// Enables or disables shader SPIR-V compilation. /// - public static bool EnableSpirvCompilation = true; + public static bool EnableSpirvCompilation; } } \ No newline at end of file diff --git a/Ryujinx.Graphics.Vulkan/PipelineBase.cs b/Ryujinx.Graphics.Vulkan/PipelineBase.cs index b9802ffb3..1b9f61e2c 100644 --- a/Ryujinx.Graphics.Vulkan/PipelineBase.cs +++ b/Ryujinx.Graphics.Vulkan/PipelineBase.cs @@ -18,6 +18,7 @@ namespace Ryujinx.Graphics.Vulkan protected readonly VulkanGraphicsDevice Gd; protected readonly Device Device; + public readonly PipelineCache PipelineCache; private PipelineDynamicState _dynamicState; private PipelineState _newState; @@ -30,8 +31,6 @@ namespace Ryujinx.Graphics.Vulkan protected PipelineBindPoint Pbp; - public PipelineCache _pipelineCache; - protected CommandBufferScoped Cbs; protected CommandBufferScoped? PreloadCbs; protected CommandBuffer CommandBuffer; @@ -75,7 +74,7 @@ namespace Ryujinx.Graphics.Vulkan SType = StructureType.PipelineCacheCreateInfo }; - gd.Api.CreatePipelineCache(device, pipelineCacheCreateInfo, null, out _pipelineCache).ThrowOnError(); + gd.Api.CreatePipelineCache(device, pipelineCacheCreateInfo, null, out PipelineCache).ThrowOnError(); _descriptorSetUpdater = new DescriptorSetUpdater(gd, this); @@ -1103,8 +1102,8 @@ namespace Ryujinx.Graphics.Vulkan } var pipeline = pbp == PipelineBindPoint.Compute - ? _newState.CreateComputePipeline(Gd.Api, Device, _program, _pipelineCache) - : _newState.CreateGraphicsPipeline(Gd, Device, _program, _pipelineCache, _renderPass.Get(Cbs).Value); + ? _newState.CreateComputePipeline(Gd.Api, Device, _program, PipelineCache) + : _newState.CreateGraphicsPipeline(Gd, Device, _program, PipelineCache, _renderPass.Get(Cbs).Value); ulong pipelineHandle = pipeline.GetUnsafe().Value.Handle; @@ -1205,7 +1204,7 @@ namespace Ryujinx.Graphics.Vulkan unsafe { - Gd.Api.DestroyPipelineCache(Device, _pipelineCache, null); + Gd.Api.DestroyPipelineCache(Device, PipelineCache, null); } SupportBufferUpdater.Dispose(); diff --git a/Ryujinx.Graphics.Vulkan/PipelineConverter.cs b/Ryujinx.Graphics.Vulkan/PipelineConverter.cs index 30d6edeb7..61fcea93f 100644 --- a/Ryujinx.Graphics.Vulkan/PipelineConverter.cs +++ b/Ryujinx.Graphics.Vulkan/PipelineConverter.cs @@ -130,7 +130,7 @@ namespace Ryujinx.Graphics.Vulkan } } - public static unsafe PipelineState ToVulkanPipelineState(this ProgramPipelineState state, VulkanGraphicsDevice gd) + public static PipelineState ToVulkanPipelineState(this ProgramPipelineState state, VulkanGraphicsDevice gd) { PipelineState pipeline = new PipelineState(); pipeline.Initialize(); diff --git a/Ryujinx.Graphics.Vulkan/PipelineState.cs b/Ryujinx.Graphics.Vulkan/PipelineState.cs index b5ba583fd..1e8cc2ae5 100644 --- a/Ryujinx.Graphics.Vulkan/PipelineState.cs +++ b/Ryujinx.Graphics.Vulkan/PipelineState.cs @@ -497,7 +497,6 @@ namespace Ryujinx.Graphics.Vulkan var pipelineCreateInfo = new GraphicsPipelineCreateInfo() { SType = StructureType.GraphicsPipelineCreateInfo, - Flags = 0, StageCount = StagesCount, PStages = Stages.Pointer, PVertexInputState = &vertexInputState, diff --git a/Ryujinx.Graphics.Vulkan/ShaderCollection.cs b/Ryujinx.Graphics.Vulkan/ShaderCollection.cs index c1f156853..3c8601c43 100644 --- a/Ryujinx.Graphics.Vulkan/ShaderCollection.cs +++ b/Ryujinx.Graphics.Vulkan/ShaderCollection.cs @@ -195,7 +195,7 @@ namespace Ryujinx.Graphics.Vulkan return _dummyRenderPass = _state.ToRenderPass(_gd, _device); } - public unsafe void CreateBackgroundComputePipeline() + public void CreateBackgroundComputePipeline() { PipelineState pipeline = new PipelineState(); pipeline.Initialize(); @@ -203,10 +203,10 @@ namespace Ryujinx.Graphics.Vulkan pipeline.Stages[0] = ((Shader)_shaders[0]).GetInfo(); pipeline.StagesCount = 1; - pipeline.CreateComputePipeline(_gd.Api, _device, this, (_gd.Pipeline as PipelineBase)._pipelineCache); + pipeline.CreateComputePipeline(_gd.Api, _device, this, (_gd.Pipeline as PipelineBase).PipelineCache); } - public unsafe void CreateBackgroundGraphicsPipeline() + public void CreateBackgroundGraphicsPipeline() { // To compile shaders in the background in Vulkan, we need to create valid pipelines using the shader modules. // The GPU provides pipeline state via the GAL that can be converted into our internal Vulkan pipeline state. @@ -230,7 +230,7 @@ namespace Ryujinx.Graphics.Vulkan pipeline.StagesCount = (uint)_shaders.Length; pipeline.PipelineLayout = PipelineLayout; - pipeline.CreateGraphicsPipeline(_gd, _device, this, (_gd.Pipeline as PipelineBase)._pipelineCache, renderPass.Value); + pipeline.CreateGraphicsPipeline(_gd, _device, this, (_gd.Pipeline as PipelineBase).PipelineCache, renderPass.Value); } public ProgramLinkStatus CheckProgramLink(bool blocking)