| Age | Commit message (Collapse) | Author |
|
Avoids performing copies into the pair being returned. Instead, we can
just move the resources into the pair, avoiding the need to make copies
of both the std::string and ShaderEntries struct.
|
|
ShaderDiskCacheOpenGL
Given the offset is assigned a fixed value in the constructor, we can
just assign it directly and get rid of the need to write the name of the
variable again in the constructor initializer list.
|
|
Given the disk shader cache contains non-trivial types, we should
default it in the cpp file in order to prevent inlining of the
complex destruction logic.
|
|
The standard library expects hash specializations that don't throw
exceptions. Make this explicit in the type to allow selection of better
code paths if possible in implementations.
|
|
LoadDecompiledEntry()
We don't need to load the code into a vector and then construct a string
over the data. We can just create a string with the necessary size ahead
of time, and read the data directly into it, getting rid of an
unnecessary heap allocation.
|
|
std::move does nothing when applied to a const variable. Resources can't
be moved if the object is immutable. With this change, we don't end up
making several unnecessary heap allocations and copies.
|
|
Booleans don't have a guaranteed size, but we still want to have them
integrate into the disk cache system without needing to actually use a
different type. We can do this by supplying non-template overloads for
the bool type.
Non-template overloads always have precedence during function
resolution, so this is safe to provide.
This gets rid of the need to smatter ternary conditionals, as well as
the need to use u8 types to store the value in.
|
|
|
|
|
|
|
|
This was reduced due to happening on most games and at such constant
rate that it affected performance heavily for the end user. In general,
we are well aware of the assert and an implementation is already
planned.
|
|
Silences a -Wreorder warning.
|
|
Avoids inlining destruction logic where applicable, and also makes
forward declarations not cause unexpected compilation errors depending
on where the State class is used.
|
|
function declarations
These only apply in the definition of the function. They can be omitted
from the declaration.
|
|
|
|
We can use the named constant instead of using 32 directly.
|
|
within InitializeRegisterDefaults()
Lessens the amount of code that needs to be read, and gets rid of the
need to introduce an indexing variable. Instead, we just operate on the
objects directly.
|
|
std::memset is used to clear the entire register structure, which
requires that the Regs struct be trivially copyable (otherwise undefined
behavior is invoked). This prevents the case where a non-trivial type is
potentially added to the struct.
|
|
With C++17's deduction guides, the type doesn't need to be explicitly
specified within locking primitives anymore.
|
|
CommandDataContainer
std::move within a copy constructor (on a data member that isn't
mutable) will always result in a copy. Because of that, the behavior of
this copy constructor is identical to the one that would be generated
automatically by the compiler, so we can remove it.
|
|
video_core/memory_manager: Minor tidying
|
|
video_core: Remove a few unused variables and functions
|
|
Rasterizer Cache: refactor flushing & optimize memory usage of surfaces
|
|
slot.
It seems instructions marked with the 'exit' flag will not cause an exit when executed within a delay slot.
This was hwtested by fincs.
|
|
Corrects the typo in its name and marks the function as a const member
function, given it doesn't actually modify memory manager state.
|
|
Prevents implicit converting constructions of the memory manager.
|
|
Makes the class less surprising when it comes to forward declaring the
type, and also prevents inlining the destruction code of the class,
given it contains non-trivial types.
|
|
Corrects references to non-existent parameters and corrects typos.
|
|
These are able to be omitted from the declaration of functions, since
they don't do anything at the type system level. The definitions of the
functions can retain the use of const though, since they make the
variables immutable in the implementation of the function where they're
used.
|
|
Silences a -Wreorder warning.
|
|
|
|
DeclareInternalFlags()
|
|
function
This isn't used at all, so it can be removed.
|
|
UploadGLMipmapTexture()
This variable is unused entirely, so it can be removed.
|
|
Instead of retrieving the data from the std::variant instance, we can
just check if the variant contains that type of data.
This is essentially the same behavior, only it returns a bool indicating
whether or not the type in the variant is currently active, instead of
actually retrieving the data.
|
|
Silences a few compilation warnings.
|
|
Fix Layered ASTC Textures
|
|
gl_shader_disk_cache: Skip stored shader variants instead of asserting
|
|
Corrections and Implementation on GPU Engines
|
|
There was a weird bug that could happen if the object died directly and
the cache address wasn't stored.
|
|
This isn't used anywhere, so we can get rid of it.
|
|
Makes use of src, so it's not considered unused.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|