aae8c180cb
gl_query_cache: Implement host queries using a deferred cache
...
Instead of waiting immediately for executed commands, defer the query
until the guest CPU reads it. This way we get closer to what the guest
program is doing.
To archive this we have to build a dependency queue, because host APIs
(like OpenGL and Vulkan) use ranged queries instead of counters like
NVN.
Waiting for queries implicitly uses fences and this requires a command
being queued, otherwise the driver will lock waiting until a timeout. To
fix this when there are no commands queued, we explicitly call glFlush.
2020-02-14 17:33:13 -03:00
ef9920e164
gl_rasterizer: Sort method declarations
2020-02-14 17:27:17 -03:00
fe1238be7a
gl_rasterizer: Add queued commands counter
...
Keep track of the queued OpenGL commands that can signal a fence if
waited on. As a side effect, we avoid calls to glFlush when no commands
are queued.
2020-02-14 17:27:17 -03:00
2b58652f08
maxwell_3d: Slow implementation of passed samples (query 21)
...
Implements GL_SAMPLES_PASSED by waiting immediately for queries.
2020-02-14 17:27:17 -03:00
3217400dd1
gl_resource_manager: Add managed query class
2020-02-13 22:25:55 -03:00
3563af2364
Merge pull request #3395 from FernandoS27/queries
...
GPU: Refactor queries implementation and correct GPU Clock.
2020-02-13 20:18:26 -05:00
d6ed31b9fa
GPU: Address Feedback.
2020-02-13 18:16:07 -04:00
8b9a56033a
Merge pull request #3405 from lioncash/thread
...
address_arbiter: Minor cleanup to list querying
2020-02-12 21:46:00 -05:00
be269e21a5
address_arbiter: Collapse loops in InsertThread() and RemoveThread()
...
Same behavior, but without the need to explicitly loop through
everything manually.
2020-02-12 15:34:07 -05:00
9f2c703137
address_arbiter: Simplify GetThreadsWaitingOnAddress()
...
Simplifies the overall function and also allows for it to become a
const-qualified member function.
2020-02-12 15:10:16 -05:00
8f8dda2d5b
Merge pull request #3403 from lioncash/debug
...
bcat/backend: Prevent fmt exception in debug log within NullBackend::Clear()
2020-02-12 11:17:43 -05:00
2506f7b3a1
Merge pull request #3402 from lioncash/sys-global
...
kernel/thread: Remove trivial usages of the global system accessor
2020-02-12 10:10:00 -05:00
f00a54f508
bcat/backend: Make formatting of passphrase consistent in NullBackend::SetPassphrase()
...
Aligns the '=' to be consistent with the rest of the logs within this
source file.
2020-02-12 01:18:29 -05:00
eefd97e80d
bcat/backend: Prevent fmt exception in debug log within NullBackend::Clear()
...
A formatting specifier within Clear wasn't being used, which will cause
fmt to throw an exception. This fixes that.
2020-02-12 01:14:47 -05:00
b80c348b09
kernel/thread: Remove trivial usages of the global system accessor
...
We can just use the kernel member variable directly instead of going
through the system to obtain the same thing.
2020-02-12 01:00:41 -05:00
37f1cf8cbd
Merge pull request #3376 from ReinUsesLisp/point-sprite
...
gl_rasterizer: Implement GL_POINT_SPRITE
2020-02-11 08:26:07 -05:00
8e9a4944db
GPU: Implement GPU Clock correctly.
2020-02-10 10:44:54 -04:00
0cb3bcfbb7
Maxwell3D: Correct query reporting.
2020-02-10 10:41:43 -04:00
84ea9c2b42
Merge pull request #3372 from ReinUsesLisp/fix-back-stencil
...
maxwell_3d: Fix stencil back mask
2020-02-09 22:29:28 -05:00
21c3f48279
Merge pull request #3391 from Morph1984/remove-unknown
...
Remove option "Show files with type 'Unknown'"
2020-02-09 12:08:01 -05:00
fcf3425b1b
Remove option "Show files with type 'Unknown'"
2020-02-09 11:30:02 -05:00
a952fbc5b3
Merge pull request #3388 from bunnei/service-shared-ptr
...
hle: services: Use std::shared_ptr instead of copy by value.
- This is a prerequisite to adding a mutex to `ServiceFramework`, which cannot be copied.
- This will be used for threaded services.
2020-02-08 21:35:30 -05:00
e210835dd0
Merge pull request #3387 from bunnei/gpu-mpscqueue
...
gpu_thread: Use MPSCQueue for GPU commands.
2020-02-08 21:15:48 -05:00
6536cc9741
Merge pull request #3386 from bunnei/gpu-mem-interface
...
video_core: memory_manager: Use GPU interface for cache functions.
2020-02-08 21:15:27 -05:00
7b07e521ca
hle: services: Use std::shared_ptr instead of copy by value.
2020-02-07 23:02:26 -05:00
b5c13ee0eb
gpu_thread: Use MPSCQueue for GPU commands.
...
- Necessary for multiple service threads.
2020-02-07 23:01:23 -05:00
7cacb08cdf
video_core: memory_manager: Use GPU interface for cache functions.
2020-02-07 22:59:35 -05:00
90bda66028
Merge pull request #3378 from ReinUsesLisp/uscaled
...
maxwell_to_gl: Implement R8G8_USCALED
2020-02-07 22:55:52 -05:00
90df4b8e2b
Merge pull request #3369 from ReinUsesLisp/shf
...
shader/shift: Implement SHF
2020-02-07 22:06:57 -05:00
aa3f9b9606
Merge pull request #3381 from bunnei/ipc-fix
...
hle: services: Fix prepo IPC, and add better error checking.
2020-02-07 16:25:42 -05:00
09d766d357
Merge pull request #3362 from ReinUsesLisp/fix-instanced
...
gl_rasterizer: Fix instanced draw arrays
2020-02-06 21:39:59 -05:00
1b01c3036d
Merge pull request #3366 from bunnei/swkbd-fixes
...
applets: Fixes for software keyboard and transfer memory.
2020-02-05 23:26:32 -05:00
ba53543da6
kernel: transfer_memory: Properly reserve and reset memory region.
2020-02-05 23:06:54 -05:00
7a547b9342
wait_object: Make wait behavior only require one object to signal.
...
- This was holdover from citra.
2020-02-05 23:06:53 -05:00
3a0c1e79f8
am: Correct IPC object count mismatch.
2020-02-05 23:06:53 -05:00
77da74e17a
services: am: Clear events on PopOutData and PopInteractiveOutData.
2020-02-05 23:06:52 -05:00
84e895cdd6
am: Refactor IStorage interface.
2020-02-05 23:06:52 -05:00
3557fa25d0
applets: software_keyboard: Signal state change on end of interactive session.
2020-02-05 23:06:51 -05:00
be5fcffb89
applets: software_keyboard: Minor cleanup.
2020-02-05 23:06:50 -05:00
2245c24e21
services: prepo: Fix IPC interface with SaveReport/SaveReportWithUser.
2020-02-05 22:52:35 -05:00
9751ccc5e0
hle_ipc: Add error checking to read/write buffer access.
2020-02-05 22:52:35 -05:00
8bb9eef97b
maxwell_to_gl: Implement R8G8_USCALED
2020-02-04 21:32:36 -03:00
c81c361e82
maxwell_to_gl: Reduce unimplemented formats to LOG_ERROR
2020-02-04 21:32:08 -03:00
a0b4be4262
Merge pull request #3377 from ReinUsesLisp/bitset-vk
...
vk_rasterizer: Use noexcept methods of std::bitset
2020-02-04 16:56:57 -05:00
0eb36c90f4
vk_rasterizer: Use noexcept variants of std::bitset
...
Removes bounds checking from "texceptions" instances.
2020-02-04 18:04:24 -03:00
08c508b1c4
Merge pull request #3357 from ReinUsesLisp/bfi-rc
...
shader/bfi: Implement register-constant buffer variant
2020-02-04 15:14:13 -05:00
7da52673d0
gl_rasterizer: Implement GL_POINT_SPRITE
...
OpenGL core defaults to GL_POINT_SPRITE, meanwhile on OpenGL
compatibility we have to explicitly enable it. This fixes
gl_PointCoord's behaviour.
2020-02-04 15:19:45 -03:00
bf21aacc74
Merge pull request #3356 from ReinUsesLisp/fcmp
...
shader/arithmetic: Implement FCMP
2020-02-04 11:36:59 -05:00
5733287822
Merge pull request #3360 from CJBok/statusbar-buttons
...
GUI: Togglable graphics settings buttons in status bar
2020-02-03 16:57:18 -05:00
c31ec00d67
Merge pull request #3337 from ReinUsesLisp/vulkan-staged
...
yuzu: Implement Vulkan frontend
2020-02-03 16:56:25 -05:00