Commit graph

41929 commits

Author SHA1 Message Date
Nikhil Narayana
39236a9b66
ci: fix codesigning on windows and disable on macOS
and other small adjustments
2023-08-21 16:54:21 -07:00
Dentomologist
58ab94c30c GCC: Suppress PPCSTATE_OFF invalid-offsetof warnings
Modify PPCSTATE_OFF and PPCSTATE_OFF_ARRAY macros when using GCC to
avoid useless log spam. Specifically, use a consteval lambda with gcc
_Pragma statements to disable the -Winvalid-offsetof warning inside the
macros.

Each successful build (and many failing ones) on the Android buildbot
generates almost 300 cases of -Winvalid-offsetof, resulting in thousands
of lines of log spam per build. In addition to bloating the log filesize
these spurious warnings make it harder to find actual warnings.

These warnings are generated by calls to the macros PPCSTATE_OFF and
PPCSTATE_OFF_ARRAY, which in turn are used by many other macros used by
the JIT. The ultimate cause is that offsetof is only conditionally
supported on non-standard-layout types, which includes the PowerPCState
struct.

To address potential questions of whether there's a better way to handle
this:

The obvious solution would be to modify PowerPCState so that it does
have a standard layout. This is unfortunately impractical.

To have a standard layout a type can only contain other types with
standard layouts. None of the stl containers are guaranteed to have
standard layouts, and PowerPCState contains a std::tuple and std::array.
PowerPCState also contains a PowerPC::Cache and InstructionCache which
themselves contain std:arrays and std::vectors.

Furthermore InstructionCache derives from Cache, and a derived class can
only have standard layout if at most one class in its hierarchy has a
non-static data member, but both classes have such members. Making
InstructionCache have a standard layout would require duplicating all
the functionality of Cache so it no longer derived from it, as well as
replacing the stl containers. This might require having a raw pointer to
said containers, with the manual memory management that implies.

All of that would be much more disruptive than would be justified to get
rid of some warnings (however annoying they might be). This is
compounded by the fact that PowerPCState hasn't had a standard layout
for a long time, if ever, and if the PPCSTATE_OFF macros weren't working
reliably it would have become obvious a long time ago.

As to why I picked the lambda solution over other potential changes:

- Keeping the define as-is and wrapping some gcc #pragmas around it
  doesn't work because the pragmas don't get included when the define is
  substituted to the call site.

- Keeping the define as a non-lambda expression and using inline
  _Pragma() statements would ideally be better and works fine for msvc,
  but fails for GCC with "'#pragma' is not allowed here".

- Turning off -Winvalid-offsetof globally for gcc would work, but there
  might be other contexts where offsetof is problematic and GCC seems to
  be the only compiler warning about it.
2023-08-21 14:01:11 -07:00
Sam Belliveau
d4f8c1b2bd fixed area sampling 2023-08-21 14:20:44 -04:00
Sepalani
573863703a MemoryViewWidget: Fix some characters being truncated 2023-08-21 22:02:44 +04:00
JosJuice
e7c2133160 Fixes to translatable strings 2023-08-21 16:29:52 +02:00
JosJuice
3451cb1ca2
Merge pull request #11959 from Dentomologist/add_x64emitter_unittests
x64EmitterTest: add J/J_CC/CALL unit tests
2023-08-21 16:27:04 +02:00
Nikhil Narayana
ef74cd65de
ci: update build pipeline and add release pipeline 2023-08-20 21:05:20 -07:00
Ryan McGrath
b5d3ea8b91
Attempt to get signing working for the macOS build
- Updates CI instructions to match Ishiiruka
- Copies over necessary signing and notarization build files
- Updates name from `Slippi_Dolphin` to `Slippi Dolphin (Beta)`.

This may not work and might still need some tweaking due to project ID
mismatch, but testing CI without pushing directly is a pain.
2023-08-20 20:33:19 -07:00
Nikhil Narayana
15a65c7902
Merge pull request #60 from r2dliu/task/update
brings us up to 22642cc0c360af9b10c53592249927f04ebb6832 (for the most part)

