| Age | Commit message (Collapse) | Author |
|
|
|
|
|
Update Sirit and its usage in vk_shader_decompiler. Highlights:
- Implement tessellation shaders
- Implement geometry shaders
- Implement some missing features
- Use native half float instructions when available.
|
|
|
|
|
|
- Setup more features and requirements.
- Improve logging for missing features.
- Collect telemetry parameters.
- Add queries for more image formats.
- Query push constants limits.
- Optionally enable some extensions.
|
|
maxwell_3d: Add tessellation state entries
|
|
|
|
We don't know until the game is running if it's using an sRGB color
space or not. Add support for hot-swapping swapchain surface formats.
|
|
|
|
|
|
|
|
|
|
Implement FLO & TXD Instructions on GPU Shaders
|
|
Texture_Cache: Redo invalid Surfaces handling.
|
|
gl_framebuffer_cache: Optimize framebuffer cache management
|
|
Some texture views were being created out of bounds (with more layers or
mipmaps than what the original texture has). This is because of a
miscalculation in mipmap bounding. end_layer and end_mipmap are out of
bounds (e.g. layer 6 in a cubemap), there's no need to add one more
there.
Fixes OpenGL errors and Vulkan crashes on Splatoon 2.
|
|
Pack color attachment enumerations into a single u32. To determine the
number of buffers, the highest color attachment with a shared pointer
that doesn't point to null is used.
|
|
|
|
core/memory: Deglobalize memory management code
|
|
video_core/gpu_thread: Tidy up SwapBuffers()
|
|
We can just use std::nullopt and std::make_optional to make this a
little bit less noisy.
|
|
Tidies it up a little bit visually.
|
|
|
|
Silences a compiler warning.
|
|
This is only used within the accelerated rasterizer in two places, so
this is also a very trivial migration.
|
|
With all of the interfaces ready for migration, it's trivial to migrate
over GetPointer().
|
|
Amends a few interfaces to be able to handle the migration over to the
new Memory class by passing the class by reference as a function
parameter where necessary.
Notably, within the filesystem services, this eliminates two ReadBlock()
calls by using the helper functions of HLERequestContext to do that for
us.
|
|
gl_device: Deduce indexing bug from device instead of heuristic
|
|
Casts from f32 to f16 zeroes the higher half of the target register.
|
|
The heuristic to detect AMD's driver was not working properly since it
also included Intel. Instead of using heuristics to detect it, compare
the GL_VENDOR string.
|
|
gl_texture_cache: Apply sRGB on blits
|
|
gpu_thread: Don't spin wait if there are no GPU commands.
|
|
gl_shader_cache: Miscellaneous changes to shaders
|
|
glBlitFramebuffer keeps in mind GL_FRAMEBUFFER_SRGB's state. Enable this
depending on the target surface pixel format.
|
|
maxwell_3d: Fix stencil_back_func_mask offset
|
|
buffer_cache: Remove brace initialized for objects with default constructor
|
|
|
|
gl_shader_gen: Apply default value to gl_Position
|
|
SSBOs and other resources are limited per pipeline on Intel and AMD.
Heuristically reserve resources per stage having in mind the reported
OpenGL limits.
|
|
glBindTextureUnit doesn't support null textures. Skip binding these.
|
|
Intel's proprietary driver enters in a corrupt state when compute
shaders are executed. For now, disable these.
|
|
The current shared memory size seems to be smaller than what the game
actually uses. This makes Nvidia's driver consistently blow up; in the
case of FE3H it made it explode on Qt's SwapBuffers while SDL2 worked
just fine. For now keep this hack since it's still progress over the
previous hardcoded shared memory size.
|
|
|
|
Stage and compute shaders were using a different binding counter.
Normalize these.
|
|
|
|
|
|
|
|
Images were not being bound to draw invocations because these would
require a cache invalidation.
|
|
Local memory size in compute shaders was stubbed with an arbitary size.
This commit specializes local memory size from guest GPU parameters.
|