Age | Commit message (Collapse) | Author |
|
Add proper handling of input topologies in the Geometry stage for all three
shader backends (GLASM, GLSL, SPIRV). This implementation uses a lookup table
approach to determine vertex counts based on input topology type (Points,
Lines, LinesAdjacency, Triangles, TrianglesAdjacency) and shifts the vertex
count by 16 bits as required by the invocation info format.
Additional changes:
- Fixed TessellationControl and TessellationEval stages to properly break
after emitting code
- Added proper header include for runtime_info.h in GLASM backend
- Improved code documentation with clear commenting patterns
This change ensures accurate geometry shader behavior across all backends,
improving compatibility with games that rely on proper vertex count reporting.
Signed-off-by: Zephyron <zephyron@citron-emu.org>
|
|
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
|
|
- Add proper invocation info handling for tessellation and fragment stages
- Return patch vertices info shifted by 16 bits for tessellation stages
- Return sample mask shifted by 16 bits for fragment stage
- Return standard format (0x00ff0000) for compute and other stages
- Implement consistently across SPIRV, GLSL, and GLASM backends
- Remove stubbed warning message
|
|
- 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.
|
|
- Replaced all references to the old project name with Citron.
- Added Citron copyright information alongside existing notices in all files.
|
|
|
|
|
|
GLSL: Use known cbuf sizes when possible
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
On AMD a subpixel offset of 1/512 of the texel size is applied to the texture coordinates at a ImageGather call to ensure the rounding at the texel centers is done the same way as in Maxwell or other Nvidia architectures.
See https://www.reedbeta.com/blog/texture-gathers-and-coordinate-precision/ for more details why this might be necessary.
This should fix shadow artifacts at object edges in Zelda: Breath of the Wild (#9957, #6956).
|
|
|
|
These built-ins seem to be available without needing to be declared for fragment shaders, similar i.e. to gl_FragDepth
|
|
Also fixes for texture buffers, which do not have mips eithers.
|
|
shader_recompiler: TXQ: Skip QueryLevels when possible
|
|
glasm, glsl: Implement multisampled Image Fetch
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
shader: Implement miss attribute layer
|
|
|
|
|
|
|
|
video_core: Generate mipmap texture by drawing
|
|
Disabling C4100 is similar to -Wno-unused-parameter
|
|
Fix some typos reported by Lintian
|
|
|
|
|
|
This formats all copyright comments according to SPDX formatting guidelines.
Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
|
|
|
|
|
|
|
|
|
|
Found by static analysis with PVS-Studio. Original check wasn't actually checking for OOB and would segfault in case of it.
|
|
|
|
|
|
some drivers have a bug bitwise converting floating point cbuf values to uint variables. This adds a workaround for these drivers to make all cbufs uint and convert to floating point as needed.
|
|
|
|
Works around an nvidia driver bug, where casting the integer attributes to float and back to an integer always returned 0.
|
|
|
|
|