Implement VMAD shader instruction and improve InvocationInfo and ISBERD handling (#3251)
* Implement VMAD shader instruction and improve InvocationInfo and ISBERD handling * Shader cache version bump * Fix typo
This commit is contained in:
parent
3139a85a2b
commit
e44a43c7e1
9 changed files with 171 additions and 61 deletions
|
@ -168,10 +168,11 @@ namespace Ryujinx.Graphics.Shader.Instructions
|
|||
{
|
||||
InstIsberd op = context.GetOp<InstIsberd>();
|
||||
|
||||
// This instruction performs a load from ISBE memory,
|
||||
// however it seems to be only used to get some vertex
|
||||
// input data, so we instead propagate the offset so that
|
||||
// it can be used on the attribute load.
|
||||
// This instruction performs a load from ISBE (Internal Stage Buffer Entry) memory.
|
||||
// Here, we just propagate the offset, as the result from this instruction is usually
|
||||
// used with ALD to perform vertex load on geometry or tessellation shaders.
|
||||
// The offset is calculated as (PrimitiveIndex * VerticesPerPrimitive) + VertexIndex.
|
||||
// Since we hardcode PrimitiveIndex to zero, then the offset will be just VertexIndex.
|
||||
context.Copy(GetDest(op.Dest), GetSrcReg(context, op.SrcA));
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue