Commit Graph

10156 Commits

Author SHA1 Message Date
Henrik Rydgård
9afe69fa62 Merge pull request #4506 from unknownbrackets/jit-continuing
Further attempts at continuing jit blocks (disabled)
2013-11-11 00:33:05 -08:00
Unknown W. Brackets
7e19933f64 x86jit: Try predicting branch continues.
Still doesn't seem to work.  Something like a 4% gain in Star Ocean was
the best I saw...
2013-11-10 22:50:23 -08:00
Unknown W. Brackets
bb960480c8 x86/armjit: Stop compiling on a jump to invalid. 2013-11-10 21:59:50 -08:00
Unknown W. Brackets
fd38b10ab6 x86jit: Rename imm funcs to match armjit. 2013-11-10 21:59:49 -08:00
Unknown W. Brackets
359110f010 x86/armjit: Add jump following (off by default.)
Inlines function calls up to a certain extent.  Allows us to get
immediates all the way to a syscall, for example, usually.

Not sure if faster.
2013-11-10 21:59:49 -08:00
Unknown W. Brackets
aacb31bc18 armjit: Copy over (disabled) immbranch optim.
This does a little loop unrolling.  Costs a bit more cache space, but
avoids flushing regs for longer.

Not enabled.
2013-11-10 21:59:48 -08:00
Unknown W. Brackets
92ecff4396 armjit: keep track of instructions in jitstate.
To match x86.
2013-11-10 21:59:48 -08:00
Unknown W. Brackets
8ceaafc159 armjit: Verify free space while compiling. 2013-11-10 21:59:48 -08:00
Unknown W. Brackets
ca7b2b554b armjit: fix major typo breaking mult/multu. 2013-11-10 21:54:44 -08:00
Henrik Rydgård
a1196399ef Merge pull request #4503 from unknownbrackets/armjit-imms
Retain immediates in the armjit, optimize similar imms
2013-11-10 17:22:20 -08:00
Henrik Rydgård
032ad52c21 Merge pull request #4502 from raven02/patch-16
Regression fix c69ac64
2013-11-10 17:19:00 -08:00
raven02
d2546bed5b Regression fix c69ac64 2013-11-11 08:53:47 +08:00
Unknown W. Brackets
e1fffdb37a armjit: Don't reload an armreg ptr marked noinit. 2013-11-10 16:43:38 -08:00
Unknown W. Brackets
67eaa2fd1c armjit: Optimize immediate load/stores in a row. 2013-11-10 16:32:48 -08:00
Unknown W. Brackets
bc0a846475 armjit: Optimize imm addresses (could do better...) 2013-11-10 16:30:20 -08:00
Unknown W. Brackets
c63560c0dd armjit: Try to find imms to optimize a reg load.
This way we skip the MOVW/MOVT and go for one op only.
2013-11-10 16:20:34 -08:00
Unknown W. Brackets
7e46ee0b0f armjit: Replace MOVI2R with using the regcache.
So that it can optimize the value with existing imms.

Not actually optimizing yet.
2013-11-10 15:50:45 -08:00
Unknown W. Brackets
d092f7dd2d armjit: Remember reg imm values even after flush.
This way, we can base other imm values off them, or even do imm math using
them.  We can also avoid re-flushing an imm.
2013-11-10 15:50:14 -08:00
Unknown W. Brackets
7f9cbc0f10 armjit: Minor cleanup and logging tweaks. 2013-11-10 15:12:40 -08:00
Unknown W. Brackets
455a7e090d Compile the cache instruction to nothing.
Was showing up in a few profiles, does nothing currently.
2013-11-10 14:38:10 -08:00
Unknown W. Brackets
1cc68f50ca armjit: Small optimization to syscall instr. 2013-11-10 14:38:10 -08:00
Unknown W. Brackets
b30928036e armjit: Avoid flushing an imm in beq/bne/etc.
We might be able to STMIA it instead.
2013-11-10 14:38:10 -08:00
Unknown W. Brackets
285ec1fad5 armjit: Implement mult/multu for immediates.
Uncommon, but may reduce instructions a bit.
2013-11-10 14:38:09 -08:00
Unknown W. Brackets
3a8f0598c4 x86jit: Implement wsbh/wsbw. 2013-11-10 14:38:09 -08:00
Unknown W. Brackets
9bec82873c armjit: inline byteswaps of imm values. 2013-11-10 14:38:08 -08:00
Unknown W. Brackets
ee492099b5 Avoid a literal in ORI2R where possible. 2013-11-10 14:38:08 -08:00
Unknown W. Brackets
06c8cb9174 armjit: Do shifts with imms as much as possible.
This may even make an imm operand2 safe that wasn't before.
2013-11-10 14:38:08 -08:00
Sacha
f29d9c0bf9 Blackberry: fix freezing due to overflow of nanoseconds in timer. 2013-11-11 04:53:08 +10:00
Unknown W. Brackets
b2c2a87511 Fix omitted CC_AL reset, fixes #4498.
Was breaking non-fastmem lwl/lwr/etc.
2013-11-10 09:24:40 -08:00
Sacha
2c795907b2 Symbian: Handle multiple executable memory allocations.
Windows: Remove MemUsage (from Dolphin) as it was unused.
Fix some tabbing.
2013-11-11 02:55:45 +10:00
Henrik Rydgård
0845d06467 Merge pull request #4496 from unknownbrackets/softgpu
Fix stencil testing in the softgpu, and also some small things along the way
2013-11-10 03:49:44 -08:00
Unknown W. Brackets
1311d71455 softgpu: Fix reversed stencil test funcs.
LESS applies to the ref compared to the stencil, not the stencil compared
to the ref.

