Yuri Kunde Schlesner
fe186d3a59
GPU: Bitwise texture swizzling
...
Replace the loop-based texture address swizzling code by a bit-twiddling
implementation, providing a very small speed up. Also simplify
addressing code.
2014-12-29 02:08:11 -02:00
Yuri Kunde Schlesner
2012e1420f
Rasterizer: Common sub-expression elimination
...
Move the computation of some values out of loops so that they're not
constantly recalculated even when they don't change.
2014-12-29 02:08:10 -02:00
Yuri Kunde Schlesner
7e9bc85cc8
Clipper: Compact buffers on each clipping pass
...
Use a new buffer management scheme in the clipper that allows using a
bounded minimal amount of buffer space. Even though it copies more data
it is still slightly faster likely due to using less cache.
2014-12-29 02:08:10 -02:00
Yuri Kunde Schlesner
a320d1a5b4
Clipper: Avoid dynamic allocations
...
The triangle clipper was allocating its temporary input, output and work
buffers using a std::vector. Since this is a hot path, it's desirable to
use stack allocation instead.
2014-12-29 02:08:09 -02:00
Yuri Kunde Schlesner
d151d797b1
Vertex Shader: Zero OutputVertex to avoid denormals
...
Unused OutputVertex attributes were being left un-initialized. The
leftover garbage sometimes decoded as floating-point denormalized
values, causing fallbacks to microcode and massive slowdowns in the rest
of the rasterization pipeline even though the results were unused. By
zeroing the structure we ensure these attributes only contain harmless
zeros.
2014-12-29 02:08:09 -02:00
bunnei
487a80f9f7
Merge pull request #347 from bunnei/frameskip
...
Frameskip
2014-12-28 22:39:17 -05:00
bunnei
df728cb4c2
Merge pull request #355 from lioncash/simp
...
armemu: Simplify some instructions.
2014-12-28 22:20:49 -05:00
bunnei
3b9d181b8e
GPU: Implement frameskip and remove forced framebuffer swap hack.
2014-12-28 22:14:05 -05:00
bunnei
5763d40319
Merge pull request #352 from xdec/PR_XDEC_172
...
Qt: Citra crashes if disassembler pause button is pressed while no game is running. #172
2014-12-28 22:00:47 -05:00
bunnei
9a403d7dfb
Merge pull request #359 from lioncash/vfp
...
vfp: Actually make the code somewhat readable
2014-12-28 21:54:53 -05:00
bunnei
77363d9590
Merge pull request #331 from yuriks/handle-reform
...
New Handle manager
2014-12-28 21:11:55 -05:00
Lioncash
9c7f2570f7
vfp: Actually make the code somewhat readable
2014-12-28 18:55:01 -05:00
bunnei
bf9b33aa9f
dyncom: Implement PKHBT and PKHTB.
2014-12-28 16:50:08 -05:00
bunnei
58cb62fe7b
armemu: Fix PKHTB to do an arithmetic shift and correctly decode immediate field.
2014-12-28 16:18:52 -05:00
xdec
e6162ed91e
Qt: we don't need to check if model is valid.
2014-12-28 10:11:51 -08:00
Lioncash
7d322b5c6f
dyncom: Implement USAD8/USADA8
2014-12-28 12:40:51 -05:00
Lioncash
6ce2a38ec4
armemu: Simplify SSAT/SSAT16/SXTB/SXTAB
2014-12-28 12:19:31 -05:00
Lioncash
9f5b53f9ff
armemu: Simplify REV/REV16/SXTH/SXTAH
2014-12-28 12:13:13 -05:00
bunnei
762f16c4ad
Merge pull request #354 from lioncash/usaduflow
...
armemu: Fix underflows in USAD8/USADA8
2014-12-28 11:57:25 -05:00
Lioncash
914ecfe04f
armemu: Simplify USAT16/UXTB/UXTAB
2014-12-28 11:57:14 -05:00
Lioncash
5e16216afb
armemu: Simplify REVSH/UXTH/UXTAH
2014-12-28 11:57:09 -05:00
Yuri Kunde Schlesner
7e2903cb74
Kernel: New handle manager
...
This handle manager more closely mirrors the behaviour of the CTR-OS
one. In addition object ref-counts and support for DuplicateHandle have
been added.
Note that support for DuplicateHandle is still experimental, since parts
of the kernel still use Handles internally, which will likely cause
troubles if two different handles to the same object are used to e.g.
wait on a synchronization primitive.
2014-12-28 11:52:55 -02:00
Yuri Kunde Schlesner
23f2142009
Kernel: Replace GetStaticHandleType by HANDLE_TYPE constants
2014-12-28 11:52:53 -02:00
Yuri Kunde Schlesner
73fba22c01
Rename ObjectPool to HandleTable
2014-12-28 11:52:52 -02:00
Lioncash
059c65a27a
armemu: Fix underflows in USAD8/USADA8
...
Initially reported by xdec.
2014-12-28 06:09:43 -05:00
xdec
8de09d87ab
Fix crash when the disassembler pause button is pressed while no game is running.
2014-12-28 01:56:07 -08:00
Lioncash
af69b0840b
dyncom: Implement UQADD8, UQADD16, UQSUB8, UQSUB16, UQASX, and UQSAX.
2014-12-27 17:24:34 -05:00
Lioncash
60523113a9
armemu: Implement UQADD8, UQADD16, UQSUB16, UQASX, and UQSAX
2014-12-27 17:06:19 -05:00
Lioncash
52d889d85d
dyncom: Implement UHADD8, UHADD16, UHSUB8, UHSUB16, UHASX, and UHSAX
2014-12-27 00:57:32 -05:00
bunnei
b48ca7878b
Merge pull request #348 from lioncash/uhops
...
armemu: Implement UHADD8, UHADD16, UHSUB8, UHSUB16, UHASX, and UHSAX
2014-12-27 00:34:39 -05:00
Lioncash
84a0438cf5
armemu: Implement UHADD8, UHADD16, UHSUB8, UHSUB16, UHASX, and UHSAX
2014-12-26 23:55:39 -05:00
bunnei
a2005d0657
GPU: Change internal framerate to 30fps.
2014-12-26 21:48:32 -05:00
bunnei
01c675685e
Merge pull request #327 from Apology11/master
...
Fix visual studio ambiguous symbol error
2014-12-26 21:43:59 -05:00
bunnei
e5ddbfee02
Merge pull request #339 from bunnei/fixup-gsp-synch
...
Fixup gsp synch
2014-12-25 22:52:40 -05:00
bunnei
5d2ee78d8f
Merge pull request #330 from purpasmart96/new_srv
...
More services & small clean ups
2014-12-25 22:51:38 -05:00
bunnei
5799025ac4
GPU: Further improve synchronization.
2014-12-25 22:46:55 -05:00
bunnei
4783133bbd
ARM: Add a mechanism for faking CPU time elapsed during HLE.
...
- Also a few cleanups.
2014-12-25 22:46:44 -05:00
purpasmart96
9796bc1fa2
More services & small clean ups
2014-12-25 19:08:33 -08:00
bunnei
9c8ec675d9
Merge pull request #343 from lioncash/smmla
...
armemu: Implement SMMUL, SMMLA, and SMMLS.
2014-12-25 21:57:31 -05:00
bunnei
254567056f
Merge pull request #341 from lioncash/moresmops
...
armemu: Implement SMLALD/SMLSLD
2014-12-25 21:46:54 -05:00
Lioncash
35dbfc7ab0
armemu: Implement SMMUL, SMMLA, and SMMLS.
2014-12-25 13:52:46 -05:00
Lioncash
82c3962b95
armemu: Implement SMLALD/SMLSLD
2014-12-24 09:29:48 -05:00
Lioncash
6b7808e412
armemu: Fix GE/Q flag setting semantics
2014-12-24 07:56:57 -05:00
bunnei
2bbbe68399
Merge pull request #328 from archshift/writeable
...
Stubbed IsSdmcWriteable to always return writeable.
2014-12-23 20:41:51 -05:00
archshift
81a538ccc2
Stubbed IsSdmcWriteable to always return writeable.
2014-12-23 22:22:48 -03:00
Lioncash
20fc5f2a35
armemu: Set the Q flag correctly for much of the other ops
...
They were setting the old S flag.
2014-12-23 09:59:37 -05:00
Lioncash
79a7a432c5
armemu: Set the Q flag properly for SMLAD/SMUAD
2014-12-23 09:58:21 -05:00
bunnei
d31a94f06b
Merge pull request #334 from lioncash/cpsr
...
armemu: Fix retrieval of the CPSR in MRS instructions.
2014-12-23 09:44:04 -05:00
bunnei
53447da142
Merge pull request #335 from lioncash/cpsrcreate
...
armemu: Emulate the GE and Q flags.
2014-12-23 09:43:46 -05:00
Lioncash
6446331938
armemu: Properly set the Q flag for SSAT16/USAT16 upon saturation.
2014-12-22 23:52:05 -05:00