aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Shader/Instructions
AgeCommit message (Collapse)Author
2021-10-18Initial tessellation shader support (#2534)gdkchan
* Initial tessellation shader support * Nits * Re-arrange built-in table * This is not needed anymore * PR feedback
2021-10-17Add missing U8/S8 types from shader I2I instruction (#2740)gdkchan
* Add missing U8/S8 types from shader I2I instruction * Better names * Fix dstIsSignedInt
2021-10-17Implement SHF (funnel shift) shader instruction (#2702)gdkchan
* Implement SHF shader instruction * Shader cache version bump * Better name
2021-10-12Rewrite shader decoding stage (#2698)gdkchan
* Rewrite shader decoding stage * Fix P2R constant buffer encoding * Fix PSET/PSETP * PR feedback * Log unimplemented shader instructions * Implement NOP * Remove using * PR feedback
2021-09-02Fix TXQ for 3D textures. (#2613)riperiperi
* Fix TXQ for 3D textures. Assumes the texture is 3D if the component mask contains Z. This fixes a bug in UE4 games where parts of the map had garbage pointers to lighting voxels, as the lookup 3D texture was not being initialized. Most notable game is THPS1+2. May need another PR to keep image store data alive and properly flush it in order using the AutoDeleteCache. * Get sampler type for TextureSize from bound textures.
2021-08-31Implement Shader Instructions SUATOM and SURED (#2090)riperiperi
* Initial Implementation * Further improvements (no support for float/64-bit types) * Merge atomic and reduce instructions, add missing format switch * Fix rebase issues. * Not used. * Whoops. Fixed. * Partial implementation of inc/dec, cleanup and TODOs * Remove testing path * Address Feedback
2021-08-27Initial support for shader attribute indexing (#2546)gdkchan
* Initial support for shader attribute indexing * Support output indexing too, other improvements * Fix order * Address feedback
2021-08-11Use a new approach for shader BRX targets (#2532)gdkchan
* Use a new approach for shader BRX targets * Make shader cache actually work * Improve the shader pattern matching a bit * Extend LDC search to predecessor blocks, catches more cases * Nit * Only save the amount of constant buffer data actually used. Avoids crashes on partially mapped buffers * Ignore Rd on predicate instructions, as they do not have a Rd register (catches more cases)
2021-07-09Unscale textureSize when resolution scaling is used (#2441)gdkchan
* Unscale textureSize when resolution scaling is used * Fix textureSize on compute * Flag texture size as needing res scale values too
2021-06-23Fix shader texture LOD query (#2397)gdkchan
2021-05-19Move shader resource descriptor creation out of the backend (#2290)gdkchan
* Move shader resource descriptor creation out of the backend * Remove now unused code, and other nits * Shader cache version bump * Nits * Set format for bindless image load/store * Fix buffer write flag
2021-04-20Only enable clip distance if written to on shader (#2217)gdkchan
* Only enable clip distance if written to on shader * Signal InstanceId use through FeatureFlags * Shader cache version bump
2021-04-02Implement shader HelperThreadNV (#2163)gdkchan
* Implement shader HelperThreadNV * Bump shader cache version * Use gl_HelperInvocation since its supported across all vendors * Nit
2021-03-27Fix ZN flags set for shader instructions using RZ.CC dest (#2147)gdkchan
* Fix ZN flags set for shader instructions using RZ.CC dest * Shader cache version bump and nits
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-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-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-10Implement ATOM shader instruction (#1687)gdkchan
* Implement ATOM shader instruction * Fix reduction type decoding
2020-11-02Support res scale on images, correctly blacklist for SUST, move logic out of ↵riperiperi
backend. (#1657) * Support res scale on images, correctly blacklist for SUST, move logic out of backend. * Fix Typo
2020-10-25Implement CAL and RET shader instructions (#1618)gdkchan
* Add support for CAL and RET shader instructions * Remove unused stuff * Fix a bug that could cause the wrong values to be passed to a function * Avoid repopulating function id dictionary every time * PR feedback * Fix vertex shader A/B merge
2020-10-25Fix shader image load/store array index register (#1637)gdkchan
* Fix shader image load/store array index register * Y should come before the array index
2020-10-12Implement LEA.HI shader instruction (#1609)gdkchan
2020-10-12Add support for shader constant buffer slot indexing (#1608)gdkchan
* Add support for shader constant buffer slot indexing * Fix typo
2020-09-29Convert 1D texture targets to 2D (#1584)gdkchan
* Convert 1D texture targets to 2D * Fix typo * Simplify some code * Should mask that too * Consistency
2020-09-01Fix PSL and MRG flags on XMAD cbuf-reg shader instruction (#1520)gdkchan
2020-07-30Refactor shader translator ShaderConfig and reduce the number of out args ↵gdkchan
(#1438)
2020-07-07Implement Zero-Configuration Resolution Scaling (#1365)riperiperi
* Initial implementation of Render Target Scaling Works with most games I have. No GUI option right now, it is hardcoded. Missing handling for texelFetch operation. * Realtime Configuration, refactoring. * texelFetch scaling on fragment shader (WIP) * Improve Shader-Side changes. * Fix potential crash when no color/depth bound * Workaround random uses of textures in compute. This was blacklisting textures in a few games despite causing no bugs. Will eventually add full support so this doesn't break anything. * Fix scales oscillating when changing between non-native scales. * Scaled textures on compute, cleanup, lazier uniform update. * Cleanup. * Fix stupidity * Address Thog Feedback. * Cover most of GDK's feedback (two comments remain) * Fix bad rename * Move IsDepthStencil to FormatExtensions, add docs. * Fix default config, square texture detection. * Three final fixes: - Nearest copy when texture is integer format. - Texture2D -> Texture3D copy correctly blacklists the texture before trying an unscaled copy (caused driver error) - Discount small textures. * Remove scale threshold. Not needed right now - we'll see if we run into problems. * All CPU modification blacklists scale. * Fix comment.
2020-07-04Implement shader LEA instruction and improve bindless image load/store (#1355)gdkchan
2020-05-27Support separate textures and samplers (#1216)gdkchan
* Support separate textures and samplers * Add missing bindless flag, fix SNORM format on buffer textures * Add missing separation * Add comments about the new handles
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-23Implement TMML and TMML.B (#1270)Thog
* Implement TMML and TMML.B This implement TMML and TMML.B instructions * Fix TmmlB declaration alignment * Address gdkchan's comments * Fix inverted encoding definitions
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-25Fix mode and Reg08.H1 decoding on XMAD instruction (#1156)gdkchan
2020-04-25Implement texture buffers (#1152)gdkchan
* Implement texture buffers * Throw NotSupportedException where appropriate
2020-04-22Remove leftover of debugging code for shader texture format (#1141)gdkchan
2020-04-22Implement SULD shader instruction (#1117)gdkchan
* Implement SULD shader instruction * Some nits
2020-04-15Fix negation of HADD2 constant buffer source (#1116)gdkchan
2020-04-03Better IPA shader instruction implementation (#1082)gdkchan
* Fix varying interpolation on fragment shader * Some nits * Alignment
2020-03-30Implement FCMP shader instruction (#1067)gdkchan
2020-03-26Implement NOP and stub DEPBAR shader instructions (#1041)Elise
* Implement NOP and stub DEPBAR shader instruction * Fix a few issues and formatting stuff * Remove OpCodeNop/Depbar and use OpCode instead * Fix NOP shader instruction opcode * Fix formatting
2020-03-25Implement VMNMX shader instruction (#1032)gdkchan
* Implement VMNMX shader instruction * No need for the gap on the enum * Fix typo
2020-03-23Implement ICMP shader instruction (#1010)gdkchan
2020-03-06Fix branch with CC and predicate, and a case of SYNC propagation (#967)jduncanator
2020-03-03Initial support for double precision shader instructions. (#963)gdkchan
* Implement DADD, DFMA and DMUL shader instructions * Rename FP to FP32 * Correct double immediate * Classic mistake
2020-02-14Sign-extend shader memory instruction offsets (#934)gdkchan
2020-02-02Support flat interpolation qualifier on shaders (#915)gdkchan
2020-01-09Remove some unused args on the shader translatorgdkchan
2020-01-09Fix FADD32I check for Ra negationgdkchan