e895a4e2d7
shader/arithmetic_integer: Fix edge case and mark IADD.X Rd.CC as unimplemented
...
IADD.X Rd.CC requires some extra logic that is not currently
implemented. Abort when this is hit.
2020-04-25 22:58:33 -03:00
2a96bea6a7
shader/arithmetic_integer: Change IAdd to UAdd to avoid signed overflow
...
Signed integer addition overflow might be undefined behavior. It's free
to change operations to UAdd and use unsigned integers to avoid
potential bugs.
2020-04-25 22:57:54 -03:00
c788f9c0bd
shader/arithmetic_integer: Implement IADD.X
...
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.
2020-04-25 22:56:11 -03:00
255197e643
shader/arithmetic_integer: Implement CC for IADD
2020-04-25 22:55:26 -03:00
ffc5ec6fa8
decode/register_set_predicate: Implement CC
...
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.
2020-04-25 22:54:42 -03:00
d523734266
decode/register_set_predicate: Use move for shared pointers
...
Avoid atomic counters used by shared pointers.
2020-04-25 22:54:14 -03:00
c5bf693882
Merge pull request #3721 from ReinUsesLisp/sort-devices
...
vulkan/wrapper: Sort physical devices
2020-04-25 03:27:40 -04:00
4e37825dab
Merge pull request #3734 from ReinUsesLisp/half-float-mods
...
decode/arithmetic_half: Fix HADD2 and HMUL2 absolute and negation bits
2020-04-25 00:41:43 -04:00
7c8acb0025
Merge pull request #3749 from ReinUsesLisp/lea-imm
...
shader/arithmetic_integer: Fix LEA_IMM encoding
2020-04-24 14:30:13 -04:00
e717a1df20
Fix -Wdeprecated-copy warning.
2020-04-24 09:33:04 +02:00
c499c22cf7
Fix -Werror=conversion error.
2020-04-24 09:33:04 +02:00
dbaebd8582
decode/arithmetic_half: Fix HADD2 and HMUL2 absolute and negation bits
...
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:
8dbc389957/table.h (L68)
That is itself tested against nvdisasm (Nvidia's official disassembler).
2020-04-23 18:29:38 -03:00
ff0c49e1ce
kernel: memory: Improve implementation of device shared memory. ( #3707 )
...
* kernel: memory: Improve implementation of device shared memory.
* fixup! kernel: memory: Improve implementation of device shared memory.
* fixup! kernel: memory: Improve implementation of device shared memory.
2020-04-23 11:37:12 -04:00
2409fedacf
Merge pull request #3697 from lioncash/declarations
...
CMakeLists: Enable -Wmissing-declarations on Linux builds
2020-04-23 02:18:52 -04:00
bf2ddb8fd5
Merge pull request #3677 from FernandoS27/better-sync
...
Introduce Predictive Flushing and Improve ASYNC GPU
2020-04-22 22:09:38 -04:00
d9463f4562
vk_pipeline_cache: Fix unintentional memcpy into optional
...
The intention behind this was to assign a float to from an uint32_t, but
it was unintentionally being copied directly into the std::optional.
Copy to a temporary and assign that temporary to std::optional. This can
be replaced with std::bit_cast<float> once we are in C++20.
2020-04-22 21:36:05 -03:00
c043ac4f13
GL_Fence_Manager: use GL_TIMEOUT_IGNORED instead of a loop,
2020-04-22 20:34:32 -04:00
afae40a99e
Merge pull request #3653 from ReinUsesLisp/nsight-aftermath
...
renderer_vulkan: Integrate Nvidia Nsight Aftermath on Windows
2020-04-22 11:39:01 -04:00
4e37f1b113
Address Feedback.
2020-04-22 11:36:27 -04:00
39e5b72948
Async GPU: Correct flushing behavior to be similar to old async GPU behavior.
2020-04-22 11:36:26 -04:00
1b3be8a8f8
MaxwellDMA: Correct copying on accuracy level.
2020-04-22 11:36:25 -04:00
644588fd88
ShaderCache/PipelineCache: Cache null shaders.
2020-04-22 11:36:25 -04:00
f616dc0b59
Address Feedback.
2020-04-22 11:36:24 -04:00
ec2f3e48e1
Fix GCC error.
2020-04-22 11:36:23 -04:00
b3e5f177ba
QueryCache: Only do async flushes on async gpu.
2020-04-22 11:36:21 -04:00
f4ab223ef0
Async GPU: Only do reactive flushing on Extreme Level.
2020-04-22 11:36:20 -04:00
b752faf2d3
vk_fence_manager: Initial implementation
2020-04-22 11:36:19 -04:00
0649f05900
QueryCache: Implement Async Flushes.
2020-04-22 11:36:18 -04:00
131b342130
OpenGL: Guarantee writes to Buffers.
2020-04-22 11:36:18 -04:00
1fb516cd97
GPU: Implement Flush Requests for Async mode.
2020-04-22 11:36:17 -04:00
b7bc3c2549
FenceManager: Manage syncpoints and rename fences to semaphores.
2020-04-22 11:36:16 -04:00
96bb961a64
BufferCache: Refactor async managing.
2020-04-22 11:36:15 -04:00
b10db7e4a5
FenceManager: Implement async buffer cache flushes on High settings
2020-04-22 11:36:15 -04:00
4adfc9bb08
Rasterizer: Document SignalFence & ReleaseFences and setup skeletons on Vulkan.
2020-04-22 11:36:14 -04:00
a081a7c855
GPU: Fix rebase errors.
2020-04-22 11:36:13 -04:00
e84eb64e51
Rasterizer: Disable fence managing in synchronous gpu.
2020-04-22 11:36:12 -04:00
165ae823f5
ThreadManager: Sync async reads on accurate gpu.
2020-04-22 11:36:12 -04:00
57fdbd9b89
FenceManager: Implement should wait.
2020-04-22 11:36:11 -04:00
1f345ebe3a
GPU: Implement a Fence Manager.
2020-04-22 11:36:10 -04:00
487379c593
OpenGL: Implement Fencing backend.
2020-04-22 11:36:10 -04:00
ed7e965712
TextureCache: Flush linear textures after finishing rendering.
2020-04-22 11:36:09 -04:00
339d0d9d6c
GPU: Delay Fences.
2020-04-22 11:36:08 -04:00
8b1eb44b3e
BufferCache: Implement OnCPUWrite and SyncGuestHost
2020-04-22 11:36:07 -04:00
da8f17715d
GPU: Refactor synchronization on Async GPU
2020-04-22 11:36:06 -04:00
a60a22d9c2
Texture Cache: Implement OnCPUWrite and SyncGuestHost
2020-04-22 11:36:05 -04:00
084ceb925a
UI: Replasce accurate GPU option for GPU Accuracy Level
2020-04-22 11:36:04 -04:00
d64290884a
Merge pull request #3714 from lioncash/copies
...
gl_shader_decompiler: Avoid copies where applicable
2020-04-21 20:16:02 -04:00
f293b15611
Merge pull request #3718 from ReinUsesLisp/better-pipeline-state
...
fixed_pipeline_state: Pack structure, use memcmp and CityHash on it
2020-04-21 18:17:58 -03:00
9bf3abcb63
Merge pull request #3698 from lioncash/warning
...
General: Resolve minor assorted warnings
2020-04-21 14:11:18 -04:00
d3e0cefa60
Merge pull request #3695 from ReinUsesLisp/default-attributes
...
maxwell_3d: Initialize format attributes constant as one
2020-04-20 21:40:18 -04:00