Set texture/image bindings in place rather than allocating and passing an array (#2647)
* Remove allocations for texture bindings and state * Rent rather than stackalloc + copy A bit faster.
This commit is contained in:
parent
32c09af71a
commit
b0af010247
4 changed files with 95 additions and 47 deletions
|
@ -191,7 +191,7 @@ namespace Ryujinx.Graphics.Gpu.Engine.Compute
|
|||
_channel.BufferManager.SetComputeStorageBufferBindings(info.SBuffers);
|
||||
_channel.BufferManager.SetComputeUniformBufferBindings(info.CBuffers);
|
||||
|
||||
var textureBindings = new TextureBindingInfo[info.Textures.Count];
|
||||
TextureBindingInfo[] textureBindings = _channel.TextureManager.RentComputeTextureBindings(info.Textures.Count);
|
||||
|
||||
for (int index = 0; index < info.Textures.Count; index++)
|
||||
{
|
||||
|
@ -207,9 +207,7 @@ namespace Ryujinx.Graphics.Gpu.Engine.Compute
|
|||
descriptor.Flags);
|
||||
}
|
||||
|
||||
_channel.TextureManager.SetComputeTextures(textureBindings);
|
||||
|
||||
var imageBindings = new TextureBindingInfo[info.Images.Count];
|
||||
TextureBindingInfo[] imageBindings = _channel.TextureManager.RentComputeImageBindings(info.Images.Count);
|
||||
|
||||
for (int index = 0; index < info.Images.Count; index++)
|
||||
{
|
||||
|
@ -227,8 +225,6 @@ namespace Ryujinx.Graphics.Gpu.Engine.Compute
|
|||
descriptor.Flags);
|
||||
}
|
||||
|
||||
_channel.TextureManager.SetComputeImages(imageBindings);
|
||||
|
||||
_channel.TextureManager.CommitComputeBindings();
|
||||
_channel.BufferManager.CommitComputeBindings();
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue