Uses SIMD operations on the RasterizerAccelerated::AnalyzeVertexArray
function, which is hot code. Slightly reduces GPU processing time
on all games.
This idea was suggested by an anonymous contributor.
Co-authored-by: OpenSauce04 <opensauce04@gmail.com>
Enables the use of SSE4.2 instructions on x86_64 CPUs, allowing
compilers to automatically vectorize some loops on citra_common.
A CMake toggle ENABLE_SSE42 (ON by default) has been added
to enable this behaviour.
This change breaks compatibility with CPUs that do not have
SSE4.2 instructions. All modern CPUs (from 2011 onwards) should
always have these instructions. Manual compilation will be
needed for older CPUs.
A message has been added to report if the CPU is incompatible
when starting the emulator.
Co-authored-by: OpenSauce04 <opensauce04@gmail.com>
* android: Enhance shortcut customization with a custom dialog
Adds ability to customize game shortcuts with:
- Custom name input
- Editable icon via image picker
- Ability to stretch to fit or zoom to fit the shortcut icon
* Code cleanup
* SearchFragment.kt: Updated license header
---------
Co-authored-by: Kleidis <167202775+kleidis@users.noreply.github.com>
* Add upright boolean for portrait mode
* Add the `upright_screen` boolean to the UI as a switch & in-game
* ScreenAdjustmentUtil.kt: Updated license header
---------
Co-authored-by: Kleidis <167202775+kleidis@users.noreply.github.com>
* Refactor SetupFragment to support multiple buttons in one page
* Add new `PageButton` data class
* Programmatic button creation && button disabling in setUpAdapter
* Refactor SetupWarningDialogFragment to support multiple titles, descriptions, and help links
* Rework CitraDirectoryHelper to support button step state
* Update warning message for user folder selection step
* Updated license headers
* Code cleanup
* "skip setting the user folder" --> "skip setting up the user folder"
* Fixed typos in string names
* Break `select_emulator_data_folder_description` string over two lines
* `select_emulator_data_folder` --> `select_emulator_data_folders`
* Code cleanup #2
* Removed seemingly accidentally duplicated block of code
* Removed stray newlines
---------
Co-authored-by: Kleidis <167202775+kleidis@users.noreply.github.com>
It seems that certain environments still don't have access to `std::format` yet, and I missed this because it built fine on my machine and CI passed because the code using `std::format` wasn't included in non-tagged builds.
When the frame limit was set to 0 (unthrottled), the Vulkan present mode would be unintentionally set to FIFO, which caps out at the monitor's refresh rate
* android: Improve performance stats overlay settings and functionality
* Add battery temp functions
* Readd frametime
* Corrected `perf_overlay_position` being placed in the wrong `default_ini.h` file
* Fixed the word "overlay" being repeatedly misspelled in function names
* `updateshowStatsOverlay` --> `updateShowStatsOverlay`
* Increased frequency of performance overlay updates
Changed from every 3 seconds to every 1 second
* Adjusted overlay margins to avoid text being lost behind rounded corner cutouts
* Fix performance overlay updates being stacked when changing orientation
* Changed out host RAM usage statistic for available host RAM
* Removed seemingly unused code
* "FT" --> "Frametime" in overlay
* Use non-breaking spaces to control how the overlay text breaks
Also used a vertical box drawing character instead of a pipe for the divider because it looks slightly nicer
* Renamed/adjusted remnants of the "Show System Memory Usage" setting
* Replaced Performance Stats Overlay icon with a stock clip art image from Android Studio
* Made performance overlay setting value names and strings less generic
* Rebranded Performance Stats Overlay as simply "Performance Overlay"
* Rewrote performance overlay settings description
* Improved naming consistency
* Rebranded "Show Overlay" toggle to "Show Controller Overlay"
This is to avoid confusion with the new performance overlay
* nitpick: Fixed order of imports in EmulationFragment.kt
* More string name consistency improvements
* Fixed compile failure due to a binding name not being updated
* Changed Performance Overlay setting headers
* EmulationFragment.kt: Formatting corrections
* Removed seemingly misplaced call to `updateShowPerformanceOverlay`
* `OVERLAY_POSITION` --> `PERFORMANCE_OVERLAY_POSITION`
---------
Co-authored-by: Kleidis <167202775+kleidis@users.noreply.github.com>
Co-authored-by: Zephyron <zephyron@citron-emu.orgq>