Commit Graph

138 Commits

Author SHA1 Message Date
pstef 6bfb7862e7 Make -ffast-math exclusive to sinc_resampler.c
-ffast-math was added in ff14092d8d with a comment that it "helps SINC
resampler to auto-vectorize". The flag is an alias for "-fno-math-errno
-funsafe-math-optimizations -ffp-contract=fast -fno-honor-infinities
-fno-honor-nans". The last two of those cause compiler complaints
because while the flag was meant for this file, it's shared across the
codebase that includes statements that operate on infinities and NaNs.

GCC 13.3 with -fopt-info-vec reports 18 vectorizations for `-O3
-ffast-math`, 17 for `-O3 -fno-math-errno -funsafe-math-optimizations
-ffp-contract=fast` and also 17 for plain `-O3`. So using the subset of
-ffast-math without the offending flags buys nothing and loses 1
vectorization.

Both GCC and Clang provide the "fast-math" pragma directive, which I add
to this one file that benefits from it, under the condition that it's
supported. -ffast-math is removed from most of the makefiles.
2025-05-02 17:26:19 +00:00
pstef 0c838c14e9 Makefiles: don't print info unconditionally
The point of making the default "semi-silent" (each target is printed,
but not the entire invocation verbatim) was to factor out information
about invocation to a one-time target (info) and not repeating it ever
again. With V=1, the info target is silent, because each command
invocation will be printed verbatim, which needs no herald.

The undesired side effect of me introducing the info target and making
it a dependency of the default all target is that info doesn't respect
the --silent make option, so in this use case it was more noisy, not
less.

