- Switch from Ubuntu 24.04 to Ubuntu 20.04 for better glibc compatibility
- Update ICU library version from libicu74 to libicu66 for Ubuntu 20.04
- Remove qtwebengine5-dev package that may not be available in 20.04
- Add static linking flags for libgcc and libstdc++ to reduce runtime dependencies
- Add ARCH and VERSION environment variables for AppImage build
- This should fix the '__nptl_change_stack_perm' GLIBC_PRIVATE symbol error
- AppImage will now be compatible with older Linux distributions like Nobara 42
- Reduce Linux build artifacts to only essential files (citron binary + AppImage)
- Remove build/bin/ and build/dist/ directories from artifacts (too large)
- Optimize cache to only store vcpkg and dependency files
- Remove .git/modules/ from cache to reduce size
- Remove Android .so files from artifacts, keep only APK
- This should fix the GitLab artifact upload size limit issue"
Signed-off-by: Zephyron <zephyron@citron-emu.org>
- Added APPIMAGE_EXTRACT_AND_RUN=1 environment variable
- This enables AppImage tools to work without FUSE in Docker containers
- Core build already succeeds, this fixes the final AppImage packaging step
- Added libsimpleini-dev to provide SimpleIni.h header file
- This fixes compilation error in src/frontend_common/config.cpp
- The build was 95% complete, only failing on missing SimpleIni header
- Changed zstd::zstd to zstd::libzstd in src/common/CMakeLists.txt
- vcpkg provides zstd::libzstd target, not zstd::zstd
- This fixes the CMake generation error about missing zstd::zstd target
- Added back libstb-dev, libopus-dev, and libenet-dev for header files
- These are needed because CMake uses MODULE find scripts that look for system headers
- Added CMAKE_FIND_PACKAGE_PREFER_CONFIG=ON to prioritize vcpkg config packages
- This should resolve the missing /usr/include/stb and /usr/include/opus errors
- Added glslang-tools package to provide glslangValidator for shader compilation
- This fixes CMake error about missing glslangValidator in video_core/host_shaders
- libxcb-util1-dev package does not exist in Ubuntu 24.04
- Keep libxcb-util0-dev which is the correct package name
- This should resolve the final package installation error
- Add ci-fixes to all only: rules in GitLab CI configuration
- Ensures CI jobs run on the ci-fixes branch for testing
- Allows safe testing of CI changes without affecting main branch
- Remove unavailable packages: libxcb-sync1-dev, libxcb-xkb1-dev
- Fix YAML indentation issues in before_script sections
- Remove duplicate libxcb-xinerama0-dev package
- Ensure CI pipeline can run successfully on Ubuntu 24.04
The pipeline should now be able to install dependencies and proceed with the build process.
Moved ZBCManager to `video_core/zbc_manager.cpp/h` for modularity. Added
`gl_zbc_clear.cpp/h` for efficient OpenGL color, depth, and stencil clears.
Updated `RasterizerOpenGL::Clear` to use ZBC with fallback. Added stencil
type validation. Fixed color mask and logging. Updated `CMakeLists.txt`.
Enhances performance and code organization.
Signed-off-by: Zephyron <zephyron@citron-emu.org>
This commit properly implements the ISBERD (Internal Stage Buffer Entry Read)
instruction that was previously stubbed. The implementation supports all
modes and shift types:
- Patch mode: Reads tessellation patch attributes using ir.GetPatch()
- Prim mode: Reads primitive attributes for geometry shaders
- Attr mode: Reads generic vertex attributes
- Default mode: Maintains backward compatibility
The implementation also supports:
- U16 and B32 shift modes for different data formats
- SKEW and O flags for advanced buffer addressing
- Proper data type conversions and bit casting
This fixes rendering issues in UE4 titles that rely on internal stage
buffer operations in tessellation and geometry shaders. The previous
stubbed implementation caused compatibility problems with modern
rendering pipelines.
Credit: Hayate Yoshida (吉田 疾風) <hayate@citron-emu.org> for discovering
the root cause and providing insight on the proper implementation approach.
Fixes: Internal stage buffer read operations in tessellation shaders
Resolves: UE4 title rendering issues related to ISBERD instruction
Signed-off-by: Zephyron <zephyron@citron-emu.org>
- Remove cut-off percentage labels from graph area
- Isolate graph with proper background and border
- Reduce padding and spacing to match performance overlay
- Compress leak warnings to single line
- Adjust widget size to 250x180 for consistent proportions
Signed-off-by: Zephyron <zephyron@citron-emu.org>
- Clean dark-themed overlay with real-time VRAM usage display
- Memory breakdown (Buffers, Textures, Staging) with color coding
- Interactive graph with 2-minute history and leak detection
- VRAM mode indicator with special highlighting for Insane mode
- Draggable interface with persistent positioning
- Menu integration with keyboard shortcut support
- Safe Vulkan renderer integration with exception handling
Files: CMakeLists.txt, main.cpp, main.h, main.ui, uisettings.h, vram_overlay.cpp, vram_overlay.h
Signed-off-by: Zephyron <zephyron@citron-emu.org>