From 3ac023bb607eb630e86859cba0d3ebac55f4257a Mon Sep 17 00:00:00 2001 From: gdk Date: Fri, 22 Nov 2019 20:37:45 -0300 Subject: [PATCH] Correct ordering of compute buffer bind --- Ryujinx.Graphics.Gpu/Engine/Compute.cs | 52 +++++++++++++------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/Ryujinx.Graphics.Gpu/Engine/Compute.cs b/Ryujinx.Graphics.Gpu/Engine/Compute.cs index ba7daf67a3..eb7c4f4a14 100644 --- a/Ryujinx.Graphics.Gpu/Engine/Compute.cs +++ b/Ryujinx.Graphics.Gpu/Engine/Compute.cs @@ -40,32 +40,6 @@ namespace Ryujinx.Graphics.Gpu.Engine ShaderProgramInfo info = cs.Shader.Program.Info; - var textureBindings = new TextureBindingInfo[info.Textures.Count]; - - for (int index = 0; index < info.Textures.Count; index++) - { - var descriptor = info.Textures[index]; - - Target target = GetTarget(descriptor.Type); - - textureBindings[index] = new TextureBindingInfo(target, descriptor.HandleIndex); - } - - _textureManager.SetComputeTextures(textureBindings); - - var imageBindings = new TextureBindingInfo[info.Images.Count]; - - for (int index = 0; index < info.Images.Count; index++) - { - var descriptor = info.Images[index]; - - Target target = GetTarget(descriptor.Type); - - imageBindings[index] = new TextureBindingInfo(target, descriptor.HandleIndex); - } - - _textureManager.SetComputeImages(imageBindings); - uint sbEnableMask = 0; uint ubEnableMask = dispatchParams.UnpackUniformBuffersEnableMask(); @@ -111,6 +85,32 @@ namespace Ryujinx.Graphics.Gpu.Engine _bufferManager.SetComputeStorageBufferEnableMask(sbEnableMask); _bufferManager.SetComputeUniformBufferEnableMask(ubEnableMask); + var textureBindings = new TextureBindingInfo[info.Textures.Count]; + + for (int index = 0; index < info.Textures.Count; index++) + { + var descriptor = info.Textures[index]; + + Target target = GetTarget(descriptor.Type); + + textureBindings[index] = new TextureBindingInfo(target, descriptor.HandleIndex); + } + + _textureManager.SetComputeTextures(textureBindings); + + var imageBindings = new TextureBindingInfo[info.Images.Count]; + + for (int index = 0; index < info.Images.Count; index++) + { + var descriptor = info.Images[index]; + + Target target = GetTarget(descriptor.Type); + + imageBindings[index] = new TextureBindingInfo(target, descriptor.HandleIndex); + } + + _textureManager.SetComputeImages(imageBindings); + _bufferManager.CommitComputeBindings(); _textureManager.CommitComputeBindings();