Ensure storage is set for Buffer Textures when binding an Image. (#1627)
This commit is contained in:
parent
5264d55b39
commit
08332bdc04
1 changed files with 8 additions and 0 deletions
|
@ -290,6 +290,14 @@ namespace Ryujinx.Graphics.Gpu.Image
|
||||||
|
|
||||||
ITexture hostTexture = texture?.GetTargetTexture(binding.Target);
|
ITexture hostTexture = texture?.GetTargetTexture(binding.Target);
|
||||||
|
|
||||||
|
if (hostTexture != null && texture.Info.Target == Target.TextureBuffer)
|
||||||
|
{
|
||||||
|
// Ensure that the buffer texture is using the correct buffer as storage.
|
||||||
|
// Buffers are frequently re-created to accomodate larger data, so we need to re-bind
|
||||||
|
// to ensure we're not using a old buffer that was already deleted.
|
||||||
|
_context.Methods.BufferManager.SetBufferTextureStorage(hostTexture, texture.Address, texture.Size, _isCompute);
|
||||||
|
}
|
||||||
|
|
||||||
if (_imageState[stageIndex][index].Texture != hostTexture || _rebind)
|
if (_imageState[stageIndex][index].Texture != hostTexture || _rebind)
|
||||||
{
|
{
|
||||||
_imageState[stageIndex][index].Texture = hostTexture;
|
_imageState[stageIndex][index].Texture = hostTexture;
|
||||||
|
|
Loading…
Reference in a new issue