summaryrefslogtreecommitdiff
path: root/src/shader_recompiler/frontend
AgeCommit message (Collapse)Author
2025-02-16build: upgrade fmt and SDL2Zephyron
Update fmt library to version 11.0.2 and make necessary adjustments: - Replace fmt/format.h includes with fmt/ranges.h - Add const qualifiers to formatter::format functions - Update CMake to require fmt version 11 Additional dependency updates: - Update SDL2 bundled version from 2.28.2 to 2.32.0 - Update catch2 to version 3.8.0 - Update vcpkg baseline to c82f74667287d3dc386bce81e44964370c91a289
2025-01-17shader_recompiler: Add stubs for CSM/FCSM flow test conditionsZephyron
Add stub implementations for previously unhandled flow test conditions in the shader recompiler's IR emitter. These conditions were previously throwing "Not Implemented" exceptions when encountered. The following flow test cases are now stubbed: - FCSM_TR (Fragment Shader Coarse/Fine Mode Test and Reject) - CSM_TA (Coarse/Fine Mode Test Accept) - CSM_TR (Coarse/Fine Mode Test and Reject) - CSM_MX (Coarse/Fine Mode Maximum) - FCSM_TA (Fragment Shader Coarse/Fine Mode Test Accept) - FCSM_MX (Fragment Shader Coarse/Fine Mode Maximum) Currently these stubs: 1. Return false (ir.Imm1(false)) as a placeholder value 2. Log a warning message indicating the stub 3. Allow shaders using these conditions to compile rather than fail This is a step toward proper implementation of coarse/fine mode shader operations. The stubs prevent crashes while making it clear which code paths need full implementation. Technical notes: - Removed the previous FCSM_TR implementation that used flag operations - Added consistent warning messages for tracking stub usage - Kept within the existing GetFlowTest switch statement structure
2025-01-17Downgrade Android SDK and build toolsZephyron
- Reduce compileSdkVersion and targetSdk from 35 to 34 - Change NDK version to 26.1.10909125 - Downgrade Android Gradle Plugin from 8.8.0 to 8.1.2 - Add androidx.constraintlayout dependency These changes improve compatibility with current Android development environment and add necessary layout support.
2025-01-17Revert "shader-recompiler: implement FCSM_TR flow test case"vampiric_x
This reverts commit 496b010927d7db3bcd6c52ddeadf34b9d9ca4f3a.
2025-01-15shader-recompiler: implement FCSM_TR flow test caseZephyron
Remove the stubbed implementation of FCSM_TR (Forward Condition Set Mode - Thread Reduction) flow test and replace it with an initial implementation using SFlag and ZFlag conditions. This provides basic functionality while allowing for future refinement based on specific shader architecture requirements.
2025-01-14Revert incorrect copyright attribution for non-contributed filesZephyron
- In commit b3facaa6bb30cdc39f2b7d632fef1e3bfeee7785, the copyright header was updated to include "Citron Homebrew Project" across multiple files, regardless of whether any contributions were made. - This commit removes the incorrect attribution and reverts the copyright header to its previous state. - Copyright attribution should only be added when meaningful contributions have been made to the file. - This commit ensures proper compliance with copyright standards and maintains correct attribution to the respective contributors. - Special thanks to Tachi for pointing out the need for these corrections and ensuring that proper attribution practices are followed.
2024-12-31shader_recompiler: Fix ISBERD instruction implementationZephyron
- Simplify ISBERD instruction to handle register-to-register moves - Remove incorrect CompositeConstruct usage - Replace with direct register value passing - Fix compilation errors in internal stage buffer handling
2024-12-31shader_recompiler: Use FPRecip in FSWZADD implementationZephyron
Simplifies the negative reciprocal calculation in FSWZADD by using the dedicated FPRecip operation instead of manually constructing a division. This change: - Replaces FPDiv(Imm32(f32(1.0f)), src_b) with FPRecip(src_b) - Results in more efficient code for calculating 1.0/x - Fixes build errors from undefined IR emitter methods
2024-12-31shader_recompiler: Fix method names in FSWZADD implementationZephyron
Fixes incorrect method names in the floating point swizzled add implementation: - FNeg -> FPNeg - FDiv -> FPDiv - FImm32(1.0f) -> Imm32(ir.f32(1.0f)) These changes align with the correct IR emitter interface naming conventions, where floating-point operations use the 'FP' prefix and immediate values are properly constructed using f32().
2024-12-31shader_recompiler: Implement ISBERD instructionZephyron
Implements the Internal Stage Buffer Entry Read (ISBERD) instruction in the Maxwell shader recompiler. This replaces the previous stubbed implementation with actual buffer reading functionality. The implementation: - Validates unsupported features (skew, o, mode, shift) - Performs buffer read using IR::InternalStageBufferRead - Stores the read value to the destination register This removes the "(STUBBED) called" warning messages that were previously being logged during shader compilation.
2024-12-31shader_recompiler: Implement ISBERD instruction modes and shiftsZephyron
Implements the ISBERD (Internal Stage Buffer Entry Read) instruction's mode and shift options that were previously throwing NotImplemented exceptions. This includes: - Patch mode for reading patch data - Prim mode for reading primitive data - Attr mode for reading attribute data - U16 shift for 16-bit unsigned values - B32 shift for 32-bit values The implementation follows Maxwell's ISA specification for handling different buffer read modes and data shifts.
2024-12-31chore: update project references and add Citron copyrightZephyron
- Replaced all references to the old project name with Citron. - Added Citron copyright information alongside existing notices in all files.
2023-11-26Merge branch 'master' into ssbo-alignAmeer J
2023-11-19Merge pull request #12066 from ameerj/nvidia-nsanityliamwhite
shader_recompiler: add byteswap pattern workaround for Nvidia
2023-11-18shader_recompiler: Fix spelling of "derivate" (#12067)Ameer J
2023-11-17shader_recompiler: add byteswap pattern workaround for NvidiaAmeer J
2023-10-31shader_recompiler: Align SSBO offsets to meet host requirementsAmeer J
Co-Authored-By: Billy Laws <blaws05@gmail.com>
2023-08-27Shader Recompiler: Auto stub special registers and dump pipelines on exception.Fernando Sahmkow
2023-08-18Shader Recomnpiler: implement textuzreGrad 3D emulation constant propagationFernando Sahmkow
2023-06-12Merge pull request #10699 from liamwhite/conditional-barrierMatías Locatti
shader_recompiler: remove barriers in conditional control flow when device lacks support
2023-06-10shader_recompiler: translate f64 to f32 when unsupported on hostLiam
2023-06-10shader_recompiler: remove barriers in conditional control flow when device ↵Liam
lacks support
2023-05-26shader_recompiler: fix copy-paste errorLiam
2023-05-11Fix Tears of the Kingdom flickering clouds and depths.Kelebek1
2023-02-19Merge pull request #9588 from liamwhite/bylaws-revertsliamwhite
Revert "shader_recompiler: Align SSBO offsets to meet host requirements"
2023-02-04shader_recompiler/value.h: Remove lingering references to S32ameerj
2023-01-29Move to Clang Format 15Levi Behunin
Depends on https://github.com/yuzu-emu/build-environments/pull/69 clang-15 primary run
2023-01-29Merge pull request #9694 from ameerj/txq-mipsliamwhite
shader_recompiler: TXQ: Skip QueryLevels when possible
2023-01-28shader_recompiler: TXQ: Skip QueryLevels when possibleameerj
2023-01-25shader_recompiler: Remove S32 IR typeameerj
The frontend IR opcodes do not distinguish between signed and unsigned integer types. Fixes broken shaders when IR validation/graphics debugging is enabled for shaders that used BitCastS32F32
2023-01-07Revert "shader_recompiler: Align SSBO offsets to meet host requirements"Liam
This reverts commit 8804a4eb23e0c4f3e4bab03dee7c204bd38bf21e.
2023-01-07Avoid OOB array access reading passthrough attr maskBilly Laws
YFC 1.5 extended the size of the varying mask used to hold passthrough attrs without considering this
2023-01-05Run clang-formatBilly Laws
2023-01-05shader_recompiler: Add support for lowering geometry passthroughBilly Laws
Reuses most of the existing code for generating the gl_Layer passthrough. Fixes geometry in Nier: Automata on GPUs without HW passthrough support.
2023-01-05shader_recompiler: Align SSBO offsets to meet host requirementsBilly Laws
We can take advantage of SSBO addresses being passed in a constant bufer to account for the extra alignment requirements in the shader itself.
2023-01-04Video_core: Address feedbackFernando Sahmkow
2023-01-01MacroHLE: Add HLE replacement for base vertex and base instance.Fernando Sahmkow
2022-12-03Merge pull request #9300 from ameerj/pchliamwhite
CMake: Use precompiled headers to improve compile times
2022-12-03Merge pull request #9289 from liamwhite/fruit-companyliamwhite
general: fix compile for Apple Clang
2022-12-01shader_recompiler: add gl_Layer translation GS for older hardwareLiam
2022-11-29value.h: remove recursive includeameerj
2022-11-22general: fix compile for Apple ClangLiam
2022-11-11Merge pull request #9167 from vonchenplus/tessliamwhite
video_core: Fix few issues in Tess stage
2022-11-11ir/texture_pass: Use host_info instead of querying Settings::values (#9176)Morph
2022-11-07video_core: Fix few issues in Tess stageFengChen
2022-11-04video_core: Fix SNORM texture buffer emulating error (#9001)Feng Chen
2022-11-03Merge pull request #8858 from vonchenplus/mipmapbunnei
video_core: Generate mipmap texture by drawing
2022-10-25Revert "shader_recompiler/dead_code_elimination: Add DeadBranchElimination pass"Feng Chen
2022-10-24Merge pull request #8873 from vonchenplus/fix_legacy_location_errorbunnei
video_core: Fix legacy to generic location unpaired
2022-10-17Address feedbackFengChen