We need to explicitly round when converting colors from float to uint
because multiplying a normalized float by 255 might not result in a whole
number. (The exact result here may vary depending on your
drivers/hardware.)
Ideally, we shouldn't be using floating point here, but fixing that is a
much more complicated patch.
Fixes gxtest TEV tests using Intel HD 4000.
CreateInputLayout requires a shader as an input, but it only cares about
the signature; we don't need to recompute it for different shaders with
the same inputs.
This is good for a couple of reasons: one, it gets rid of duplicated code,
and two, DSP emulation shouldn't need to interact with audio in the first
place.
Previously he function was misbehaving because of a missing check for
whether an 8-bit operand was a register operand; it would therefore
emit unnecessary REX prefixes, incorrectly assert on 32-bit targets, and
could potentially emit wrong code in rare cases (like a memory to register
operation involving AH.)
Also, some cleanup while I was in the area to make the function easier to
read.
One of the fixes in
Source/Plugins/Plugin_VideoOGL/Src/Render.cpp (for an uninitialized
variable) looks like it could actually have real-world effects; someone
familiar with the code should check that the fix is correct.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3669 8ced0084-cf51-0410-be5f-012b33b47a6e
reduces the number of OpenGL calls for large sets of triangle strips;
this is something like a 10% perf improvement in the case I'm looking
at.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2120 8ced0084-cf51-0410-be5f-012b33b47a6e
enough to render a black frame before it crashes. I don't have time
right now to track down the crash, but I figure this is at least an
improvement. Note that "#pragma pack" is an msvc extension, but gcc
supports it.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2092 8ced0084-cf51-0410-be5f-012b33b47a6e
changes individually led to perf improvements, although overall it's
spending a lot less time in interpreter fallbacks.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@1904 8ced0084-cf51-0410-be5f-012b33b47a6e
Gamecube Tales of Symphonia with safe textures on. I haven't looked too
carefully at exactly which textures are affected, though.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@1900 8ced0084-cf51-0410-be5f-012b33b47a6e
because Source/Plugins/Plugin_DSP_HLE/Src/Debugger/Logging.cpp appears
to be missing, and I haven't looked at the fallout of r1884 yet.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@1897 8ced0084-cf51-0410-be5f-012b33b47a6e
safe texture mode. One, don't hash the palette when it doesn't matter;
including it completely kills performance in the map mode, and I'm
pretty sure it's because the palette points to essentially random
memory. Two, include the address in the hash seed; this helps with an
issue related to the EFB and the main menu. Hopefully, these changes
together don't cause any regressions.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@1878 8ced0084-cf51-0410-be5f-012b33b47a6e
impact on the safe texture cache. This is kind of messy, but it seems
to work.
(I have a feeling there's something strange going on, but I'm not sure
how to go about investigating it.)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@1873 8ced0084-cf51-0410-be5f-012b33b47a6e
address; there's no particular benefit to indexing based on the hash,
and doing so breaks copy EFB to texture mode.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@1872 8ced0084-cf51-0410-be5f-012b33b47a6e
only affect 32-bit non-Windows platforms, and I've tested 32-bit Linux,
so I think it's pretty safe. It's a slight performance improvement when
it kicks in.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@1865 8ced0084-cf51-0410-be5f-012b33b47a6e
should be getting to the point where the performance is reasonably
comparable to the current JIT on most workloads. I'm not sure of the
exact comparisons because I haven't done much in terms of checking the
performance versus the current JIT on floating-point heavy stuff. The
floating point stuff is still relatively unoptimized, and there are still a
few relatively common functions that aren't being compiled yet, but the most
critical work is done.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@1807 8ced0084-cf51-0410-be5f-012b33b47a6e
One is generalizing the stwux implementation to all of stXx; not a
particularly significant improvement, but I had it in my tree, and it
makes my WIP JIT a drop-in replacement for the current JIT. (Not that
you'd really want to at the moment... The WIP JIT still has at
least one significant bug I haven't tracked down, and it's a lot slower
for anything using a significant amount of floating-point, which is
basically anything except FMVs. That said, it should basically work as
long as you're making a 32-bit build.)
The other fix is a minor (but probably visible) performance improvement
for 64-bit Linux: fixing the store JIT to work properly. I proposed
the patch a couple days ago, but apparently nobody tested it... this
way, I can force everyone on 64-bit Linux to test it :) Please add the
"NOTE: stb and stbu are broken under 64bit Linux" bit back in if this
breaks anything.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@1730 8ced0084-cf51-0410-be5f-012b33b47a6e
wanted to back this up somewhere, and the people familiar with the JIT
might have comments. There's a big comment in Jit64IL/IR.cpp with a
high-level overview of what this is.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@1724 8ced0084-cf51-0410-be5f-012b33b47a6e
unsafe uses.
I was going to use this for stbx, but it appears that JIT'ing it is
actually visibly slower (!).
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@1676 8ced0084-cf51-0410-be5f-012b33b47a6e
will help with the reported crash problems on OSX. I can't really test
properly, though, since I'm on Linux; please give me feedback on
whether this helps.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@1664 8ced0084-cf51-0410-be5f-012b33b47a6e