| Age | Commit message (Collapse) | Author |
|
# Conflicts:
# src/video_core/engines/kepler_memory.cpp
# src/video_core/engines/maxwell_3d.cpp
# src/video_core/morton.cpp
# src/video_core/morton.h
# src/video_core/renderer_opengl/gl_global_cache.cpp
# src/video_core/renderer_opengl/gl_global_cache.h
# src/video_core/renderer_opengl/gl_rasterizer_cache.cpp
|
|
|
|
video_core/morton: Miscellaneous changes
|
|
vk_sampler_cache: Implement a sampler cache
|
|
gl_rasterizer: Use system instance passed from argument
|
|
renderer_opengl/gl_global_cache: Add missing override specifiers
|
|
|
|
|
|
|
|
|
|
|
|
Co-Authored-By: ReinUsesLisp <reinuseslisp@airmail.cc>
|
|
|
|
|
|
gl_rasterizer: Encapsulate sampler queries into methods
|
|
insert_or_assign
The previous code had some minor issues with it, really not a big deal,
but amending it is basically 'free', so I figured, "why not?".
With the standard container maps, when:
map[key] = thing;
is done, this can cause potentially undesirable behavior in certain
scenarios. In particular, if there's no value associated with the key,
then the map constructs a default initialized instance of the value
type.
In this case, since it's a std::shared_ptr (as a type alias) that is
the value type, this will construct a std::shared_pointer, and then
assign over it (with objects that are quite large, or actively heap
allocate this can be extremely undesirable).
We also make the function take the region by value, as we can avoid a
copy (and by extension with std::shared_ptr, a copy causes an atomic
reference count increment), in certain scenarios when ownership isn't a
concern (i.e. when ReserveGlobalRegion is called with an rvalue
reference, then no copy at all occurs). So, it's more-or-less a "free"
gain without many downsides.
|
|
Two of the functions here are overridden functions, so we can append
these specifiers to make it explicit.
|
|
|
|
shader_ir: Remove "extras" from the MetaTexture
|
|
gl_rasterizer_cache: Create texture views for array discrepancies
|
|
|
|
|
|
video_core/gpu_thread: Silence a -Wreorder warning
|
|
video_core/gpu: Make GPU's destructor virtual
|
|
maxwell_to_vk: Initial implementation
|
|
Instead of holding a reference that will get invalidated by
dma_pushbuffer.pop(), hold it as a copy. This doesn't have any
performance cost since CommandListHeader is 8 bytes long.
|
|
This function didn't have a definition, so we can remove it to prevent
accidentally attempting to use it.
|
|
Moves the data members to satisfy the order they're declared as in the
constructor initializer list.
Silences a -Wreorder warning.
|
|
Because of the recent separation of GPU functionality into sync/async
variants, we need to mark the destructor virtual to provide proper
destruction behavior, given we use the base class within the System
class.
Prior to this, it was undefined behavior whether or not the destructor
in the derived classes would ever execute.
|
|
Asynchronous GPU command processing
|
|
gl_rasterizer_cache: Move format conversion functions to their own file
|
|
|
|
|
|
|
|
|
|
|
|
core: Remove the global telemetry accessor function
|
|
|
|
|
|
video_core/engines: Remove unnecessary includes
|
|
Removes a few unnecessary dependencies on core-related machinery, such
as the core.h and memory.h, which reduces the amount of rebuilding
necessary if those files change.
This also uncovered some indirect dependencies within other source
files. This also fixes those.
|
|
This isn't needed anymore, according to Hexagon
|
|
gl_rasterizer: Unbind textures but don't apply the gl_state
|
|
accessors
We already pass a reference to the system object to the constructor of the renderer,
so we can just use that instead of using the global accessor functions.
|
|
|
|
vk_buffer_cache: Fix clang-format
|
|
fuck git for ruining my day, I will learn but I will not forgive
|
|
|
|
|
|
This buffer cache is just like OpenGL's buffer cache with some minor
style changes. It uses VKStreamBuffer.
|