| Commit message (Collapse) | Author | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
- This will be used as a catch-all for slow-but-accurate GPU emulation paths.
|
|
|
|
|
|
|
|
- This does not really have anything to do with OpenGL.
|
|
|
|
- These cannot be used within the cache, as they change cache state.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- Fixes issues with Splatoon 2.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* Added glObjectLabels for renderdoc for textures and shader programs
* Changed hardcoded "Texture" name to reflect the texture type instead
* Removed string initialize
|
|
|
|
|
|
|
|
- Fixes a regression with Sonic Mania with 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.
|
|
- Fixes an issue with Octopath Traveler leaving stale data here.
|
|
|
|
- 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.
|
|
|
|
|
|
|
|
- Will not work for non-2d textures, and was not used anyways.
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
* Implement BC6H_UF16 & BC6H_SF16
Require by ARMS
* correct coding style
* correct coding style part 2
|
|
Makes the class interface consistent and provides accessors for
obtaining a reference to the memory manager instance.
Given we also return references, this makes our more flimsy uses of
const apparent, given const doesn't propagate through pointers in the
way one would typically expect. This makes our mutable state more
apparent in some places.
|
|
|
|
|
|
|
|
|
|
|
|
Namespaces all OpenGL code under the OpenGL namespace.
Prevents polluting the global namespace and allows clear distinction
between other renderers' code in the future.
|
|
|
|
|
|
Needed by kirby
|
|
|
|
|
|
|
|
- Used by Super Mario Odyssey.
|
|
|
|
- Used by Breath of the Wild.
|
|
Needed for xenoblade
|
|
- Used by Breath of the Wild.
|
|
- Used by Breath of the Wild.
|
|
- Used by Go Vacation
|
|
- Used by Super Mario Odyssey.
|
|
- Used by Super Mario Odyssey.
|
|
* Implement R16S & R16UI & R16I RenderTargetFormats & PixelFormats
Do a separate function in order to get Bytes Per Pixel of DepthFormat
Apply the new function in gpu.h
delete unneeded white space
* correct merging error
|
|
|
|
|
|
|
|
* Implement BC5/DXN2 (#996)
- Used by Kirby Star Allies.
* Implement BC5/DXN2 SNORM
UNORM for Kirby Star Allies
SNORM for Super Mario Odyssey
|
|
A range-based for loop can't be used when the container being iterated
is also being erased from.
|
|
- Used by Kirby Star Allies.
|
|
It's generally easier to follow code using conditionals that operate in
terms of the true case followed by the false case (no chance of
overlooking the exclamation mark).
|
|
resize() causes the vector to expand and zero out the added members to
the vector, however we can avoid this zeroing by using assign().
Given we have the pointer to the data we want to copy, we can calculate
the end pointer and directly copy the range of data without the
need to perform the resize() beforehand.
|
|
This is only ever read from, so we can make the data it's pointing to
const.
|
|
|
|
|
|
correct trailing white spaces
Delete tabs
correct placement
Add RG16F & RG16UI & RG16I & RG16S PixelFormats
Return correct data according to changes done previously
correct PixelFormat declaration
correct coding style error
correct coding style error part 2
correct RG16S Declaration error
correct alignment
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This would result in a lot of allocations and related object
construction, just to toss it all away immediately after the call.
These are definitely not intentional, and it was intended that all of
these should have been accessing the static function GetInstance()
through the name itself, not constructed instances.
|
|
|
|
|
|
|
|
Note: Our version of glad exports GL_COMPRESSED_RGBA_BPTC_UNORM as GL_COMPRESSED_RGBA_BPTC_UNORM_ARB, maybe it's time we update it.
|
|
|
|
Don't try to configure the color buffer if it is not being cleared, it may not be completely valid at this point.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
gl_rasterizer_cache: Improved cache management based on Citra's implementation.
gl_surface_cache: Add some docstrings.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This fixes issues with retrieving non-block-aligned tiled compressed textures from the cache.
|
|
This avoids the problem of only copying a tiny piece of the textures when they are compressed.
|
|
We now use glCopyImageSubData, this should avoid errors with trying to attach a compressed texture as a framebuffer's color attachment and then blitting to it.
Maybe in the future we can change this to glCopyTextureSubImage which only requires GL_ARB_direct_state_access.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Prevents implicit conversions and scope pollution.
|
|
C++17 adds clamp() to the standard library, so we can remove ours in
favor of it.
|
|
|
|
|
|
For now only the UNORM type is supported.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
It will now use the UnswizzleTexture function instead of the MortonCopyPixels128, which doesn't seem to work for textures.
|
|
|
|
Compressed texture formats like DXT1, DXT2, DXT3, etc will use this to ease the load on the CPU.
|
|
|
|
We're only left with RGB8 and DXT1 for now. More will be added as they are needed.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
video_core didn't even properly use them, and they were the source of
many otherwise-unnecessary dependencies from core to video_core.
|
|
1. removed zl, zr and c-stick from HID::PadState. They are handled by IR, not HID
2. removed button handling in EmuWindow
3. removed key_map
4. cleanup #include
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* Removes circular dependences (common should not depend on core)
|
|
This OpenGL call synchronize the worker thread of the nvidia blob.
It can be verified on linux with the __GL_THREADED_OPTIMIZATIONS=1 environment variable.
Those errors should not happen on tested drivers.
It was used as a workaround for https://bugs.freedesktop.org/show_bug.cgi?id=94148
|
|
|
|
|
|
|
|
This makes clang-format useful on those.
Also add a bunch of forgotten transitive includes, which otherwise
prevented compilation.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Fixes #978
|
|
|
|
|
|
This brings goodies such as a configurable user interface and
multi-threaded timeline view.
|
|
If an OpenGL object is created, bound to a binding using the state
tracker, and then destroyed, a newly created object can be assigned the
same numeric handle by OpenGL. However, even though it is a new object,
and thus needs to be bound to the binding again, the state tracker
compared the current and previous handles and concluded that no change
needed to be made, leading to failure to bind objects in certain cases.
This manifested as broken text in VVVVVV, which this commit fixes along
with similar texturing problems in other games.
|
|
|
|
|
|
The file only contained vector manipulation code, and such widely-useable code doesn't belong in video_core.
|
|
|