aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Shader
AgeCommit message (Collapse)Author
2021-12-08Fix SUATOM and other texture shader instructions with RZ dest (#2885)gdkchan
* Fix SUATOM and other texture shader instructions with RZ dest * Shader cache version bump
2021-12-08Implement remaining shader double-precision instructions (#2845)gdkchan
* Implement remaining shader double-precision instructions * Shader cache version bump
2021-12-05Fix FLO.SH shader instruction with a input of 0 (#2876)gdkchan
* Fix FLO.SH shader instruction with a input of 0 * Shader cache version bump
2021-11-28infra: Migrate to .NET 6 (#2829)Mary
* infra: Migrate to .NET 6 * Rollback version naming change * Workaround .NET 6 ZipArchive API issues * ci: Switch to VS 2022 for AppVeyor CI is now ready for .NET 6 * Suppress WebClient warning in DoUpdateWithMultipleThreads * Attempt to workaround System.Drawing.Common changes on 6.0.0 * Change keyboard rendering from System.Drawing to ImageSharp * Make the software keyboard renderer multithreaded * Bump ImageSharp version to 1.0.4 to fix a bug in Image.Load * Add fallback fonts to the keyboard renderer * Fix warnings * Address caian's comment * Clean up linux workaround as it's uneeded now * Update readme Co-authored-by: Caian Benedicto <caianbene@gmail.com>
2021-11-14Fix shader integer from/to double conversion (#2831)gdkchan
2021-11-08Support shader gl_Color, gl_SecondaryColor and gl_TexCoord built-ins (#2817)gdkchan
* Support shader gl_Color, gl_SecondaryColor and gl_TexCoord built-ins * Shader cache version bump * Fix back color value on fragment shader * Disable IPA multiplication for fixed function attributes and back color selection
2021-11-08Fix bindless/global memory elimination with inverted predicates (#2826)gdkchan
* Fix bindless/global memory elimination with inverted predicates * Shader cache version bump
2021-11-08Fix InvocationInfo on geometry shader and bindless default integer const (#2822)gdkchan
* Fix InvocationInfo on geometry shader and bindless default integer const * Shader cache version bump * Consistency for the default value
2021-10-28Add support for fragment shader interlock (#2768)gdkchan
* Support coherent images * Add support for fragment shader interlock * Change to tree based match approach * Refactor + check for branch targets and external registers * Make detection more robust * Use Intel fragment shader ordering if interlock is not available, use nothing if both are not available * Remove unused field
2021-10-24Preserve image types for shader bindless surface instructions (.D variants) ↵gdkchan
(#2779) * Preserve image types for SULD/SUST .D variants * Make format unknown for surface atomic if bindless and not sized
2021-10-18Fix shader 8-bit and 16-bit STS/STG (#2741)gdkchan
* Fix 8 and 16-bit STG * Fix 8 and 16-bit STS * Shader cache version bump
2021-10-18Another workaround for NVIDIA driver 496.13 shader bug (#2750)riperiperi
* Another workaround for NVIDIA driver 496.13 shader bug This might work better than the other one. Give this a test to see if it fixes/doesn't fix issues with the other one. The problem seems to be when any variable assignment happens with a negation. `temp_1 = -temp_0;` seems to trigger weird behaviour, but `temp_1 = 0.0 - temp_0;` does not. This also might to extend towards integer types? * Update cache version * Add disclaimer comment * Wording
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-17Extend bindless elimination to work with masked and shifted handles (#2727)gdkchan
* Extent bindless elimination to work with masked handles * Extend bindless elimination to catch shifted pattern, refactor handle packing/unpacking
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-29Only make render target 2D textures layered if needed (#2646)gdkchan
* Only make render target 2D textures layered if needed * Shader cache version bump * Ensure topology is updated on channel swap
2021-09-19Use shader subgroup extensions if shader ballot is not supported (#2627)gdkchan
* Use shader subgroup extensions if shader ballot is not supported * Shader cache version bump + cleanup * The type is still required on the table
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-30Fix out-of-bounds shader thread shuffle (#2605)gdkchan
* Fix out-of-bounds shader thread shuffle * Shader cache version bump
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-11Ensure render scale is initialized to 1 on the backend (#2543)gdkchan
2021-08-11Workaround for Intel FrontFacing built-in variable bug (#2540)gdkchan
2021-08-11Make sure attributes used on subsequent shader stages are initialized (#2538)gdkchan
2021-08-11Replace BGRA and scale uniforms with a uniform block (#2496)gdkchan
* Replace BGRA and scale uniforms with a uniform block * Setting the data again on program change is no longer needed * Optimize and resolve some warnings * Avoid redundant support buffer updates * Some optimizations to BindBuffers (now inlined) * Unify render scale arrays
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-18shadertools: Prepare for new target Languages and APIs (#2465)Mary
* shadertools: Prepare for new target Langugaes and APIs This improves shader tools command line by adding support for target language and api. * Address gdkchan's comments
2021-07-12Fix shader compilation on shaders that uses rectangle textures (#2471)gdkchan
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-07-06Allow shader language and target API to be specified on the shader ↵gdkchan
translator (#2402)
2021-06-25Fix default value for unwritten shader outputs (#2412)gdkchan
* Fix shader default output values * Shader cache version bump
2021-06-25Fix texture sampling with depth compare and LOD level or bias (#2404)gdkchan
* Fix texture sampling with depth compare and LOD level or bias * Shader cache version bump * nit: Sorting
2021-06-23Fix shader texture LOD query (#2397)gdkchan
2021-06-23Pass all inputs when geometry shader passthrough is enabled (#2362)gdkchan
* Pass all inputs when geometry shader passthrough is enabled * Shader cache version bump
2021-06-20Fix separate bindless sampler at offset 0 (#2360)gdkchan
2021-06-15End shader decoding when reaching a block that starts with an infinite loop ↵riperiperi
(after BRX) (#2367) * End shader decoding when reaching an infinite loop The NV shader compiler puts these at the end of shaders. * Update shader cache version
2021-06-09Support bindless textures with separate constant buffers for texture and ↵gdkchan
sampler (#2339)
2021-06-03Fix shaders with mixed PBK and SSY addresses on the stack (#2329)gdkchan
* Fix shaders with mixed PBK and SSY addresses on the stack * Address PR feedback and nits
2021-05-31Do not attempt to normalize SNORM image buffers on shaders (#2317)gdkchan
* Do not attempt to normalize SNORM image buffers on shaders * Shader cache version bump
2021-05-24Fix value of constant vertex attributes (#2307)gdkchan
2021-05-21Fix dimensions check for scale eligibility (#2301)riperiperi
2021-05-20Fix buffer and texture uses not being propagated for vertex A/B shaders (#2300)gdkchan
* Fix buffer and texture uses not being propagated for vertex A/B shaders * Shader cache version bump
2021-05-20Fix constant buffer array size when indexing is used and other buffer ↵gdkchan
descriptor and resolution scale regressions (#2298) * Fix constant buffer array size when indexing is used * Change default QueryConstantBufferUse value * Fix more regressions * Ensure proper order
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-05-19Pass CbufSlot when getting info from the texture descriptor (#2291)riperiperi
* Pass CbufSlot when getting info from the texture descriptor Fixes some issues with bindless textures, when CbufSlot is not equal to the current TextureBufferIndex. Specifically fixes a random chance of full screen colour flickering in Super Mario Party. * Apply suggestions from code review Oops Co-authored-by: gdkchan <gab.dark.100@gmail.com> Co-authored-by: gdkchan <gab.dark.100@gmail.com>
2021-05-01Fix shader buffer write flag on atomic instructions (#2261)gdkchan
* Fix shader buffer write flag on atomic instructions * Shader cache version bump
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-18Improve shader global memory to storage pass (#2200)gdkchan
* Improve shader global memory to storage pass * Formatting and more comments * Shader cache version bump