forked from MeloNX/MeloNX
Work around Adreno compute dispatch crash when changing grpahics state with a compute pipeline bound
This commit is contained in:
parent
437bfdbd5a
commit
2814fa60bf
@ -1588,6 +1588,11 @@ namespace Ryujinx.Graphics.Vulkan
|
|||||||
|
|
||||||
DynamicState.ReplayIfDirty(Gd.Api, CommandBuffer);
|
DynamicState.ReplayIfDirty(Gd.Api, CommandBuffer);
|
||||||
|
|
||||||
|
// Setting graphics state with a compute pipeline bound crashes the Adreno driver.
|
||||||
|
if (pbp == PipelineBindPoint.Graphics)
|
||||||
|
{
|
||||||
|
DynamicState.ReplayIfDirty(Gd.Api, CommandBuffer);
|
||||||
|
|
||||||
if (_needsIndexBufferRebind && _indexBufferPattern == null)
|
if (_needsIndexBufferRebind && _indexBufferPattern == null)
|
||||||
{
|
{
|
||||||
_indexBuffer.BindIndexBuffer(Gd, Cbs);
|
_indexBuffer.BindIndexBuffer(Gd, Cbs);
|
||||||
@ -1619,6 +1624,7 @@ namespace Ryujinx.Graphics.Vulkan
|
|||||||
|
|
||||||
_vertexBufferUpdater.Commit(Cbs);
|
_vertexBufferUpdater.Commit(Cbs);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (_stateDirty || Pbp != pbp)
|
if (_stateDirty || Pbp != pbp)
|
||||||
{
|
{
|
||||||
|
@ -246,8 +246,12 @@ namespace Ryujinx.Graphics.Vulkan
|
|||||||
|
|
||||||
SignalCommandBufferChange();
|
SignalCommandBufferChange();
|
||||||
|
|
||||||
|
// Setting graphics state with a compute pipeline bound crashes the Adreno driver.
|
||||||
|
if (Pbp == PipelineBindPoint.Graphics)
|
||||||
|
{
|
||||||
DynamicState.ReplayIfDirty(Gd.Api, CommandBuffer);
|
DynamicState.ReplayIfDirty(Gd.Api, CommandBuffer);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void FlushCommandsImpl()
|
public void FlushCommandsImpl()
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user