| Age | Commit message (Collapse) | Author |
|
Introduce a worker thread approach for delegating Vulkan work derived
from dxvk's approach. https://github.com/doitsujin/dxvk
Now that the scheduler is what handles all Vulkan work related to
command streaming, store state tracking in itself. This way we can know
when to reupload Vulkan dynamic state to the queue (since this one is
invalidated between command buffers unlike NVN). We can also store the
renderpass state and graphics pipeline bound to avoid redundant binds
and renderpass begins/ends.
|
|
Added missing include
|
|
implemented.
This commit ensures the OGL backend does not execute tesselation shader
stages as they are currently unimplemented.
|
|
shader: Implement MEMBAR.GL
|
|
|
|
This commit finishes adding depth mode that was reverted before due to
other unresolved issues.
|
|
Implement using memoryBarrier in GLSL and OpMemoryBarrier on SPIR-V.
|
|
|
|
|
|
|
|
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.
|