aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Gpu/Shader/ShaderCache.cs
AgeCommit message (Collapse)Author
2021-01-29Implement geometry shader passthrough (#1961)gdkchan
* Implement geometry shader passthrough * Cache version change
2021-01-28Support multiple destination operands on shader IR and shuffle predicates ↵gdkchan
(#1964) * Support multiple destination operands on shader IR and shuffle predicates * Cache version change
2021-01-26Fix compute shader code dumping (#1960)gdkchan
2021-01-17Implement lazy flush-on-read for Buffers (SSBO/Copy) (#1790)riperiperi
* Initial implementation of buffer flush (VERY WIP) * Host shaders need to be rebuilt for the SSBO write flag. * New approach with reserved regions and gl sync * Fix a ton of buffer issues. * Remove unused buffer unmapped behaviour * Revert "Remove unused buffer unmapped behaviour" This reverts commit f1700e52fb8760180ac5e0987a07d409d1e70ece. * Delete modified ranges on unmap Fixes potential crashes in Super Smash Bros, where a previously modified range could lie on either side of an unmap. * Cache some more delegates. * Dispose Sync on Close * Also create host sync for GPFifo syncpoint increment. * Copy buffer optimization, add docs * Fix race condition with OpenGL Sync * Enable read tracking on CommandBuffer, insert syncpoint on WaitForIdle * Performance: Only flush individual pages of SSBO at a time This avoids flushing large amounts of data when only a small amount is actually used. * Signal Modified rather than flushing after clear * Fix some docs and code style. * Introduce a new test for tracking memory protection. Sucessfully demonstrates that the bug causing write protection to be cleared by a read action has been fixed. (these tests fail on master) * Address Comments * Add host sync for SetReference This ensures that any indirect draws will correctly flush any related buffer data written before them. Fixes some flashing and misplaced world geometry in MH rise. * Make PageAlign static * Re-enable read tracking, for reads.
2021-01-14Fix shader LOP3 predicate write condition (#1910)gdkchan
* Fix LOP3 predicate write condition * Bump shader cache version
2021-01-13Implement shader CC mode for ISCADD, X mode for ISETP and fix STL/STS/STG ↵gdkchan
with RZ (#1901) * Implement shader CC mode for ISCADD, X mode for ISETP and fix STS/STG with RZ * Fix STG too and bump shader cache version * Fix wrong name * Fix Carry being inverted on comparison
2021-01-08Support conditional on BRK and SYNC shader instructions (#1878)gdkchan
* Support conditional on BRK and SYNC shader instructions * Add TODO comment and bump cache version
2020-12-13salieri: Support read-only mode if archive is already opened (#1807)Mary
This improves shader cache resilience when people opens another program that touch the cache.zip.
2020-12-01salieri: Fix missing guest GPU accessor missing on hashes (#1759)Mary
This adds the guest GPU accessor to hashes computation. As this change all the hashes from the cache, I added some migration logic. This is required for #1755.
2020-11-17shader cache: Fix invalid virtual address clean up (#1717)Mary
* shader cache: Fix invalid virtual address clean up This fix an issue causing the virtual address of texture descriptors to not be cleaned up when caching and instead cleaning texture format and swizzle. This should fix duplicate high duplication in the cache for certain games and possible texture corruption issues. **THIS WILL INVALIDATE ALL SHADER CACHE LEVELS CONSIDERING THE NATURE OF THE ISSUE** * shader cache: Address gdk's comment
2020-11-13Salieri: shader cache (#1701)Mary
Here come Salieri, my implementation of a disk shader cache! "I'm sure you know why I named it that." "It doesn't really mean anything." This implementation collects shaders at runtime and cache them to be later compiled when starting a game.
2020-11-08Use explicit buffer and texture bindings on shaders (#1666)gdkchan
* Use explicit buffer and texture bindings on shaders * More XML docs and other nits
2020-07-29Fix shader regression on Intel iGPUs by reverting layout changes (#1425)gdkchan
2020-07-25Remove GPU MemoryAccessor (#1423)gdkchan
* Remove GPU MemoryAccessor * Update outdated XML doc * Update more outdated stuff
2020-07-15Initial transform feedback support (#1370)gdkchan
* Initial transform feedback support * Some nits and fixes * Update ReportCounterType and Write method * Can't change shader or TFB bindings while TFB is active * Fix geometry shader input names with new naming
2020-05-06Refactor shader GPU state and memory access (#1203)gdkchan
* Refactor shader GPU state and memory access * Fix NVDEC project build * Address PR feedback and add missing XML comments
2020-04-25Implement texture buffers (#1152)gdkchan
* Implement texture buffers * Throw NotSupportedException where appropriate
2020-04-22Implement SULD shader instruction (#1117)gdkchan
* Implement SULD shader instruction * Some nits
2020-04-02Remove output interpolation qualifier (#1070)gdkchan
2020-02-03Compare shader code using a span instead of individual reads. (#917)riperiperi
* Compare shader code using a span instead of individual reads. * Add comment for new parameter. * Remove unnecessary Math.Min
2020-02-02Use correct shader local memory size instead of a hardcoded size (#914)gdkchan
* Use correct shader local size instead of a hardcoded size * Remove unused uniform block * Update XML doc * Local memory size has 23 bits on maxwell * Generate compute QMD struct from nv open doc header * Remove dummy arrays when shared or local memory is not used, other improvements
2020-01-13Add a GetSpan method to the memory manager and use it on GPU (#877)gdkchan
2020-01-09Fix some shader disposal issuesgdkchan
2020-01-09Address PR feedbackgdkchan
2020-01-09Remove more unused codegdkchan
2020-01-09GPU resource disposalgdkchan
2020-01-09Add XML documentation to Ryujinx.Graphics.Gpu.Shadergdkchan
2020-01-09Some code cleanupgdkchan
2020-01-09Support texture rectangle targets (non-normalized coords)gdkchan
2020-01-09Support non-constant texture offsets on non-NVIDIA gpusgdkchan
2020-01-09Use correct shared memory size (in words, not bytes)gdkchan
2020-01-09Use dispatch params shared memory size when availablegdkchan
2020-01-09Use maximum shared memory size supported by hardwaregdkchan
2020-01-09Support shared color mask, implement more shader instructionsgdkchan
Support shared color masks (used by Nouveau and maybe the NVIDIA driver). Support draw buffers (also required by OpenGL). Support viewport transform disable (disabled for now as it breaks some games). Fix instanced rendering draw being ignored for multi draw. Fix IADD and IADD3 immediate shader encodings, that was not matching some ops. Implement FFMA32I shader instruction. Implement IMAD shader instruction.
2020-01-09Add a pass to turn global memory access into storage access, and do all ↵gdk
storage related transformations on IR
2020-01-09Fix shader code comparison methodgdk
2020-01-09Remove TranslatorConfig structgdk
2020-01-09Invalidate shaders when they are modifiedgdk