ReinUsesLisp
bcd348f238
vk_query_cache: Implement generic query cache on Vulkan
6 years ago
ReinUsesLisp
c31382ced5
query_cache: Abstract OpenGL implementation
Abstract the current OpenGL implementation into the VideoCommon
namespace and reimplement it on top of that. Doing this avoids repeating
code and logic in the Vulkan implementation.
6 years ago
ReinUsesLisp
73d2d3342d
gl_query_cache: Optimize query cache
Use a custom cache instead of relying on a ranged cache.
6 years ago
ReinUsesLisp
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.
6 years ago
ReinUsesLisp
ef9920e164
gl_rasterizer: Sort method declarations
6 years ago
ReinUsesLisp
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.
6 years ago
ReinUsesLisp
2b58652f08
maxwell_3d: Slow implementation of passed samples (query 21)
Implements GL_SAMPLES_PASSED by waiting immediately for queries.
7 years ago
Morph
c3d0a0d627
Add 4:3 aspect ratio and address feedback
6 years ago
Fernando Sahmkow
829d8c0d6b
Core: Correct compilition in GCC
6 years ago
Morph
20dc2e3622
Address feedback
6 years ago
Morph
22f58cca5e
Use enumeration instead of magic numbers
6 years ago
Morph
27e19f87c6
Add following aspect ratios: 16:9, 21:9, Stretch to Window
Available as a drop down within the configure graphics tab.
6 years ago
ReinUsesLisp
3217400dd1
gl_resource_manager: Add managed query class
7 years ago
ReinUsesLisp
336a4f8e99
gl_rasterizer: Use the least generic OpenGL draw function possible
This may help some implementations.
6 years ago
ReinUsesLisp
cbea8c74de
vk_shader_decompiler: Fix vertex id and instance id
Vulkan's VertexIndex and InstanceIndex don't match with hardware. This
is because Nvidia implements gl_VertexID and gl_InstanceID. The math
that relates these is:
gl_VertexIndex = gl_BaseVertex + gl_VertexID
gl_InstanceIndex = gl_InstanceIndex + gl_InstanceID
To emulate it using what Vulkan's SPIR-V offers (the *Index variants)
this commit substracts gl_Base* from gl_*Index to obtain the OpenGL and
hardware's equivalent.
6 years ago
Fernando Sahmkow
2bc949628d
Core: Address Feedback
6 years ago
Fernando Sahmkow
d6ed31b9fa
GPU: Address Feedback.
6 years ago
Lioncash
be269e21a5
address_arbiter: Collapse loops in InsertThread() and RemoveThread()
Same behavior, but without the need to explicitly loop through
everything manually.
6 years ago
Lioncash
9f2c703137
address_arbiter: Simplify GetThreadsWaitingOnAddress()
Simplifies the overall function and also allows for it to become a
const-qualified member function.
6 years ago
Lioncash
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.
6 years ago
Lioncash
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.
6 years ago
Lioncash
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.
6 years ago
Fernando Sahmkow
1e6f8aba04
Core: Set all hardware emulation constants in a single file.
6 years ago
Fernando Sahmkow
d23d504d77
Kernel: Refactor synchronization to better match RE
6 years ago
makigumo
926ea5a16d
update hwopus DecodeInterleaved for FW 7.0.0+
trivial change,
see https://switchbrew.org/wiki/Audio_services#IHardwareOpusDecoder
6 years ago
Fernando Sahmkow
c5aefe42aa
Kernel: Change WaitObject to Synchronization object. In order to better reflect RE.
6 years ago
Fernando Sahmkow
8e9a4944db
GPU: Implement GPU Clock correctly.
6 years ago
Fernando Sahmkow
0cb3bcfbb7
Maxwell3D: Correct query reporting.
6 years ago
Morph
fcf3425b1b
Remove option "Show files with type 'Unknown'"
6 years ago
bunnei
7b07e521ca
hle: services: Use std::shared_ptr instead of copy by value.
6 years ago
bunnei
b5c13ee0eb
gpu_thread: Use MPSCQueue for GPU commands.
- Necessary for multiple service threads.
6 years ago
bunnei
7cacb08cdf
video_core: memory_manager: Use GPU interface for cache functions.
6 years ago
bunnei
ba53543da6
kernel: transfer_memory: Properly reserve and reset memory region.
6 years ago
Zach Hilman
7a547b9342
wait_object: Make wait behavior only require one object to signal.
- This was holdover from citra.
7 years ago
bunnei
3a0c1e79f8
am: Correct IPC object count mismatch.
6 years ago
bunnei
77da74e17a
services: am: Clear events on PopOutData and PopInteractiveOutData.
6 years ago
bunnei
84e895cdd6
am: Refactor IStorage interface.
6 years ago
bunnei
3557fa25d0
applets: software_keyboard: Signal state change on end of interactive session.
6 years ago
bunnei
be5fcffb89
applets: software_keyboard: Minor cleanup.
6 years ago
bunnei
2245c24e21
services: prepo: Fix IPC interface with SaveReport/SaveReportWithUser.
6 years ago
bunnei
9751ccc5e0
hle_ipc: Add error checking to read/write buffer access.
6 years ago
ReinUsesLisp
bf9a822b87
shader/decode: Fix constant buffer offsets
Some instances were using cbuf34.offset instead of cbuf34.GetOffset().
This returned the an invalid offset. Address those instances and rename
offset to "shifted_offset" to avoid future bugs.
6 years ago
ReinUsesLisp
8bb9eef97b
maxwell_to_gl: Implement R8G8_USCALED
6 years ago
ReinUsesLisp
c81c361e82
maxwell_to_gl: Reduce unimplemented formats to LOG_ERROR
6 years ago
ReinUsesLisp
0eb36c90f4
vk_rasterizer: Use noexcept variants of std::bitset
Removes bounds checking from "texceptions" instances.
6 years ago
ReinUsesLisp
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.
6 years ago
Lioncash
c7678c3044
input_common/udp: Ensure that UDP is shut down within Shutdown()
Previously the UDP backend would never actually get shut down.
6 years ago
Lioncash
83f8090273
input_common/udp: Add missing override specifiers
Prevents trivial warnings and ensures interfaces are properly
maintained between the base class.
6 years ago
Lioncash
5c61e0ba39
input_common/udp: std::move SocketCallback instances where applicable
std::function is allowed to heap allocate if the size of the captures
associated with each lambda exceed a certain threshold. This prevents
potentially unnecessary reallocations from occurring.
6 years ago
Lioncash
fb9c9ddcc9
input_common/udp: std::move shared_ptr within Client constructor
Gets rid of a trivially avoidable atomic reference count increment and
decrement.
6 years ago