Commit Graph

13794 Commits (dba112e51059f5e6107d02a0eb00513887d3b089)
 

Author SHA1 Message Date
bunnei 3c1b6b5723
Merge pull request #2987 from FernandoS27/texture-invalid
Texture_Cache: Redo invalid Surfaces handling.
5 years ago
bunnei 5c7253f8d3
Merge pull request #3177 from bunnei/new-ipc-req
kernel: Implement a more accurate IPC dispatch.
5 years ago
bunnei 930b7c18a6
Merge pull request #3184 from ReinUsesLisp/framebuffer-cache
gl_framebuffer_cache: Optimize framebuffer cache management
5 years ago
Fernando Sahmkow b2c7636710
Merge pull request #3185 from ReinUsesLisp/oob-texture
texture_cache/surface_base: Fix out of bounds texture views
5 years ago
ReinUsesLisp ff64c3951a
texture_cache/surface_base: Fix out of bounds texture views
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.
5 years ago
ReinUsesLisp fb6cf12a17
gl_framebuffer_cache: Optimize framebuffer key
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.
5 years ago
ReinUsesLisp c34da106ed
gl_rasterizer: Re-enable framebuffer cache for clear buffers 5 years ago
ReinUsesLisp e6a0a30334
renderer_opengl: Make ScreenRectVertex's constructor constexpr 5 years ago
ReinUsesLisp dee7844443
renderer_opengl: Remove C casts 5 years ago
ReinUsesLisp 3a44faff11
renderer_opengl: Use explicit binding for presentation shaders 5 years ago
ReinUsesLisp 75cc501d52
renderer_opengl: Drop macros for message decorations 5 years ago
ReinUsesLisp 056f049b26
renderer_opengl: Move static definitions to anonymous namespace 5 years ago
ReinUsesLisp 4589582eaf
renderer_opengl: Move commentaries to header file 5 years ago
bunnei c3d3b173d3 kernel: Implement a more accurate IPC dispatch. 5 years ago
bunnei e3ee017e91
Merge pull request #3169 from lioncash/memory
core/memory: Deglobalize memory management code
5 years ago
bunnei fe65045dcb
Merge pull request #3171 from lioncash/internal-link
filesys/romfs: Make ProcessFile and ProcessDirectory internally linked
5 years ago
Morph e0242a4654 patch_manager: Adds check for disabled cheats to prevent them from being enabled (#3178)
* Adds check for disabled cheats to prevent them from being added to the CheatList

* Address feedback
5 years ago
bunnei c47fc3301d
Merge pull request #3170 from lioncash/enum
file_sys/directory: Make EntryType an enum class
5 years ago
Rodrigo Locatti 913d0bb269
Merge pull request #3174 from lioncash/optional
video_core/gpu_thread: Tidy up SwapBuffers()
5 years ago
Lioncash aed6d8bef5 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.
5 years ago
Rodrigo Locatti 40ec1c22ce
Merge pull request #3172 from lioncash/pragma
video_core/const_buffer_locker: Remove #pragma once from cpp file
5 years ago
Lioncash 9403979c22 video_core/const_buffer_locker: Make use of std::tie in HasEqualKeys()
Tidies it up a little bit visually.
5 years ago
Lioncash 930e311526 video_core/const_buffer_locker: Remove unused includes 5 years ago
Lioncash 9341ca7979 video_core/const_buffer_locker: Remove #pragma once from cpp file
Silences a compiler warning.
5 years ago
Lioncash d66ab2b8aa filesys/romfs: Remove unused includes
These inclusions aren't used at all within the public interface, so they
can be removed.
5 years ago
Lioncash ba3c55ab7b filesys/romfs: Make ProcessFile and ProcessDirectory internally linked
These functions aren't used outside of this file, so we can place them
within an anonymous namespace.
5 years ago
Lioncash a3149536e2 file_sys/directory: Make EntryType an enum class
This can trivially be an enum class rather than a regular enum, making
it more strongly typed.
5 years ago
Lioncash e7e939104b core/memory; Migrate over SetCurrentPageTable() to the Memory class
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.
5 years ago
Lioncash 50a518be69 core/memory: Migrate over GetPointerFromVMA() to the Memory class
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.
5 years ago
Lioncash e4c381b885 core/memory: Migrate over Write{8, 16, 32, 64, Block} to the Memory class
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.
5 years ago
Lioncash b05bfc6036 core/memory: Migrate over Read{8, 16, 32, 64, Block} to the Memory class
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.
5 years ago
Lioncash 89ef3ef575 core/memory: Migrate over ZeroBlock() and CopyBlock() to the Memory class
These currently aren't used anywhere in the codebase, so these are very
trivial to move over to the Memory class.
5 years ago
Lioncash 849581075a core/memory: Migrate over RasterizerMarkRegionCached() to the Memory class
This is only used within the accelerated rasterizer in two places, so
this is also a very trivial migration.
5 years ago
Lioncash b2165c6b35 core/memory: Migrate over ReadCString() to the Memory class
This only had one usage spot, so this is fairly straightforward to
convert over.
5 years ago
Lioncash 3f08e8d8d4 core/memory: Migrate over GetPointer()
With all of the interfaces ready for migration, it's trivial to migrate
over GetPointer().
5 years ago
Lioncash 536fc7f0ea core: Prepare various classes for memory read/write migration
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.
5 years ago
Lioncash fc7d0a17b6 core/memory: Move memory read/write implementation functions into an 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.
5 years ago
Lioncash e58748fd80 core/memory: Migrate over address checking functions to the new Memory class
A fairly straightforward migration. These member functions can just be
mostly moved verbatim with minor changes. We already have the necessary
plumbing in places that they're used.

IsKernelVirtualAddress() can remain a non-member function, since it
doesn't rely on class state in any form.
5 years ago
Lioncash 323680e5ad core/memory: Migrate over memory mapping functions to the new Memory class
Migrates all of the direct mapping facilities over to the new memory
class. In the process, this also obsoletes the need for memory_setup.h,
so we can remove it entirely from the project.
5 years ago
Lioncash 4c2ed2706e core/memory: Introduce skeleton of Memory class
Currently, the main memory management code is one of the remaining
places where we have global state. The next series of changes will aim
to rectify this.

This change simply introduces the main skeleton of the class that will
contain all the necessary state.
5 years ago
bunnei 6df6caaf5f
Merge pull request #3143 from ReinUsesLisp/indexing-bug
gl_device: Deduce indexing bug from device instead of heuristic
5 years ago
bunnei ec0ce96c56
core_timing: Use better reference tracking for EventType. (#3159)
* core_timing: Use better reference tracking for EventType.

- Moves ownership of the event to the caller, ensuring we don't fire events for destroyed objects.
- Removes need for unique names - we won't be using this for save states anyways.
5 years ago
bunnei 31daaa7911
Merge pull request #3164 from ReinUsesLisp/half-cast-float
gl_shader_decompiler: Fix casts from fp32 to fp16
5 years ago
Fernando Sahmkow 59484442a0
Merge pull request #3162 from bunnei/fix-shared-ptr-crash
kernel: Fix reference management for client/server session.
5 years ago
ReinUsesLisp ef4446cb11
gl_shader_decompiler: Fix casts from fp32 to f16
Casts from f32 to f16 zeroes the higher half of the target register.
5 years ago
bunnei f6b9b7910e kernel: Fix reference management for client/server session.
- Fixes shutdown crash and crash in Pokemon SwSh.
5 years ago
ReinUsesLisp 410d44ce05
gl_device: Deduce indexing bug from device instead of heuristic
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.
5 years ago
bunnei 6d23b045a0
Merge pull request #3160 from DarkLordZach/opt-ea-clang-fmt
ci: Continue pipeline on clang format failure
5 years ago
Zach Hilman 8652313af2 ci: Continue pipeline on clang format failure 5 years ago
bunnei 2899c93818
Merge pull request #3158 from ReinUsesLisp/srgb-blit
gl_texture_cache: Apply sRGB on blits
5 years ago