Rather than emitting these subroutine functions for _every_ shader, only emit
the subroutines when the `LG2` and `EX2` instructions are actually used.
This saves a good chunk of memory across all shaders.
Inspired by Tanuki3DS.
* qt: Temporarily fix fullscreen on msys2 builds
* Removed excessive endif comments
We really only need these when nesting ifdefs
* blockRoundedCorners: Invert if condition for readability
---------
Co-authored-by: OpenSauce04 <opensauce04@gmail.com>
solves a build issue a ***lot*** of [L4T Megascript](https://github.com/cobalt2727/L4T-Megascript) users were reporting to me on Linux. C++ is definitely not my strong suit, but per https://learn.microsoft.com/en-us/cpp/c-runtime-library/reference/pow-powf-powl?view=msvc-170#remarks `pow` has identical behavior in C++ projects. no clue why `powf` worked fine on your environment when developing this but not other people's.
```cmake
[ 98%] Building CXX object src/citra_qt/CMakeFiles/citra_qt.dir/qt_image_interface.cpp.o
/home/runner/azahar/src/citra_qt/notification_led.cpp:56:15: error: no member named 'powf' in namespace 'std'; did you mean simply 'powf'?
56 | float t = std::powf(pwm, 1.f / gamma);
| ^~~~~~~~~
| powf
/usr/include/aarch64-linux-gnu/bits/mathcalls.h:140:1: note: 'powf' declared here
140 | __MATHCALL_VEC (pow,, (_Mdouble_ __x, _Mdouble_ __y));
| ^
/usr/include/math.h:280:3: note: expanded from macro '__MATHCALL_VEC'
280 | __MATHCALL (function, suffix, args)
| ^
/usr/include/math.h:287:3: note: expanded from macro '__MATHCALL'
287 | __MATHDECL (_Mdouble_,function,suffix, args)
| ^
/usr/include/math.h:289:3: note: expanded from macro '__MATHDECL'
289 | __MATHDECL_1(type, function,suffix, args); \
| ^
note: (skipping 1 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
/usr/include/math.h:297:15: note: expanded from macro '__MATHDECL_1_IMPL'
297 | extern type __MATH_PRECNAME(function,suffix) args __THROW
| ^
/usr/include/math.h:326:34: note: expanded from macro '__MATH_PRECNAME'
326 | # define __MATH_PRECNAME(name,r) name##f##r
| ^
<scratch space>:97:1: note: expanded from here
97 | powf
| ^
1 error generated.
make[2]: *** [src/citra_qt/CMakeFiles/citra_qt.dir/build.make:1573: src/citra_qt/CMakeFiles/citra_qt.dir/notification_led.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/Makefile2:3481: src/citra_qt/CMakeFiles/citra_qt.dir/all] Error 2
make: *** [Makefile:166: all] Error 2
```
Ensure the scheduler worker thread has finished processing all dispatched command chunks before the rasterizer cache's garbage collector destroys sentenced surfaces.
The `SETEMIT`/`SETE` instruction only actually encodes 4 bits of possible state,
but this is currently expanded into three separate bytes of
data(four with padding) and requires three separate byte-writes for the x64 and
a64 JITs to write into. These 4 bits from the instruction can instead be
compacted into a singular 1-byte write from the JIT by encoding these 4 bits of
state into a singular byte at JIT-time, and unpacking this data is instead done
by `GeometryEmitter::Emit`. This also allows the serializer to use a singular
byte for all 3 fields now as well.
Allows individual unit-tests to be discovered, tested, and debugged by IDEs without having to run _all_ of the unit-tests just to debug one specific test.
Touch pointer rendering is now always enabled, but unless a controller is being used to move the touchscreen cursor, it will be hidden due to the timeout which is also enabled by default.
* android: Fix launching applications through intent data in vanilla build
* GameHelper.kt: Use Uri.scheme where applicable
---------
Co-authored-by: OpenSauce04 <opensauce04@gmail.com>
* fix compilation on older QT6
* fix indent
my C++ is very rusty
* fix indents again
* Fixed formatting
* fix capitalization error
---------
Co-authored-by: OpenSauce04 <opensauce04@gmail.com>
* fix compilation on older QT6
* fix indent
my C++ is very rusty
* fix indents again
* Fixed formatting
---------
Co-authored-by: OpenSauce04 <opensauce04@gmail.com>
This introduces a very hacky way of telling TranslateFilePath that a path is already native and doesn't need translating. I don't like this very much, but addressing this in any other way is very much outside of the scope of this PR.
* Add DLP:SRVR + add friend code seed hack for LM1 + add multiple filters in IPC debugger + fix cia_container smdh offset not being applied, possible IF statement underflowing + default initialize boss variables + fix IPC header asserts in AM functions + add extra debug info to IPC param assert
* Make server & client more resistant to high ping conditions
* Remove DLP from list of online recommended modules
* Fix license headers + fix clang formatting + fix server create network assert
* Fix recorder.cpp license header
Fixes crash on startup with Vulkan renderer. The extension and its
features must be enabled during device creation for samplers using
custom border colors to work.
Fixes#1824