With this, stencil testing is finally being done properly in Star Ocean.
2013-11-10 03:21:01 -08:00
Unknown W. Brackets
2db98b8669 softgpu: Don't apply logic op to stencil value.
Also, they were not at all applying correctly.
2013-11-10 03:21:00 -08:00
Unknown W. Brackets
438928de40 softgpu: Apply stencil op even when depth disabled. 2013-11-10 03:21:00 -08:00
Unknown W. Brackets
5327ce80d5 softgpu: throughmode doesn't disable any tests. 2013-11-10 03:20:59 -08:00
Unknown W. Brackets
5751e0a0a4 softgpu: Simplify color clamping. 2013-11-10 03:20:58 -08:00
Unknown W. Brackets
21deaef35a Invert gstate.getClearModeColorMask().
It makes more sense matching gstate.getColorMask().
2013-11-10 03:20:58 -08:00
Unknown W. Brackets
5817684e28 softgpu: Never write alpha, only stencil. 2013-11-10 03:20:57 -08:00
Unknown W. Brackets
be9fe9ad9a softgpu: Fix stencil read/write in some formats. 2013-11-10 03:20:56 -08:00
Henrik Rydgard
c69ac64d83 Don't reconvert light colors if they don't change.
Also prepare for a possible further optimization in GLES_GPU::FastRunLoop
2013-11-10 11:18:58 +01:00
Henrik Rydgard
f4ad7c64e5 Fix issue with texcoord speed hack (bPrescaleUV) in software transform
(and also thus rectangles of course even when hw transform is enabled)
2013-11-10 11:18:26 +01:00
Henrik Rydgård
179068823c Merge pull request #4491 from raven02/patch-15
Attempt for another matching framebuffer logic
2013-11-10 01:58:29 -08:00
Henrik Rydgård
cc23635843 Merge pull request #4495 from unknownbrackets/multithread
Fix some issues in multithreading on Android
2013-11-10 01:56:50 -08:00
Henrik Rydgård
0c124715c3 Merge pull request #4493 from shenweip/patch-2
Turn up logging.
2013-11-10 01:54:46 -08:00
Unknown W. Brackets
d6048dc646 Don't burn the cpu while idle in multithread. 2013-11-09 23:08:45 -08:00
Unknown W. Brackets
92d5643423 Implement SetCurrentThreadAffinity on Android.
But, it doesn't really seem to improve performance.
2013-11-09 23:08:45 -08:00
Unknown W. Brackets
113146302b Don't schedule a finish event when not running.
Otherwise it'll get it when it does run, and stop early.
2013-11-09 23:08:44 -08:00
Unknown W. Brackets
1633aa689c Remove the extra process queues hack.
It seems like it's not helping anymore so it could be hurting.
2013-11-09 23:08:44 -08:00
Unknown W. Brackets
afafa5fcd6 Make sure the gpu thread has a chance to run.
If the scheduler puts it on the same core, it may not even do anything
before we check if the framebuffer is dirty, so SyncThread will quit since
it's not even running.

Instead, let's wait until it's at least done something.
2013-11-09 23:08:28 -08:00
Unknown W. Brackets
879060f008 Use a CORE_POWERUP state when starting.
Otherwise, we could startup in CORE_POWERDOWN in a second game, which is
confusing.
2013-11-09 23:07:52 -08:00