aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Graphics.Shader/Instructions
AgeCommit message (Collapse)Author
2024-09-18Implement support for shader ATOM.EXCH instruction (#7320)gdkchan
* Implement support for shader ATOM.EXCH instruction * Shader cache version bump * Check type
2024-06-16Extend bindless elimination to catch a few more specific cases (#6921)gdkchan
* Catch more cases on bindless elimination * Match blocks with the same comparison condition * Shader cache version bump
2024-05-26Allow texture arrays to use separate descriptor sets on Vulkan (#6870)gdkchan
* Report base and extra sets from the backend * Pass texture set index everywhere * Key textures using set and binding (rather than just binding) * Start using extra sets for array textures * Shader cache version bump * Separate new commands, some PR feedback * Introduce new manual descriptor set reservation method that prevents it from being used by something else while owned by an array * Move bind extra sets logic to new method * Should only use separate array is MaximumExtraSets is not zero * Format whitespace
2024-05-14Add support for bindless textures from storage buffer on Vulkan (#6721)gdkchan
* Halve primitive ID when converting quads to triangles * Shader cache version bump * Add support for bindless textures from storage buffer on Vulkan
2024-02-04Fix depth compare value for TLD4S shader instruction with offset (#6253)gdkchan
* Fix depth compare value for TLD4S shader instruction with offset * Shader cache version bump
2024-02-04Remove component operand for texture gather with depth compare (#6247)gdkchan
2023-10-22Fix NRE on gather operations with depth compare on macOS (#5832)gdkchan
2023-10-03Implement textureSamples texture query shader instruction (#5750)gdkchan
* Implement textureSamples texture query shader instruction * Shader cache version bump
2023-08-29Geometry shader emulation for macOS (#5551)gdkchan
* Implement vertex and geometry shader conversion to compute * Call InitializeReservedCounts for compute too * PR feedback * Set clip distance mask for geometry and tessellation shaders too * Transform feedback emulation only for vertex
2023-08-16Fix vote and shuffle shader instructions on AMD GPUs (#5540)gdkchan
* Move shuffle handling out of the backend to a transform pass * Handle subgroup sizes higher than 32 * Stop using the subgroup size control extension * Make GenerateShuffleFunction static * Shader cache version bump
2023-08-16Prefer jagged arrays over multidimensional (#5562)Marco Carvalho
* fix CA1814 * Update .editorconfig removing .editorconfig rule
2023-08-16Implement scaled vertex format emulation (#5564)gdkchan
* Implement scaled vertex format emulation * Auto-format (whitespace) * Delete ToVec4Type
2023-08-13Delete ShaderConfig and organize shader resources/definitions better (#5509)gdkchan
* Move some properties out of ShaderConfig * Stop using ShaderConfig on backends * Replace ShaderConfig usages on Translator and passes * Move remaining properties out of ShaderConfig and delete ShaderConfig * Remove ResourceManager property from TranslatorContext * Move Rewriter passes to separate transform pass files * Fix TransformPasses.RunPass on cases where a node is removed * Move remaining ClipDistancePrimitivesWritten and UsedFeatures updates to decode stage * Reduce excessive parameter passing a bit by using structs more * Remove binding parameter from ShaderProperties methods since it is redundant * Replace decoder instruction checks with switch statement * Put GLSL on the same plan as SPIR-V for input/output declaration * Stop mutating TranslatorContext state when Translate is called * Pass most of the graphics state using a struct instead of individual query methods * Auto-format * Auto-format * Add backend logging interface * Auto-format * Remove unnecessary use of interpolated strings * Remove more modifications of AttributeUsage after decode * PR feedback * gl_Layer is not supported on compute
2023-08-07Do not add more code after alpha test discard on fragment shader (#5529)gdkchan
* Do not add more code after alpha test discard on fragment shader * Shader cache version bump
2023-07-30(Graphics.Shader): Handle EmitSuatom constant dests and EmitSuld zero dest ↵Domenico V
reg. (#5504) * (Graphics.Shader): Handle EmitSuatom constant dests. * Proper fix for EmitSuatom; fix EmitSuld.
2023-07-29Fix incorrect fragment origin when YNegate is enabled (#4673)gdkchan
* Fix incorrect fragment origin when YNegate is enabled * Shader cache version bump * Do not update support buffer if shader does not read gl_FragCoord * Pass unscaled viewport size to the support buffer
2023-07-03Stop identifying shader textures with handle and cbuf, use binding instead ↵gdkchan
(#5266) * Stop identifying shader textures with handle and cbuf, use binding instead * Remove now unused code * Consider image operations as having accurate type information too I don't know why that was not the case before * Fix missing unscale on InsertCoordNormalization, stop calling SetUsageFlagsForTextureQuery when not needed * Shader cache version bump * Change get texture methods to return descriptors created from ResourceManager state This is required to ensure that reserved textures and images will not be bound as a guest texture/image * Fix BindlessElimination.SetHandle inserting coords at the wrong place
2023-06-28[Ryujinx.Graphics.Shader] Address dotnet-format issues (#5373)TSRBerry
* dotnet format style --severity info Some changes were manually reverted. * Restore a few unused methods and variables * Silence dotnet format IDE0060 warnings * Silence dotnet format IDE0052 warnings * Silence dotnet format IDE0059 warnings * Address or silence dotnet format CA1069 warnings * Address or silence dotnet format CA2211 warnings * Address review comments * Fix formatting for switch expressions * Address most dotnet format whitespace warnings * Apply dotnet format whitespace formatting A few of them have been manually reverted and the corresponding warning was silenced * Format if-blocks correctly * Run dotnet format whitespace after rebase * Run dotnet format style after rebase * Run dotnet format whitespace after rebase * Run dotnet format style after rebase * Run dotnet format after rebase and remove unused usings - analyzers - style - whitespace * Disable 'prefer switch expression' rule * Add comments to disabled warnings * Fix naming rule violation, Convert shader properties to auto-property and convert values to const * Simplify properties and array initialization, Use const when possible, Remove trailing commas * Run dotnet format after rebase * Address IDE0251 warnings * Address a few disabled IDE0060 warnings * Silence IDE0060 in .editorconfig * Run dotnet format after rebase * Revert "Simplify properties and array initialization, Use const when possible, Remove trailing commas" This reverts commit 9462e4136c0a2100dc28b20cf9542e06790aa67e. * dotnet format whitespace after rebase * First dotnet format pass * Fix naming rule violations * Add trailing commas * Remove unused members and most unnecessary value assignments * Remove more unnecessary assignments * Remove NRE suppressor
2023-06-22Fix regression introduced by 1.1.1733 on Intel GPUs (#5311)Kurochi51
* Fix regression introduced by 1.1733 on Intel iGPUs * Should have actually figured the variable, oops. * maybe something goes wrong here? honestly lost * Shader cache bump
2023-06-17Ensure shader local and shared memory sizes are not zero (#5321)gdkchan
2023-06-15Implement Load/Store Local/Shared and Atomic shared using new instructions ↵gdkchan
(#5241) * Implement Load/Store Local/Shared and Atomic shared using new instructions * Remove now unused code * Fix base offset register overwrite * Fix missing storage buffer set index when generating GLSL for Vulkan * Shader cache version bump * Remove more unused code * Some PR feedback
2023-06-03Implement shader storage buffer operations using new Load/Store instructions ↵gdkchan
(#4993) * Implement storage buffer operations using new Load/Store instruction * Extend GenerateMultiTargetStorageOp to also match access with constant offset, and log and comments * Remove now unused code * Catch more complex cases of global memory usage * Shader cache version bump * Extend global access elimination to work with more shared memory cases * Change alignment requirement from 16 bytes to 8 bytes, handle cases where we need more than 16 storage buffers * Tweak preferencing to catch more cases * Enable CB0 elimination even when host storage buffer alignment is > 16 (for Intel) * Fix storage buffer bindings * Simplify some code * Shader cache version bump * Fix typo * Extend global memory elimination to handle shared memory with multiple possible offsets and local memory
2023-05-22Implement p2rc, p2ri, p2rr and r2p.cc shaders (#5031)makigumo
* implement P2rC, P2rI, P2rR shaders * implement R2p.CC shader * bump CodeGenVersion * address feedback
2023-05-20Replace constant buffer access on shader with new Load instruction (#4646)gdkchan
2023-04-27Move solution and projects to srcTSR Berry