I believe the most elegant solution that satisfies all use cases is to
stop printing info unconditionally, and instead list it explicitly in
make invocations in CI, together with the all target. Then this info is
kept available for inspection from logs, but it's not repeated on each
invocation. The intention was to make the logs easier to read and scroll
in search for new compiler warnings.
2025-04-29 18:36:48 +00:00
pstef de280cad9a Makefile.wiiu: print variables once in silent mode 2025-04-11 17:12:08 +00:00
Jesse Talavera-Greenberg cbf49a0b77
XDelta patch support (Take 2) (#15915)
* Add xdelta in deps

* Include <assert.h> in xdelta3.h

- Otherwise the static_assert calls can fail

* Build xdelta3 in Makefile.common

* Add xdelta support to the softpatching infrastructure

- The patching itself isn't fully implemented yet

* Adjust how xdelta3.h checks the sizes of some types

- Now checks max values instead of relying on autotools

* Add some enums that were excluded by the cherry-pick

* Remove stray whitespace

* Adjust SIZE macros in xdelta3.h

- Move them outside the XD3_USE_LARGEFILE64 block
- Add more SIZE declarations
- Make SIZEOF_UNSIGNED_LONG_LONG contingent on the presence of ULLONG_MAX

* Reintegrate xdelta support

* Enable support for xdelta's secondary compressors

- Necessary for some patches

* Fix some format specifiers

* Remove unnecessary files from xdelta

* Include xdelta3.h with a relative path

* Add xdelta3 headers to HEADERS variable

* Gate Xdelta support behind HAVE_XDELTA

- HAVE_XDELTA is on by default
- HAVE_PATCH is still required for HAVE_XDELTA to be meaningful
- Support is mostly contingent on the availability of LZMA
- Anything modern should be okay
- Legacy platforms (e.g. DOS) may need to have Xdelta support disabled
- At least until some other solution can be found

* Disable HAVE_XDELTA on platforms where the build recently failed

- These come from looking at the failed builds on GitHub
- These are guesses, and may turn out to be wrong

* Fix a potential memory leak

- Whoops, looks like I need to call two cleanup functions
- xd3_close_stream exists separately from xd3_free_stream

* Split the --help printout for --xdelta into its own strlcat call

- GCC was complaining about #ifdefs within macro arguments being non-portable

* Fix some incorrect printf format specifiers

* Modify Xdelta to adhere to C89

- It's mostly using RetroArch's INLINE macro instead of the inline keyword

* Slight cleanups

* Remove a stray comma that was hindering C89 builds

* Add XDelta support to CHANGES.md

* Change how the xdelta patch's name is computed

- To be in line with other recent refactoring

* Fix an incorrect merge

- Whoops, this part was from before I figured out how to get the size of a patched file

* Explain the song-and-dance behind computing a patched file's size

* Define some XDelta3-related constants to 0 on 32-bit platforms

* Adjust some Xdelta-related macro definitions

- Exclude the encoder, since we're not making patches
- Move some #defines to after inclusion of <stdint.h>, to fix undefined behavior
- Remove _WIN32_WINNT overrides, since they were for code that we're not using

* Fix Xdelta support

* Wrap an encoder-only function in `#if XD3_ENCODER`
2023-11-23 20:19:07 -08:00
libretroadmin 51d238875e Get rid of obsolete HAVE_VIDEO_LAYOUT - obsolete spec, was only
ever implemented for OpenGL2 driver, lots of code debt, best to
instead just keep improving the overlay system instead which is
already available for most video drivers
2023-02-23 21:03:41 +01:00
libretroadmin 3bacd52629 Add HAVE_UPDATE_CORE_INFO for targets that already have HAVE_UPDATE_CORES defined 2022-12-23 01:52:38 +01:00
LibretroAdmin f5133d8cc4
Revert "Add Xdelta support for softpatching (#14706)" (#14743)
This reverts commit aaad220836.
2022-12-19 03:29:46 +01:00
Jesse Talavera-Greenberg aaad220836
Add Xdelta support for softpatching (#14706)
* Add xdelta in deps

* Include <assert.h> in xdelta3.h

- Otherwise the static_assert calls can fail

* Build xdelta3 in Makefile.common

* Add xdelta support to the softpatching infrastructure

- The patching itself isn't fully implemented yet

* Adjust how xdelta3.h checks the sizes of some types

- Now checks max values instead of relying on autotools

* First crack at xdelta softpatching support

- There may be undiscovered edge cases or bugs

* Add xdelta in deps

* Include <assert.h> in xdelta3.h

- Otherwise the static_assert calls can fail

* Build xdelta3 in Makefile.common

* Add xdelta support to the softpatching infrastructure

- The patching itself isn't fully implemented yet

* Adjust how xdelta3.h checks the sizes of some types

- Now checks max values instead of relying on autotools

* First crack at xdelta softpatching support

- There may be undiscovered edge cases or bugs

* Remove trailing commas from the enums I modified

- C89 doesn't allow them

* Remove stray whitespace

* Adjust SIZE macros in xdelta3.h

- Move them outside the XD3_USE_LARGEFILE64 block
- Add more SIZE declarations
- Make SIZEOF_UNSIGNED_LONG_LONG contingent on the presence of ULLONG_MAX

* Add some RARCH_DBG calls for xdelta patching

* Enable support for xdelta's secondary compressors

- Necessary for some patches

* Fix some format specifiers

* Remove unnecessary files from xdelta

* Include xdelta3.h with a relative path

* Add xdelta3 headers to HEADERS variable

* Gate Xdelta support behind HAVE_XDELTA

- HAVE_XDELTA is on by default
- HAVE_PATCH is still required for HAVE_XDELTA to be meaningful
- Support is mostly contingent on the availability of LZMA
- Anything modern should be okay
- Legacy platforms (e.g. DOS) may need to have Xdelta support disabled
- At least until some other solution can be found

* Disable HAVE_XDELTA on platforms where the build recently failed

- These come from looking at the failed builds on GitHub
- These are guesses, and may turn out to be wrong

* Fix a potential memory leak

- Whoops, looks like I need to call two cleanup functions
- xd3_close_stream exists separately from xd3_free_stream

* Split the --help printout for --xdelta into its own strlcat call

- GCC was complaining about #ifdefs within macro arguments being non-portable

* Fix some incorrect printf format specifiers

* Modify Xdelta to adhere to C89

- It's mostly using RetroArch's INLINE macro instead of the inline keyword
2022-12-19 01:10:04 +01:00
LibretroAdmin ee16c4558d Forgot to add compat_strldup.c to Wii and WiiU salamanders 2022-08-25 17:02:05 +02:00
LibretroAdmin cd7a6afd20 Add WiiU workflow 2022-08-05 16:24:46 +02:00
Cthulhu-throwaway 20c4407928
Add HAVE_IFINFO macro (#14265) 2022-08-01 07:51:02 +02:00
twinaphex 28cac5c5a4 Add HAVE_CORE_INFO_CACHE - disable this for Steam build 2021-10-14 15:57:28 +02:00
Nathan Strong 9edb449471 wip commit 2021-10-05 09:10:41 -07:00
Ash Logan 692f4443f4 (WiiU) Add option for running without core info (emscripten-style)
Very useful when wiiloading a test binary or running in emulation
2021-08-14 20:26:14 +10:00
Ash Logan 93649d9147 (WiiU) Compress RPX files w/ wiiurpxtool
Should be available on the buildbot now
2021-07-31 10:26:37 +10:00
Ash Logan 902c115d48 (WiiU) Add elf2rpl to clean target 2021-07-31 10:26:37 +10:00
Ash Logan 5887016db3 deps/libiosuhax: Update to wiiu-env/libiosuhax@69532cf 2021-07-18 22:33:06 +10:00
twinaphex f693d83723 (rhash to lrc_hash) Fix console builds 2020-12-28 20:24:55 +01:00
twinaphex 772ed15d88 Remove file_path_str from Salamander 2020-08-22 13:42:57 +02:00
twinaphex 47e22d69bf Add HAVE_VIDEO_FILTER 2020-07-02 06:28:14 +02:00
twinaphex 3ee788def2 Add HAVE_DSP_FILTER 2020-07-02 02:13:04 +02:00
twinaphex 87b9c2a367 Add HAVE_REWIND switch 2020-07-01 21:04:05 +02:00
twinaphex 7862166ed2 Add back HAVE_SCREENSHOTS define from SSNES days 2020-07-01 17:47:13 +02:00
twinaphex 223d76680a Add HAVE_CHEATS ifdef 2020-06-30 19:35:55 +02:00
twinaphex bf04ac93c8 Add HAVE_RWAV 2020-06-30 17:36:03 +02:00
twinaphex b77dd9cfe4 Add HAVE_PATCH ifdef; add patch switch support to qb 2020-06-30 15:54:31 +02:00
twinaphex fce29caff7 Add time/rtime.c to Salamander builds 2020-06-04 23:37:35 +02:00
Tobias Gruetzmacher 29929acdba (WiiU) Enable GFX widgets 2020-05-10 15:13:23 +02:00
Tobias Gruetzmacher 3c192419dd (WiiU) Fix griffin build 2020-05-10 14:30:30 +02:00
Autechre 21f15d5cbd
Merge pull request #10490 from phcoder/msb
Remove manual MSB_FIRST definitions and switch to retro_endianness.h
2020-04-22 21:16:45 +02:00
Ash Logan 08dfd58994 WiiU: Enable -Wall
This is the standard, according to CONTRIBUTING.md
2020-04-22 23:37:18 +10:00
Vladimir Serbinenko 1fcdddf579 Remove manual MSB_FIRST definitions and switch to retro_endianness.h 2020-04-21 04:16:55 +02:00
twinaphex e0fdd8d39e Add back HAVE_CONFIGFILE ifdef - will strip out remaps and overrides
support as well
2020-02-02 21:27:38 +01:00
twinaphex 3a5dace583 (WiiU) fix build 2020-01-10 01:16:42 +01:00
twinaphex 56236f7372 Get rid of platform_null.c file 2020-01-06 15:35:35 +01:00
twinaphex 08ce33eed0 Add HAVE_ONLINE_UPDATER 2019-11-11 00:22:03 +01:00
twinaphex bc657778fe Add HAVE_UPDATE_CORES - by running ./configure --disable-update_cores
you can strip out the Online Core Updater
2019-11-10 15:55:39 +01:00
Twinaphex 29dc30fa48
Revert " add hashing support for PSX cheevos (bin/cue, chd, or real CD)" 2019-08-30 15:55:07 +02:00
Jamiras 1348c2cc75 fix wiiu build 2019-08-29 21:05:44 -06:00
orbea 84f4dcba2b Remove WANT_ZLIB. 2019-07-25 11:18:33 -07:00
twinaphex f00e92aa0a Update Makefile.common 2019-07-24 20:04:27 +02:00
Ash Logan f5e6cddce6 (wiiu) spirv-cross requires C++ exceptions, glslang can't work
glslang has an OSDependent/Unix folder that uses a bunch of pthread 
features that aren't available here.
Bonus: tabs/spaces formatting fixes
2019-07-24 11:42:41 +10:00
twinaphex f80c3f4218 (WiiU) Try to define SPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS 2019-07-23 05:37:45 +02:00
twinaphex 246fcf36d8 (WiiU) Add HAVE_SPIRV_CROSS/HAVE_GLSLANG/HAVE_SLANG 2019-07-22 14:44:59 +02:00
twinaphex 35aa4191ac (WiiU) Add HAVE_SLANG=1 2019-07-21 13:46:51 +02:00
twinaphex b2bf822f13 Add HAVE_AUDIOMIXER switch 2019-07-11 11:51:06 +02:00
Ash Logan 4ef9258b63 wiiu: Add libfat/iosuhax to Griffin, always use builtins 2019-05-29 18:23:34 +10:00
Ash Logan ab63d34e2e wiiu: Add inputs and ifaddrs to griffin build
Gets a little closer to fixing it, still has issues with the input 
drivers though
2019-05-28 09:06:31 +10:00
Ash Logan e2c479987c Makefile.wiiu: Formatting/readability pass 1
Actual meaning is mostly the same, aside from cleaning up the include 
paths and portlibs handling. Griffin build does not work, salamander 
builds OK.
2019-05-28 09:06:31 +10:00
Ash Logan e00d1f01e4 Makefile.wiiu: Remove -mwup (removed from devkitPPC)
See 8903cf8ec0
This got removed from devkitPPC a while ago, this should allow
people on newer toolchains to build.
These changes also need to be done to all the cores.
2019-05-28 09:06:31 +10:00