Commit Graph

27519 Commits

Author SHA1 Message Date
iwubcode 5dd2704416 D3D / VideoCommon: generate HLSL from SPIRV 2022-06-24 18:09:53 -05:00
iwubcode 3790c99a7d VideoCommon: add common spirv helper functions
Co-authored-by: tellowkrinkle <tellowkrinkle@gmail.com>
2022-06-24 17:52:31 -05:00
Pokechu22 1faca4bfc7
Merge pull request #10752 from tellowkrinkle/BetterShaderNames
VideoCommon: Better shader names
2022-06-24 15:50:48 -07:00
JMC47 76f890f6b0
Merge pull request #10761 from Pokechu22/dsp-halt-mail
DSPHLE: Handle mail more accurately
2022-06-24 18:46:20 -04:00
JMC47 ffa3bf86fb
Merge pull request #10760 from tellowkrinkle/std430
VideoCommon: Fix SSBO layout and remove associated "bug"
2022-06-24 18:40:47 -04:00
Admiral H. Curtiss 0a2aabe6ec
Merge pull request #10753 from Pokechu22/dsp-hle-cdd1-constants
DSPHLE: Move CDD1 constants to UCodes.h
2022-06-23 13:43:57 +02:00
Pierre Bourdon 2bd72dfc6f
Merge pull request #10758 from shuffle2/x64-on-arm64
windows: detect and warn if running x64 dolphin on arm64
2022-06-23 07:34:34 +02:00
Pokechu22 f3c8e75666 DSPHLE: Move CDD1 constants to UCodes.h
These are used by *all* uCodes, though not all uCodes support MAIL_RESUME or MAIL_CONTINUE.
2022-06-22 22:01:13 -07:00
Shawn Hoffman 29ddd0e6f0 windows: detect and warn if running x64 dolphin on arm64 2022-06-22 15:33:12 -07:00
Pokechu22 a72fa4b9cc DSPHLE: Don't generate new mail if the DSP is halted
This fixes booting Datel titles with DSPHLE (see https://bugs.dolphin-emu.org/issues/12943). Datel messed up their DSP initialization code, so it only works by receiving a mail later on, but if halting isn't implemented then it receives the mail too early and hangs.
2022-06-22 09:57:33 -07:00
Pokechu22 3aeafcc70b DSPHLE: Return last mail with top bit cleared if there is no new mail
This is an accuracy improvement, though I don't think it matters for anything in practice.
2022-06-22 09:56:51 -07:00
Pokechu22 bdbb23fa1a DSPHLE: Rename CMailHandler::m_Mails to m_pending_mails 2022-06-22 09:56:51 -07:00
Pokechu22 0fec8ffb3c DSPHLE: Remove empty destructors
Most of these were made unnecessary by the previous commit.
2022-06-22 09:56:51 -07:00
Pokechu22 567f9bede4 DSPHLE: Remove unneeded calls to m_mail_handler.Clear()
It's cleared whenever the uCode changes, so there's no reason to clear it in a destructor or during initialization.

I've also renamed it to ClearPending.
2022-06-22 09:56:50 -07:00
Pokechu22 b063f15dcc DSPHLE: Replace CMailHandler::IsEmpty with CMailHandler::HasPending 2022-06-22 09:56:50 -07:00
Pierre Bourdon c8e716234e
Merge pull request #10732 from Pokechu22/dsp-init
Increase accuracy of DSP initialization process
2022-06-22 14:36:04 +02:00
Pierre Bourdon 6ddff87d42
Merge pull request #10755 from tellowkrinkle/DebugUID
VideoCommon: Don't add garbage to shader uids in debug builds
2022-06-22 14:33:23 +02:00
Pierre Bourdon dc61f87fe4
Merge pull request #10772 from shuffle2/morepch
msbuild: add pch for dolphinqt
2022-06-22 14:27:44 +02:00
Pierre Bourdon ceef02ed2a
Merge pull request #10750 from Pokechu22/hermes-test
Enhance DSPAssemblyTest, and fix various DSPTool bugs discovered while doing so
2022-06-22 14:26:50 +02:00
Spotlight 430c58cf27
IOS: Use host nameserver on more BSDs 2022-06-21 21:49:02 -05:00
Spotlight a2530e3b93
IOS: Use first available IPv4 nameserver 2022-06-21 21:49:02 -05:00
Shawn Hoffman b39a11e23b msbuild: add pch for dolphinqt
since this now includes Qt headers it's better than only using
the vanilla DolphinLib one alone (previous behavior before Qt6)
2022-06-21 13:35:14 -07:00
Pokechu22 a334883c47 Qt/MemoryViewWidget: Don't elide text
Before, the Hex 32 display would get truncated on Linux.
2022-06-20 18:53:23 -07:00
Admiral H. Curtiss f441e3ab98
Merge pull request #10723 from Pokechu22/dsp-lle-unsigned-loop-counter
DSP LLE Recompiler: Fix LOOP and BLOOP when the counter is between 0x8001 and 0xFFFF
2022-06-21 02:01:13 +02:00
Pokechu22 c317f7fd22 DSPLLE: Don't log when DIRQ is set to 0
No interrupt is generated in this case. The homebrew liband uCode writes zero fairly frequently, so logging it results in spam.
2022-06-19 10:46:41 -07:00
Braxton Anderson 2b2b8e932d Rename FPS_REFRESH_INTERVAL in VideoCommon/FPSCounter 2022-06-17 20:11:53 -06:00
TellowKrinkle f79ac768d8 VideoCommon:ShaderCache: Add const to some local variables 2022-06-17 20:14:32 -05:00
Admiral H. Curtiss 23ed611077
Merge pull request #10729 from Pokechu22/libusb-error-wrap
Improve libusb error logging
2022-06-17 16:01:46 +02:00
Admiral H. Curtiss b199108964
Merge pull request #10520 from AdmiralCurtiss/resource-pack-init-crash
ResourcePack: Avoid crashes on invalid packs during Init().
2022-06-17 13:55:16 +02:00
Admiral H. Curtiss efbf5a450b
ResourcePack: Avoid crashes on invalid packs during Init(). 2022-06-17 03:49:05 +02:00
TellowKrinkle 26529a31ab VideoCommon: Fix SSBO layout and remove associated "bug" 2022-06-16 20:26:11 -05:00
Shawn Hoffman 896d5454f0 updater: use new platform id for win-arm64 2022-06-16 14:55:51 -07:00
Pokechu22 053b3e725b DSPHLE: More accurately handle initialization behavior
This improves timing, but does not fix Datel titles.
2022-06-16 12:18:05 -07:00
Pokechu22 072913bbad DSPLLE: More accurately handle initialization behavior 2022-06-16 12:18:05 -07:00
Pokechu22 c38c2b1aaa DSPLLE: Fix debug logging in ReadMailboxLow
The # option means that 0x is prepended already, so the old code resulted in 0x0xDEADBEEF instead of the intended 0xDEADBEEF. WriteMailboxLow was already correct.
2022-06-16 12:18:05 -07:00
Pokechu22 3ceda1df8c DSPLLE: Rename cr to control_reg
Before, there were two distinct fields called cr and r.cr, which is needlessly confusing (see the comment in DSPCore.h).
2022-06-16 12:18:05 -07:00
TellowKrinkle c7892d7371 VideoCommon: Name ubershaders 2022-06-16 02:08:45 -05:00
TellowKrinkle 23c1721fbd VideoCommon: Reduce duplicates of non-palette-requiring texture decode shaders 2022-06-16 02:08:45 -05:00
JosJuice 107a928452
Merge pull request #10748 from tellowkrinkle/SDL22Fun
InputCommon: SDL 2.0.22 init crash workaround
2022-06-15 18:02:59 +02:00
Admiral H. Curtiss ac3920a0da
Qt/GameCubePane: Fix swapping memory cards mid-emulation. 2022-06-15 10:42:14 +02:00
TellowKrinkle 3fe1a1a3d7 VideoCommon: Don't add garbage to shader uids in debug builds
There wasn't anything stopping compilers from doing it in release builds either, but most optimizations would make the padding zero
2022-06-14 21:51:58 -05:00
TellowKrinkle 994210e369 InputCommon: SDL 2.0.22 init crash workaround
See https://github.com/libsdl-org/SDL/pull/5598
2022-06-14 21:02:45 -05:00
JMC47 431d757151
Merge pull request #10743 from tellowkrinkle/LargeBlockRVZ
Fix creation of rvz with > 2mb chunk size
2022-06-14 16:17:24 -04:00
JMC47 8a8e9c5ef6
Merge pull request #10742 from tellowkrinkle/Xcode
Improve incremental build time for Xcode projects
2022-06-14 16:14:54 -04:00
Pokechu22 41939eeaf9 DSPDisassembler: Fix disassembly of LSR and ASR
Before, both 1441 and 147f would disassemble as `lsr $acc0, #1`, when the second should be `lsr $acc0, #-1`, and both 14c1 and 14ff would be `asr $acc0, #1` when the second should be `asr $acc0, #-1`. I'm not entirely sure whether the minus signs actually make sense here, but this change is consistent with the assembler so that's an improvement at least.

devkitPro previously changed the formatting to not require negative signs for lsr and asr; this is probably something we should do in the future: 8a65c85c9b

This fixes the HermesText and HermesBinary tests (HermesText already wrote `lsr $ACC0, #-5`, so this is consistent with what it used before.)
2022-06-14 12:22:06 -07:00
Pokechu22 2d774010c3 DSPCodeUtil: Include the PC and hex in the "Extra code words" section
It's included in the section before, so it's helpful to supply here too.
2022-06-14 12:22:06 -07:00
Pokechu22 087d89225c DSPCodeUtil: Give better output when comparing instructions with large immediates 2022-06-14 12:22:06 -07:00
Pokechu22 cad9801ded DSPDisassembler: Fix out-of-bounds read when the last word is an instruction with a large immediate
For instance, ending with 0x009e (which you can do with CW 0x009e) indicates a LRI $ac0.m instruction, but there is no immediate value to load, so before whatever garbage in memory existed after the end of the file was used.

The bounds-checking also previously assumed that IRAM or IROM was being used, both of which were exactly 0x1000 long.
2022-06-14 12:22:06 -07:00
Pokechu22 693a29f8ce DSPCodeUtil: Use fmt::print instead of logging in DSP::Compare 2022-06-14 12:22:05 -07:00
JMC47 9315ac7071
Merge pull request #10587 from AdmiralCurtiss/memcard-path-unify
Raw Memory Card Path handling unification and consistency fixes.
2022-06-13 20:18:36 -04:00