Pass CbufSlot when getting info from the texture descriptor (#2291)
* Pass CbufSlot when getting info from the texture descriptor Fixes some issues with bindless textures, when CbufSlot is not equal to the current TextureBufferIndex. Specifically fixes a random chance of full screen colour flickering in Super Mario Party. * Apply suggestions from code review Oops Co-authored-by: gdkchan <gab.dark.100@gmail.com> Co-authored-by: gdkchan <gab.dark.100@gmail.com>
This commit is contained in:
parent
c805542b29
commit
0129250c2e
10 changed files with 35 additions and 27 deletions
|
@ -184,16 +184,17 @@ namespace Ryujinx.Graphics.Gpu.Shader
|
|||
/// Gets the texture descriptor for a given texture on the pool.
|
||||
/// </summary>
|
||||
/// <param name="handle">Index of the texture (this is the word offset of the handle in the constant buffer)</param>
|
||||
/// <param name="cbufSlot">Constant buffer slot for the texture handle</param>
|
||||
/// <returns>Texture descriptor</returns>
|
||||
public override Image.ITextureDescriptor GetTextureDescriptor(int handle)
|
||||
public override Image.ITextureDescriptor GetTextureDescriptor(int handle, int cbufSlot)
|
||||
{
|
||||
if (_compute)
|
||||
{
|
||||
return _context.Methods.TextureManager.GetComputeTextureDescriptor(_state, handle);
|
||||
return _context.Methods.TextureManager.GetComputeTextureDescriptor(_state, handle, cbufSlot);
|
||||
}
|
||||
else
|
||||
{
|
||||
return _context.Methods.TextureManager.GetGraphicsTextureDescriptor(_state, _stageIndex, handle);
|
||||
return _context.Methods.TextureManager.GetGraphicsTextureDescriptor(_state, _stageIndex, handle, cbufSlot);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue