mirror of
https://github.com/Ryubing/Ryujinx.git
synced 2025-11-28 23:22:23 -05:00
Metal: Compute Shaders (#19)
* check for too bix texture bindings * implement lod query * print shader stage name * always have fragment input * resolve merge conflicts * fix: lod query * fix: casting texture coords * support non-array memories * use structure types for buffers * implement compute pipeline cache * compute dispatch * improve error message * rebind compute state * bind compute textures * pass local size as an argument to dispatch * implement texture buffers * hack: change vertex index to vertex id * pass support buffer as an argument to every function * return at the end of function * fix: certain missing compute bindings * implement texture base * improve texture binding system * remove useless exception * move texture handle to texture base * fix: segfault when using disposed textures --------- Co-authored-by: Samuliak <samuliak77@gmail.com> Co-authored-by: SamoZ256 <96914946+SamoZ256@users.noreply.github.com>
This commit is contained in:
committed by
Evan Husted
parent
65da0569a3
commit
f00cf8704f
@@ -200,7 +200,7 @@ namespace Ryujinx.Graphics.Gpu.Engine.Compute
|
||||
|
||||
_channel.BufferManager.CommitComputeBindings();
|
||||
|
||||
_context.Renderer.Pipeline.DispatchCompute(qmd.CtaRasterWidth, qmd.CtaRasterHeight, qmd.CtaRasterDepth);
|
||||
_context.Renderer.Pipeline.DispatchCompute(qmd.CtaRasterWidth, qmd.CtaRasterHeight, qmd.CtaRasterDepth, qmd.CtaThreadDimension0, qmd.CtaThreadDimension1, qmd.CtaThreadDimension2);
|
||||
|
||||
_3dEngine.ForceShaderUpdate();
|
||||
}
|
||||
|
||||
@@ -211,7 +211,10 @@ namespace Ryujinx.Graphics.Gpu.Engine.Threed.ComputeDraw
|
||||
_context.Renderer.Pipeline.DispatchCompute(
|
||||
BitUtils.DivRoundUp(_count, ComputeLocalSize),
|
||||
BitUtils.DivRoundUp(_instanceCount, ComputeLocalSize),
|
||||
1);
|
||||
1,
|
||||
ComputeLocalSize,
|
||||
ComputeLocalSize,
|
||||
ComputeLocalSize);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -260,7 +263,10 @@ namespace Ryujinx.Graphics.Gpu.Engine.Threed.ComputeDraw
|
||||
_context.Renderer.Pipeline.DispatchCompute(
|
||||
BitUtils.DivRoundUp(primitivesCount, ComputeLocalSize),
|
||||
BitUtils.DivRoundUp(_instanceCount, ComputeLocalSize),
|
||||
_geometryAsCompute.Info.ThreadsPerInputPrimitive);
|
||||
_geometryAsCompute.Info.ThreadsPerInputPrimitive,
|
||||
ComputeLocalSize,
|
||||
ComputeLocalSize,
|
||||
ComputeLocalSize);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user