| Age | Commit message (Collapse) | Author |
|
Port Citra #4047 & #4052: add change background color support
|
|
gl_rasterizer_cache: Improve accuracy of caching and copies.
|
|
gl_rasterizer: Use ARB_texture_storage.
|
|
- Fixes several rendering issues with Super Mario Odyssey.
|
|
- This was once an optimization, but we no longer need it with the cache reserve.
- This is also inaccurate.
|
|
It allows us to use texture views and it reduces the overhead within the GPU driver.
But it disallows us to reallocate the texture, but we don't do so anyways.
In the end, it is the new way to allocate textures, so there is no need to use the old way.
|
|
|
|
|
|
gl_rasterizer: Implement clear for non-zero render targets.
|
|
gl_rasterizer_cache: Only use depth for applicable texture formats.
|
|
gl_rasterizer_cache: Implement RenderTargetFormat::BGRA8_SRGB.
|
|
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
|
|
|
|
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.
|
|
|
|
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/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.
|
|
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.
|