aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Gpu/Shader
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-02Implement Force Early Z Register (#1755)riperiperi
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-21salieri: remove a wrong debug assert (#1740)Mary
THis assert is wrong and useless now, remove it because it's annoying in Debug.
2020-11-17shader cache: Fix possible race causing crashes on manifest at startup (#1718)Mary
* shader cache: Fix possible race causing crashes on manifest at startup This fix a misplace function call ending up causing possibly two write on the cache.info at the same time. * shader cache: Make RemoveManifestEntries async too to be sure all operations are perform before starting the game
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-10-20Fix image binding format (#1625)gdkchan
* Fix image binding format * XML doc
2020-10-12Add support for shader constant buffer slot indexing (#1608)gdkchan
* Add support for shader constant buffer slot indexing * Fix typo
2020-10-03Improve BRX target detection heuristics (#1591)gdkchan
2020-09-24Implement small indexed draws and other fixes to make guest Vulkan work (#1558)gdkchan
2020-09-19Better viewport flipping and depth mode detection method (#1556)gdkchan
* Use a better viewport flipping approach * New approach to detect depth mode * nit: Sort method on the OpenGL backend * Adjust spacing on comment * Unswap near and far parameters based on ScaleZ
2020-08-04Improved Logger (#1292)mageven
* Logger class changes only Now compile-time checking is possible with the help of Nullable Value types. * Misc formatting * Manual optimizations PrintGuestLog PrintGuestStackTrace Surfaceflinger DequeueBuffer * Reduce SendVibrationXX log level to Debug * Add Notice log level This level is always enabled and used to print system info, etc... Also, rewrite LogColor to switch expression as colors are static * Unify unhandled exception event handlers * Print enabled LogLevels during init * Re-add App Exit disposes in proper order nit: switch case spacing * Revert PrintGuestStackTrace to Info logs due to #1407 PrintGuestStackTrace is now called in some critical error handlers so revert to old behavior as KThread isn't part of Guest. * Batch replace Logger statements
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-28Fix wrong face culling once and for all (#1277)gdkchan
* Viewport swizzle support on NV and clip origin * Initialize default viewport swizzle state, emulate viewport swizzle on shaders when not supported * Address PR feedback
2020-05-27Omit image format if possible, and fix BA bit (#1280)gdkchan
* Omit image format if possible, and fix BA bit * Match extension name
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-21Suppress warnings from fields never used or never assigned (CS0169 and ↵Cristallix
CS0649) (#919) * chore : disable unwanted warnings and minor code cleanup * chore : remove more warnings * fix : reorder struct correctly * fix : restore _isKernel and remove useless comment * fix : copy/paste error * fix : restore CallMethod call * fix : whitespace * chore : clean using * feat : remove warnings * fix : simplify warning removal on struct * fix : revert fields deletion and code clean up * fix : re-add RE value * fix : typo
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-09Address PR feedbackgdkchan
Add TODO comment for GL_EXT_polygon_offset_clamp
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