| Age | Commit message (Collapse) | Author |
|
gl_rasterizer_cache: Implement RenderTargetFormat::BGRA8_SRGB.
|
|
Inline the WriteReg helper as it is called ~20k times per frame.
|
|
This moves the hot loop into video_core. This refactoring shall reduce the CPU overhead of calling ProcessCommandList.
|
|
This virtual function is called in a very hot spot, and it does nothing.
If this kind of feature is required, please be more specific and add callbacks
in the switch statement within Maxwell3D::WriteReg. There is no point in having
another switch statement within the rasterizer.
|
|
- Fixes an issue with Octopath Traveler leaving stale data here.
|
|
- Several misc. changes to ConfigureFramebuffers in support of this.
|
|
- Used by Octopath Traveler (with multiple render targets).
|
|
|
|
shader_decompiler: Implemented TMML
|
|
|
|
GPU/DMA: Partially implemented the 'enable_2d' bit in the DMA engine.
|
|
video_core: fixed arithmetic overflow warnings & improved code style
|
|
|
|
- Fixed all warnings, for renderer_opengl items, which were indicating a
possible incorrect behavior from integral promotion rules and types
larger than those in which arithmetic is typically performed.
- Added const for variables where possible and meaningful.
- Added constexpr where possible.
|
|
|
|
|
|
When not set, this tells the GPU to only use the X size when performing a DMA copy.
This is only implemented for linear->linear and tiled->tiled copies. Conversion copies still retain the assert.
This bit is unset by some games for various purposes, and by nouveau when copying the vertex buffers.
|
|
Initial support for non-2D textures
|
|
This hopefully helps our cache not to redundant upload the vertex buffer.
# Conflicts:
# src/video_core/renderer_opengl/gl_rasterizer.cpp
|
|
* video_core: Arithmetic overflow fix for gl_rasterizer
- Fixed warnings, which were indicating incorrect behavior from integral
promotion rules and types larger than those in which arithmetic is
typically performed.
- Added const for variables where possible and meaningful.
* Changed the casts from C to C++ style
Changed the C-style casts to C++ casts as proposed.
Took also care about signed / unsigned behaviour.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- Will not work for non-2d textures, and was not used anyways.
|
|
|
|
|
|
|
|
video_core/CMakeLists: Add missing gl_buffer_cache.h
|
|
video_core/gl_buffer_cache: Minor tidying changes
|
|
gl_rasterizer: Call state.Apply only once on SetupShaders.
|
|
|
|
|
|
Ensures that the cache always has a deterministic initial state.
|
|
GetHandle() internally calls GetHandle() on the stream_buffer instance,
which is a const member function, so this can be made const as well.
|
|
|
|
Implicit conversions during construction isn't desirable here.
|
|
Without this, the header file won't show up by default within IDEs such
as Visual Studio.
|
|
IMO the old code is fine, but nvidia raises shader compiler warnings.
Trivial fix through...
|
|
gl_rasterizer: Implement a VAO cache.
|
|
shader_decompiler: Implemented IPA Properly (Stage 1)
|
|
|
|
This is called ~3k times per frame in SMO ingame.
My laptop spends ~3ms per frame on allocating and freeing this string.
Let's just stop printing this kind of redundant information.
|
|
This patch caches VAO objects instead of re-emiting all pointers per draw call.
Configuring this pointers is known as a fast task, but it yields too many GL
calls. So for better performance, just bind the VAO instead of 16 pointers.
|
|
The idea of this cache is to avoid redundant uploads. So we are going
to cache the uploaded buffers within the stream_buffer and just reuse
the old pointers.
The next step is to implement a VBO cache on GPU memory, but for now,
I want to check the overhead of the cache management. Fetching the
buffer over PCI-E should be quite fast.
|
|
The std::string generation with its malloc and free requirement
was a noticeable overhead. Also switch to an ordered_map to
avoid the std::hash call. As those maps usually have a size of
two elements, the lookup time shall not matter.
|
|
Optimizations
|
|
gl_shader_decompiler: Use used_shaders member variable directly within GenerateDeclarations()
|