Age | Commit message (Collapse) | Author |
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
gl_device: Deduce indexing bug from device instead of heuristic
|
|
* 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.
|
|
gl_shader_decompiler: Fix casts from fp32 to fp16
|
|
kernel: Fix reference management for client/server session.
|
|
Casts from f32 to f16 zeroes the higher half of the target register.
|
|
- Fixes shutdown crash and crash in Pokemon SwSh.
|
|
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.
|
|
ci: Continue pipeline on clang format failure
|
|
|
|
gl_texture_cache: Apply sRGB on blits
|
|
service: Update function tables
|
|
gpu_thread: Don't spin wait if there are no GPU commands.
|
|
kernel objects. (#3154)
* kernel: Replace usage of boost::intrusive_ptr with std::shared_ptr for kernel objects.
- See https://github.com/citra-emu/citra/pull/4710 for details.
|
|
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
|
|
svc: GetSystemTick should return cntpct_el0, not core ticks.
|
|
Port citra-emu/citra#4964: "Unfold UNREACHABLE implementation for dumb compilers"
|
|
buffer_cache: Remove brace initialized for objects with default constructor
|
|
|
|
|
|
|
|
Kernel: Correct behavior of Condition Variables to be more similar to real hardware.
|
|
gl_shader_gen: Apply default value to gl_Position
|
|
Kernel: Correct Cancel Synchronization.
|
|
|
|
We relies on UNREACHABLE's noreturn attribute to eliminate parent's "no return value" warning. However, this was wrapped in a `if(!false)` block, which compilers may not unfold to recognize the noreturn nature.
|
|
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.
|
|
Shared memory was being declared with an undefined size. Specialize from
guest GPU parameters the compute shader's shared memory size.
|
|
Drop the usage of ARB_compute_variable_group_size and specialize compute
shaders instead. This permits compute to run on AMD and Intel
proprietary drivers.
|
|
Some games like "Fire Emblem: Three Houses" bind 2D textures to offsets
used by instructions of 1D textures. To handle the discrepancy this
commit uses the the texture type from the binding and modifies the
emitted code IR to build a valid backend expression.
E.g.: Bound texture is 2D and instruction is 1D, the emitted IR samples
a 2D texture in the coordinate ivec2(X, 0).
|
|
Instead of specializing shaders to separate texture buffers from 1D
textures, use the locker to deduce them while they are being decoded.
|
|
Port citra-emu/citra#4953: "citra_qt/main.ui: remove unused actions "Load Symbol Map..." and "Select Game Directory...""
|
|
service/am: Remove unnecessary Skip calls
|
|
am: Stub QueryApplicationPlayStatistics
|
|
|