still needs playback fixed, adapter polling rate, and good config defaults
2023-08-20 23:26:03 -04:00
Nikhil Narayana
b933dad00f
remove unnecessary logger 2023-08-20 18:24:42 -07:00
Nikhil Narayana
5902bb25b3
actually scale to 73:60 2023-08-20 18:00:26 -07:00
Nikhil Narayana
935c4a51b2
fix gameloader 2023-08-20 17:51:09 -07:00
Nikhil Narayana
7f8ec1fff0
finished read through of SlippiSavestate.cpp 2023-08-20 17:19:50 -07:00
Nikhil Narayana
1b26177cc4
finished read through of SlippiReplayComm.cpp 2023-08-20 17:12:35 -07:00
Nikhil Narayana
67a66c1935
finished read through of SlippiPad.cpp 2023-08-20 17:05:43 -07:00
Nikhil Narayana
4635960038
finished read through of SlippiExiTypes.cpp 2023-08-20 17:04:14 -07:00
Nikhil Narayana
e063e722c1
finished read through of SlippiGameFileLoader.cpp 2023-08-20 17:02:32 -07:00
Nikhil Narayana
d86b22a50e
finished read through of SlippiMatchmaking.cpp 2023-08-20 16:56:33 -07:00
iwubcode
5506121685 VideoCommon: add support to graphics mod manager to load in assets and pass it to graphics actions 2023-08-20 18:53:27 -05:00
iwubcode
6ea0d17802 VideoCommon: when graphics settings change, trigger a reload of all custom shaders 2023-08-20 18:53:27 -05:00
iwubcode
931a8aa413 VideoCommon: add milliseconds elapsed time value to pixel shaders as a uniform to be able to support animation effects in custom shaders 2023-08-20 18:53:27 -05:00
iwubcode
675544ec2b docs: Add custom pipeline documentation 2023-08-20 18:53:27 -05:00
iwubcode
c7191382be VideoCommon: add custom pipeline action 2023-08-20 18:53:27 -05:00
iwubcode
d320366954 VideoCommon: add custom shader cache to VertexManagerBase, supporting custom pixel shaders by replacing the existing pipeline with a modified one 2023-08-20 18:53:27 -05:00
iwubcode
bedbf2b8c6 VideoCommon: add custom shader cache 2023-08-20 18:53:27 -05:00
iwubcode
dbaf24ef09 VideoCommon: add data needed to support custom pixel shaders to graphics mod actions 2023-08-20 18:53:27 -05:00
iwubcode
4283d76718 VideoCommon: uber pixel shader gen changes needed to support custom pixel shaders in graphics mods 2023-08-20 18:53:27 -05:00
iwubcode
e704385fce VideoCommon: pixel shader gen changes needed to support custom pixel shaders in graphics mods 2023-08-20 18:53:27 -05:00
iwubcode
c3a370839a VideoCommon: add helper functions to handle generating custom lighting code for a custom pixel shader 2023-08-20 18:53:27 -05:00
iwubcode
0da5cf60a8 VideoCommon: add custom pixel shader definition and custom shader header to shadergen common as it will be used by both the special and uber shader variant of pixel shaders 2023-08-20 18:53:27 -05:00
Nikhil Narayana
3cb9d311d4
finished read through of SlippiNetplay.cpp 2023-08-20 16:36:06 -07:00
Nikhil Narayana
5e61a477cf
bring exi slippi up to date
add desync recovery bits and some other clean up
2023-08-20 15:21:34 -07:00
Nikhil Narayana
2757adcbc7
needs_more_snake_case 2023-08-20 13:50:43 -07:00
Nikhil Narayana
50cd2cae87
snake_case_a_lot 2023-08-19 23:33:38 -07:00
Nikhil Narayana
6bb8e0ef77
ci: cleanup 2023-08-19 22:25:01 -07:00
Nikhil Narayana
53bf282001
fix spectate functionality 2023-08-19 22:24:44 -07:00
Nikhil Narayana
8d75dc300c
add windows CI builds (#82) 2023-08-19 20:33:19 -07:00
Admiral H. Curtiss
f19651e49b
Merge pull request #11025 from AdmiralCurtiss/hle-printf
HLE_OS: Manually handle printfs from emulated software to prevent emulated software from crashing Dolphin with an invalid printf formatting string.
2023-08-20 01:31:49 +02:00
JosJuice
d34d3bd513 JitArm64: Optimize mfsrin/mtsrin address calculations
This does require another register, but we skip having to use shifted
ADD, which takes two cycles on some CPUs, and we gain instruction-level
parallelism.
2023-08-19 21:37:06 +02:00
JosJuice
c70dcf99dd Jit: Some mcrxr optimizations 2023-08-19 21:13:56 +02:00
Nikhil Narayana
526b57c2a5
chore: default cheats on 2023-08-19 12:00:48 -07:00
Nikhil Narayana
4c26ee2c40
music controlled by asm and jukebox volume slider 2023-08-19 12:00:39 -07:00
JosJuice
5ea1cc5406 JitArm64: Fix mcrxr
Likely an incorrect translation of Jit64's LEA with SCALE_2.
2023-08-19 20:57:32 +02:00
JosJuice
5931d74d52 JitArm64: Remove unnecessary BindToRegister calls
BindToRegister is only needed when writing to a register.
2023-08-19 19:46:53 +02:00
JosJuice
9192128c50 Jit: Handle imm msr in EmitStoreMembase
This makes Jit64::mtmsr more optimized in particular.
2023-08-19 19:45:35 +02:00
Nikhil Narayana
b26bb22376
ci: specify dolphin-emu target 2023-08-19 10:43:10 -07:00
JosJuice
0f64df3e3e DiscIO: Don't keep volume pointer in DiscScrubber
Keeping the pointer creates use-after-free opportunities, and we don't
have much reason to keep it around anyway.
2023-08-19 17:30:22 +02:00
JosJuice
8c5d8a6322
Merge pull request #12120 from AdmiralCurtiss/jit64-membase
Jit64: Actually update membase register after GlobalAdvance().
2023-08-19 17:20:28 +02:00
Admiral H. Curtiss
d36f0fff4c
Jit64: Actually update membase register after GlobalAdvance(). 2023-08-19 17:00:01 +02:00
JosJuice
ed7894924c
Merge pull request #12048 from krnlyng/someothertest
Jit: Load the memory register only when the msr bits have changed and do not use jumps to load it.
2023-08-19 09:49:29 +02:00