Age | Commit message (Collapse) | Author |
|
shader: Implement P2R CC, IADD Rd.CC and IADD.X
|
|
texture_cache: Reintroduce preserve_contents accurately
|
|
Revert: shader_decode: Fix LD, LDG when track constant buffer.
|
|
Dump RomFS command to include Updates
|
|
Don't fail silently for vi, sm, set and ns services
|
|
physical_core: Make use of std::make_unique instead of std::make_shared in ctor
|
|
|
|
This temporary is not needed as we mark Rd.CC + IADD.X as unimplemented.
It caused issues when tracking global buffers.
|
|
shader/memory_util: Deduplicate code
|
|
As we currently match hardware and don't return a successful result, these should be marked as errors instead of warnings and as stubs.
|
|
Consistency for the rest of the error codes in the codebase
|
|
vi: Don't let uninitialized data pass as a response for SetBufferCount
|
|
vk_renderpass_cache: Pack renderpass cache key and unify keys
|
|
vk_memory_manager: Remove unified memory model flag
|
|
services: hid: Stub StopSevenSixAxisSensor.
|
|
Optimize GPU Command Lists and Introduce Fast GPU Time Option
|
|
This reverts commit 94b0e2e5dae4e0bd0021ac2d8fe1ff904a93ee69.
preserve_contents proved to be a meaningful optimization. This commit
reintroduces it but properly implemented on OpenGL.
We have to make sure the clear removes all the previous contents of the
image.
It's not currently implemented on Vulkan because we can do smart things
there that's preferred to be introduced in a separate commit.
|
|
Fix "Port citra-emu/citra#4956: "Fixes to game list sorting" #3611"
|
|
service: Update function tables
|
|
{gl,vk}_rasterizer: Add lazy default buffer maker and use it for empty buffers
|
|
Deduplicate code shared between vk_pipeline_cache and gl_shader_cache as
well as shader decoder code.
While we are at it, fix a bug in gl_shader_cache where compute shaders
had an start offset of a stage shader.
|
|
configuration: Add Restore Default and Clear options to hotkeys
|
|
configure_input_player: Use slider to edit modifier scale
|
|
IADD.X Rd.CC requires some extra logic that is not currently
implemented. Abort when this is hit.
|
|
Signed integer addition overflow might be undefined behavior. It's free
to change operations to UAdd and use unsigned integers to avoid
potential bugs.
|
|
IADD.X takes the carry flag and adds it to the result. This is generally
used to emulate 64-bit operations with 32-bit registers.
|
|
|
|
P2R CC takes the state of condition codes and puts them into a register.
We already have this implemented for PR (predicates). This commit
implements CC over that.
|
|
Avoid atomic counters used by shared pointers.
|
|
- Used by The Legend of Zelda: Breath of the Wild v1.6.0
|
|
|
|
vulkan/wrapper: Sort physical devices
|
|
decode/arithmetic_half: Fix HADD2 and HMUL2 absolute and negation bits
|
|
svc: Re-add MapProcessCodeMemory/UnmapProcessCodeMemory
|
|
Sometimes for unknown reasons NVN games can bind a render target format
of 0. This may be a yuzu bug.
With the commits before this the formats were specified without being
"packed", assuming all formats and texceptions will be written like in
the color_attachments vector.
To address this issue, iterate all render targets and pack them as they
are valid. This way they will match color_attachments.
- Fixes validation errors and graphical issues on Breath of the Wild.
|
|
|
|
shader/arithmetic_integer: Fix LEA_IMM encoding
|
|
|
|
|
|
|
|
Currently SetBufferCount doesn't write to the out buffer which then contains uninitialized data. This leads to non-zero data which leads to responding with different error codes
|
|
frontend/filesystem: Add a trailing separator to the string path
|
|
We can also allow unicorn to be constructed in 32-bit mode or 64-bit
mode to satisfy the need for both interpreter instances.
Allows this code to compile successfully of non x86-64 architectures.
|
|
page_table: Remove unused captures
|
|
svc: Remove unused variable
|
|
Amends the parameter to match the documentation reference.
Resolves a -Wdocumentation warning with clang.
|
|
These were lost in the re-implementation of the virtual memory manager.
|
|
Since the VMM refactor, this is no longer used or needed.
|
|
Any time the lambda function is called, the permission being used in the
capture would be passed in as an argument to the lambda, so the capture
is unnecessary.
|
|
The encoding for negation and absolute value was wrong.
Extracting is now done manually. Similar instructions having different
encodings is the rule, not the exception. To keep sanity and readability
I preferred to extract the desired bit manually.
This is implemented against nxas:
https://github.com/ReinUsesLisp/nxas/blob/8dbc38995711cc12206aa370145a3a02665fd989/table.h#L68
That is itself tested against nvdisasm (Nvidia's official disassembler).
|