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
|
|
|
|
vk_swapchain: Add support for swapping sRGB
|
|
Over the course of the changes to the kernel code, a few includes are no
longer necessary, particularly with the change over to std::shared_ptr
from Boost's intrusive_ptr.
|
|
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.
|
|
|
|
|
|
|
|
CpuCore: Clear exclusive state after doing a run in dynarmic.
|
|
|
|
Implement FLO & TXD Instructions on GPU Shaders
|
|
This commit corrects an error in which a Core could remain with an
exclusive state after running, leaving space for possible race
conditions between changing cores.
|
|
We only have OpenGL as an option for now. Hardcode the entry.
|
|
|
|
Texture_Cache: Redo invalid Surfaces handling.
|
|
kernel: Implement a more accurate IPC dispatch.
|
|
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
|
|
filesys/romfs: Make ProcessFile and ProcessDirectory internally linked
|
|
enabled (#3178)
* Adds check for disabled cheats to prevent them from being added to the CheatList
* Address feedback
|
|
file_sys/directory: Make EntryType an enum class
|
|
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.
|
|
These inclusions aren't used at all within the public interface, so they
can be removed.
|
|
These functions aren't used outside of this file, so we can place them
within an anonymous namespace.
|
|
This can trivially be an enum class rather than a regular enum, making
it more strongly typed.
|
|
Now that literally every other API function is converted over to the
Memory class, we can just move the file-local page table into the Memory
implementation class, finally getting rid of global state within the
memory code.
|
|
Now that everything else is migrated over, this is essentially just code
relocation and conversion of a global accessor to the class member
variable.
All that remains is to migrate over the page table.
|
|
The Write functions are used slightly less than the Read functions,
which make these a bit nicer to move over.
The only adjustments we really need to make here are to Dynarmic's
exclusive monitor instance. We need to keep a reference to the currently
active memory instance to perform exclusive read/write operations.
|
|
With all of the trivial parts of the memory interface moved over, we can
get right into moving over the bits that are used.
Note that this does require the use of GetInstance from the global
system instance to be used within hle_ipc.cpp and the gdbstub. This is
fine for the time being, as they both already rely on the global system
instance in other functions. These will be removed in a change directed
at both of these respectively.
For now, it's sufficient, as it still accomplishes the goal of
de-globalizing the memory code.
|
|
These currently aren't used anywhere in the codebase, so these are very
trivial to move over to the Memory class.
|
|
This is only used within the accelerated rasterizer in two places, so
this is also a very trivial migration.
|
|
This only had one usage spot, so this is fairly straightforward to
convert over.
|
|
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.
|
|
anonymous namespace
These will eventually be migrated into the main Memory class, but for
now, we put them in an anonymous namespace, so that the other functions
that use them, can be migrated over separately.
|