| Age | Commit message (Collapse) | Author |
|
Now that we've extracted all of the stateless functions that can be
hidden, it's time to make the index generator a regular class with
active data members.
This can just be a member that sits within the vertex manager base
class. By deglobalizing the state of the index generator we also get rid
of the wonky dual-initializing that was going on within the OpenGL
backend.
Since the renderer is always initialized before the vertex manager, we
now only call Init() once throughout the execution lifecycle.
|
|
Makes the global variable follow our convention of prefixing g_ on
global variables to make it obvious in surrounding code that it's not a
local variable.
|
|
Normalizes all variables related to statistics so that they follow our
coding style.
These are relatively low traffic areas, so this modification isn't too
noisy.
|
|
|
|
|
|
|
|
Macros should be all upper-cased. This is also kind of a wart that's
been sticking out for quite a while now (we avoid prefixing
underscores).
|
|
Also moves logic for primitive handling to VideoCommon.
|
|
It's only ever used in one place internally and is arguably unnecessary.
|
|
Follows our coding style.
|
|
Gets rid of some hardcoded looping bounds, and also simplifies code in
some places, sometimes allowing for removal of a loop altogether.
|
|
|
|
Much safer as opposed to just returning raw allocated memory.
|
|
Gets several constants out of global scope.
|
|
|
|
|
|
|
|
Altered to indicate regular class members
|
|
|
|
I have no clue what this special case shall be, but accessing g_main_cp_state within Flush() is not allowed.
We likely still have a bad behavior, but now it only depends on the current state, not on the next one after flushing.
|
|
|
|
Just access the global state directly.
|
|
Just use the global state.
|
|
Gets rid of some indirect inclusions in cpp files.
Also this will reduce the amount of rebuilt files if
changes occur in the DataReader header.
|
|
Also remedies places where the video backends and core rely on things
being indirectly included.
|
|
Now we require lots of empty functions, but this removes by far more duplicated code.
|
|
This must have no effect, everything else is usage of uninitialized memory.
|
|
|
|
|
|
This data might not be initialized but used for lighting.
This matches our ShaderGen usage in VertexShaderGen.cpp:166.
|
|
|
|
It's not panic, it may just render wrong. And this case seems to happen often.
|
|
Move ownership of cached_arraybases from CPMemory to VertexLoaderManager
to better match it usage.
|
|
Disable bbox
|
|
|
|
|
|
|
|
|
|
This reduces some dumb state shuffling when calling the emitted vertex loaders.
|
|
|
|
|
|
|
|
They just blow up the code.
|
|
They are used to remove the flush amounts, but as we don't
flush anymore on vertex loader changes (only on native
vertex format right now), this optimization is now unneeded.
This will allow us to hard code the frac factors within the
vertex loaders.
|
|
|
|
|
|
|
|
~35-45% faster NFS:HP2, possibly other vertex-bound games.
|
|
included first.
This is good hygiene, and also happens to be required to build Dolphin
using Clang modules.
(Under this setup, each header file becomes a module, and each #include
is automatically translated to a module import. Recursive includes
still leak through (by default), but modules are compiled independently,
and can't depend on defines or types having previously been set up. The
main reason to retrofit it onto Dolphin is compilation performance - no
more textual includes whatsoever, rather than putting a few blessed
common headers into a PCH. Unfortunately, I found multiple Clang bugs
while trying to build Dolphin this way, so it's not ready yet, but I can
start with this prerequisite.)
|
|
globals.
The next commit will add a separate copy of the struct and the ability
for LoadCPReg to work on it.
|