* renderer_gl: Add `DebugScopes` to rasterizer and texture-runtime
Some debug scopes I added while working on https://github.com/azahar-emu/azahar/pull/2053 to help better attribute OpenGL API calls to the particular C++ callstack that called it. Helps greatly for diagnosing rendering issues.
* renderer_gl: Fix DebugScope unconditional incrementing of `global_scope_depth`
`global_scope_depth` was being incremented unconditionally in the ctor, but the
dtor was decrementing it conditionally based on
`Settings::values.renderer_debug`, allowing an imbalanced scope-depth hazard in
the case that `Settings::values.renderer_debug` is operated at runtime during a
debug-scope.
* Add a new Secondary Display Layout option on android that makes the secondary display honor swap button
* add quick menu option for secondary layout
* fix icon
* added other secondary layouts
* Add a new Secondary Display Layout option on android that makes the secondary display honor swap button
# Conflicts:
# src/core/frontend/framebuffer_layout.cpp
* add quick menu option for secondary layout
* fix icon
* added other secondary layouts
* updated secondary menu with functionality to switch external displays
Conflicts:
src/android/app/src/main/java/org/citra/citra_emu/display/SecondaryDisplay.kt
* safety checks for crash prevention
* make secondary menu only appear if a secondary display is available
* update default displayid behavior to exclude "Built"
* update odin 2 bugfix to handle other languages
* Apply clang-format
* Rename "Opposite of Primary Display" option for brevity
* Rename menu_secondary_layout_reverse_primary for consistency
* Rename SecondaryDisplayLayout::ReversePrimary for consistency
* first round of code fixes based on review
* Added android-side enable_secondary_display boolean setting, replacing secondary_display_layout = none on the android side. Exposed it in Layout settings, and secondary display layout is now only selectable if it is enabled. Support for the old option is still in the code, but should no longer be selectable.
Also renamed opposite to reverse_primary in a few other places.
* Update framebuffer layout and renderers to correctly render hybrid mode on both primary and secondary displays
* Apply clang format
* Re-apply terminology changes which were undone by a recent commit
* Removed unused string emulation_secondary_display_default
---------
Co-authored-by: OpenSauce04 <opensauce04@gmail.com>
* [cmake] Fix MoltenVK fetch order/library conflicts
Rather than dealing with `find_library` shenanigans, just set the
library path directly (when using bundled MoltenVK). System MoltenVK
solely uses `find_library`.
Avoids cache nonsense that can cause system/bundled versions to get
mixed up, and overall makes the system/bundled mvk handling a lot more
consistent
```
cmake -S . -B build -DUSE_SYSTEM_MOLTENVK=ON
-- Using MoltenVK at /opt/homebrew/lib/libMoltenVK.dylib.
cmake -S . -B build -DUSE_SYSTEM_MOLTENVK=OFF
-- Using MoltenVK at /Users/crueter/code/azahar/build/externals/MoltenVK/MoltenVK/dynamic/dylib/macOS/libMoltenVK.dylib.
cmake -S . -B build -DUSE_SYSTEM_MOLTENVK=ON
-- Using MoltenVK at /opt/homebrew/lib/libMoltenVK.dylib.
```
Signed-off-by: crueter <crueter@eden-emu.dev>
* remove old comment
Signed-off-by: crueter <crueter@eden-emu.dev>
* Cleanup
---------
Signed-off-by: crueter <crueter@eden-emu.dev>
Co-authored-by: OpenSauce04 <opensauce04@gmail.com>
Disabled texture units on OpenGL always use a null 2D texture, but there are
cases where the null texture should be a null cubemap rather than a 2D
texture to match the active texture binding state.
Fixes some errors that occur in `OpenGLState::Apply()` found
in Brain Age: Concentration Training.
This is mostly just for specificity. In practice this will never do anything in CI because there will never be any cache to use, but if there was, we wouldn't want to use it
I think this was from back when the Dockerfile was first being written, before the 'builder' and 'final' stages were introduced which make this former optimization attempt completely redundant
* ci: Add sbom and attestation
* tools: Add verify-release.sh
* verify-release.sh: Set executable permission
* verify-release.sh: Put downloads into a gitignored directory
* tools: Make verify-release also download sbom
---------
Co-authored-by: OpenSauce04 <opensauce04@gmail.com>