namkazy
8bb64da7ac
nvhost_gpu: implement ChannelSetTimeslice
2020-02-16 11:53:03 +07:00
bunnei
f382179d47
Revert "video_core: memory_manager: Use GPU interface for cache functions."
2020-02-15 17:47:15 -05:00
ReinUsesLisp
f3255c3598
texture: Implement R32I
2020-02-15 16:26:50 -03:00
ReinUsesLisp
f37f4e76d6
shader/texture: Allow 2D shadow arrays and simplify code
...
Shadow sampler 2D arrays are supported on OpenGL, so there's no reason
to forbid these. Enable textureLod usage on these.
Minor style changes.
2020-02-15 02:36:28 -03:00
ReinUsesLisp
518a6182f9
maxwell_3d: Unify draw methods
...
Pass instanced state of a draw invocation as an argument instead of
having two separate virtual methods.
2020-02-14 18:09:40 -03:00
ReinUsesLisp
4364492b95
query_cache: Address feedback
2020-02-14 17:38:27 -03:00
ReinUsesLisp
80fff282df
query_cache: Fix ambiguity in CacheAddr getter
2020-02-14 17:38:27 -03:00
ReinUsesLisp
748a3cd69d
query_cache: Add a recursive mutex for concurrent usage
2020-02-14 17:38:27 -03:00
ReinUsesLisp
aaf68dc10b
vk_query_cache: Implement generic query cache on Vulkan
2020-02-14 17:38:27 -03:00
ReinUsesLisp
1b2a6980f5
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.
2020-02-14 17:38:27 -03:00
ReinUsesLisp
d8a42816d7
gl_query_cache: Optimize query cache
...
Use a custom cache instead of relying on a ranged cache.
2020-02-14 17:38:27 -03:00
ReinUsesLisp
339a227a5e
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
ReinUsesLisp
9d7d67501f
gl_rasterizer: Sort method declarations
2020-02-14 17:27:17 -03:00
ReinUsesLisp
7129efe9b2
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
ReinUsesLisp
11206f8a28
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
bunnei
2e46017b66
Merge pull request #3401 from FernandoS27/synchronization
...
Set of refactors for Kernel Synchronization and Hardware Constants
2020-02-14 14:40:20 -05:00
Morph
5afb6b95ed
Add 4:3 aspect ratio and address feedback
2020-02-14 14:39:04 -05:00
bunnei
082ba6fc64
Merge pull request #3379 from ReinUsesLisp/cbuf-offset
...
shader/decode: Fix constant buffer offsets
2020-02-14 13:22:53 -05:00
Fernando Sahmkow
f326183e8b
Core: Correct compilition in GCC
2020-02-14 05:53:30 -04:00
Morph
5abb2b6336
Address feedback
2020-02-14 00:06:26 -05:00
Morph
db5dc22c68
Use enumeration instead of magic numbers
2020-02-13 23:13:23 -05:00
Morph
74a490c909
Add following aspect ratios: 16:9, 21:9, Stretch to Window
...
Available as a drop down within the configure graphics tab.
2020-02-13 22:17:28 -05:00
bunnei
f542fc989d
Merge pull request #3400 from makigumo/patch-1
...
update hwopus DecodeInterleaved for FW 7.0.0+
2020-02-13 21:26:13 -05:00
ReinUsesLisp
3603c2f559
gl_resource_manager: Add managed query class
2020-02-13 22:25:55 -03:00
bunnei
12b89ac3d0
Merge pull request #3395 from FernandoS27/queries
...
GPU: Refactor queries implementation and correct GPU Clock.
2020-02-13 20:18:26 -05:00
ReinUsesLisp
8449d0cf4e
gl_rasterizer: Use the least generic OpenGL draw function possible
...
This may help some implementations.
2020-02-13 21:55:21 -03:00
ReinUsesLisp
072a0bff5e
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.
2020-02-13 20:25:28 -03:00
Fernando Sahmkow
0d2a459fae
Core: Address Feedback
2020-02-13 19:10:33 -04:00
Fernando Sahmkow
2dd9d660e3
GPU: Address Feedback.
2020-02-13 18:16:07 -04:00
Lioncash
5c0742bb94
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
Lioncash
3105b7864c
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
bunnei
3184bdd36c
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
Lioncash
d5435df964
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
Lioncash
8792d4562c
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
Lioncash
750c48af18
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
Fernando Sahmkow
6fc0790f3a
Core: Set all hardware emulation constants in a single file.
2020-02-11 20:19:11 -04:00
Fernando Sahmkow
1ee7a4d926
Kernel: Refactor synchronization to better match RE
2020-02-11 18:47:31 -04:00
makigumo
b71b872e74
update hwopus DecodeInterleaved for FW 7.0.0+
...
trivial change,
see https://switchbrew.org/wiki/Audio_services#IHardwareOpusDecoder
2020-02-11 18:41:04 +01:00
Fernando Sahmkow
3a7f539463
Kernel: Change WaitObject to Synchronization object. In order to better reflect RE.
2020-02-11 10:46:25 -04:00
bunnei
840326a322
Merge pull request #3376 from ReinUsesLisp/point-sprite
...
gl_rasterizer: Implement GL_POINT_SPRITE
2020-02-11 08:26:07 -05:00
Fernando Sahmkow
04c3213a01
GPU: Implement GPU Clock correctly.
2020-02-10 10:44:54 -04:00
Fernando Sahmkow
8137fb8981
Maxwell3D: Correct query reporting.
2020-02-10 10:41:43 -04:00
bunnei
a47f0ff68b
Merge pull request #3372 from ReinUsesLisp/fix-back-stencil
...
maxwell_3d: Fix stencil back mask
2020-02-09 22:29:28 -05:00
Zach Hilman
2a1331b683
Merge pull request #3391 from Morph1984/remove-unknown
...
Remove option "Show files with type 'Unknown'"
2020-02-09 12:08:01 -05:00
Morph
db09e18f72
Remove option "Show files with type 'Unknown'"
2020-02-09 11:30:02 -05:00
bunnei
505ddc95cd
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
bunnei
d63149ce8a
Merge pull request #3387 from bunnei/gpu-mpscqueue
...
gpu_thread: Use MPSCQueue for GPU commands.
2020-02-08 21:15:48 -05:00
bunnei
3edec585bc
hle: services: Use std::shared_ptr instead of copy by value.
2020-02-07 23:02:26 -05:00
bunnei
fc246fd1a2
gpu_thread: Use MPSCQueue for GPU commands.
...
- Necessary for multiple service threads.
2020-02-07 23:01:23 -05:00
bunnei
f28ab9626e
video_core: memory_manager: Use GPU interface for cache functions.
2020-02-07 22:59:35 -05:00
bunnei
61e441192f
Merge pull request #3378 from ReinUsesLisp/uscaled
...
maxwell_to_gl: Implement R8G8_USCALED
2020-02-07 22:55:52 -05:00
bunnei
5160900bec
Merge pull request #3369 from ReinUsesLisp/shf
...
shader/shift: Implement SHF
2020-02-07 22:06:57 -05:00
bunnei
e4c167aff9
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
bunnei
1841589251
Merge pull request #3362 from ReinUsesLisp/fix-instanced
...
gl_rasterizer: Fix instanced draw arrays
2020-02-06 21:39:59 -05:00
bunnei
9ffdef96d9
kernel: transfer_memory: Properly reserve and reset memory region.
2020-02-05 23:06:54 -05:00
Zach Hilman
a0400ebc19
wait_object: Make wait behavior only require one object to signal.
...
- This was holdover from citra.
2020-02-05 23:06:53 -05:00
bunnei
900b370e13
am: Correct IPC object count mismatch.
2020-02-05 23:06:53 -05:00
bunnei
141c06ca8b
services: am: Clear events on PopOutData and PopInteractiveOutData.
2020-02-05 23:06:52 -05:00
bunnei
b10a96347f
am: Refactor IStorage interface.
2020-02-05 23:06:52 -05:00
bunnei
0d376ae49e
applets: software_keyboard: Signal state change on end of interactive session.
2020-02-05 23:06:51 -05:00
bunnei
b1bd8d852a
applets: software_keyboard: Minor cleanup.
2020-02-05 23:06:50 -05:00
bunnei
7bdaae11ac
services: prepo: Fix IPC interface with SaveReport/SaveReportWithUser.
2020-02-05 22:52:35 -05:00
bunnei
bc76fe3100
hle_ipc: Add error checking to read/write buffer access.
2020-02-05 22:52:35 -05:00
ReinUsesLisp
389cb51a33
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.
2020-02-05 12:19:09 -03:00
ReinUsesLisp
48a1e6461b
maxwell_to_gl: Implement R8G8_USCALED
2020-02-04 21:32:36 -03:00
ReinUsesLisp
e98ec35845
maxwell_to_gl: Reduce unimplemented formats to LOG_ERROR
2020-02-04 21:32:08 -03:00
ReinUsesLisp
c2ecaf376b
vk_rasterizer: Use noexcept variants of std::bitset
...
Removes bounds checking from "texceptions" instances.
2020-02-04 18:04:24 -03:00
bunnei
a683c3c57c
Merge pull request #3357 from ReinUsesLisp/bfi-rc
...
shader/bfi: Implement register-constant buffer variant
2020-02-04 15:14:13 -05:00
ReinUsesLisp
3c7276cd1a
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
bunnei
223e535f65
Merge pull request #3356 from ReinUsesLisp/fcmp
...
shader/arithmetic: Implement FCMP
2020-02-04 11:36:59 -05:00
bunnei
6c7f2a9d45
Merge pull request #3360 from CJBok/statusbar-buttons
...
GUI: Togglable graphics settings buttons in status bar
2020-02-03 16:57:18 -05:00
bunnei
d02c1c1f75
Merge pull request #3337 from ReinUsesLisp/vulkan-staged
...
yuzu: Implement Vulkan frontend
2020-02-03 16:56:25 -05:00
Lioncash
ba28438e61
input_common/udp: Ensure that UDP is shut down within Shutdown()
...
Previously the UDP backend would never actually get shut down.
2020-02-03 09:29:15 -05:00
Lioncash
f693c966a0
input_common/udp: Add missing override specifiers
...
Prevents trivial warnings and ensures interfaces are properly
maintained between the base class.
2020-02-03 09:26:53 -05:00
Lioncash
02fbec1123
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.
2020-02-03 09:24:05 -05:00
Lioncash
cf11ee1b0d
input_common/udp: std::move shared_ptr within Client constructor
...
Gets rid of a trivially avoidable atomic reference count increment and
decrement.
2020-02-03 09:21:46 -05:00
Lioncash
8e230f3e37
udp/client: Replace deprecated from_string() call with make_address_v4()
...
Future-proofs code if boost is ever updated.
2020-02-03 09:20:40 -05:00
Lioncash
e397a2145c
input_common/udp: Silence -Wreorder warning for Socket
...
Amends the constructor initializer list to specify the order of its
elements in the same order that initialization would occur.
2020-02-03 09:15:32 -05:00
Lioncash
2ba97142ab
input_common/udp: Remove unnecessary inclusions
2020-02-03 09:13:40 -05:00
Lioncash
5da05e3128
input_common/udp: Add missing header guard
2020-02-03 09:09:06 -05:00
ReinUsesLisp
1eef76d7b6
maxwell_3d: Fix stencil back mask
2020-02-02 17:50:46 -03:00
ReinUsesLisp
4f5791e529
shader: Remove curly braces initializers on shared pointers
2020-02-01 22:52:10 -03:00
bunnei
1de7f0beeb
Merge pull request #3282 from FernandoS27/indexed-samplers
...
Partially implement Indexed samplers in general and specific code in GLSL
2020-02-01 20:41:40 -05:00
ReinUsesLisp
62ab366971
shader/shift: Implement SHIFT_RIGHT_{IMM,R}
...
Shifts a pair of registers to the right and returns the low register.
2020-02-01 21:20:02 -03:00
ReinUsesLisp
0ff3ea3188
shader/shift: Implement SHF_LEFT_{IMM,R}
...
Shifts a pair of registers to the left and returns the high register.
2020-02-01 21:19:44 -03:00
bunnei
696e97ae4a
Merge pull request #3268 from CJBok/deadzone
...
GUI: Deadzone controls for sdl engine at configuration input
2020-02-01 16:35:15 -05:00
bunnei
0058ae07f7
Merge pull request #3284 from CJBok/hid-fix
...
hid: Fix analog sticks directional states
2020-02-01 14:02:41 -05:00
bunnei
d1df3ef078
Merge pull request #3364 from lioncash/thread
...
core/arm: Remove usage of global GetCurrentThread()
2020-01-31 11:13:24 -05:00
bunnei
c4ab8cd693
Merge pull request #3363 from lioncash/unique_ptr
...
kernel/physical_core: Make use of std::unique_ptr instead of std::shared_ptr
2020-01-30 23:33:02 -05:00
bunnei
72a8ed19c3
Revert "system_archive: Fix Korean and Chinese fonts"
2020-01-30 22:02:15 -05:00
Lioncash
11c5ae60e6
core/arm: Remove usage of global GetCurrentThread()
...
Now both CPU backends go through their referenced system instance to
obtain the current thread.
2020-01-30 18:52:25 -05:00
Lioncash
371f3ecf5d
kernel/physical_core: Make use of std::unique_ptr
...
shared_ptr was used in 8eb175481c due to a
misunderstanding of how the language generates move constructors and
move assignment operators.
If a destructor is user-provided, then the compiler won't generate the
move constructor and move assignment operators by default--they must be
explicitly opted into.
The reason for the compilation errors is due to the fact that the
language will fall back to attempting to use the copy constructor/copy
assignment operators if the respective move constructor or move
assignment operator is unavailable.
Given that we explicitly opt into them now, the the move constructor and
move assignment operators will be generated as expected.
2020-01-30 18:42:40 -05:00
Lioncash
6bc28ed1c8
core/cpu_manager: Remove unused includes
...
Nothing from these headers are used within this source file, so we can
remove them.
2020-01-30 18:30:57 -05:00
Lioncash
379194237d
kernel/physical_core: Remove unused kernel reference member variable
...
This isn't used within the class, so it can be removed to simplify the
overall interface.
While we're in the same area, we can simplify a unique_ptr reset() call.
2020-01-30 18:29:57 -05:00
bunnei
0edc152d5a
Merge pull request #3353 from FernandoS27/aries
...
System: Refactor CPU Core management and move ARMInterface and Schedulers to Kernel
2020-01-30 18:13:59 -05:00
bunnei
40a54f6de7
Merge pull request #3151 from FearlessTobi/fix-korean
...
system_archive: Fix Korean and Chinese fonts
2020-01-30 15:09:55 -05:00
bunnei
74aeae1ae7
Merge pull request #3347 from ReinUsesLisp/local-mem
...
shader/memory: Implement LDL.S16, LDS.S16, STL.S16 and STS.S16
2020-01-30 10:59:52 -05:00
ReinUsesLisp
535a9fcf44
gl_rasterizer: Fix instanced draw arrays
...
glDrawArrays was being used when the draw had a base instance specified.
This commit removes the draw parameters abstraction and fixes the
mentioned issue.
2020-01-30 02:22:00 -03:00
ReinUsesLisp
066c63571b
yuzu/bootmanager: Define Vulkan widget only when enabled
2020-01-29 19:20:12 -03:00
bunnei
04b8af9134
Merge pull request #3350 from ReinUsesLisp/atom
...
shader/memory: Implement ATOM.ADD
2020-01-29 16:49:54 -05:00
ReinUsesLisp
85f666c066
yuzu_cmd: Fix memcpy on Vulkan handlers
2020-01-29 17:53:11 -03:00
ReinUsesLisp
48cb021c34
yuzu: Implement Vulkan frontend
...
Adds a Qt and SDL2 frontend for Vulkan. It also finishes the missing
bits on Vulkan initialization.
2020-01-29 17:53:11 -03:00
ReinUsesLisp
28e928197a
web_service/telemetry_json: Report USER_CONFIG
2020-01-29 17:53:11 -03:00
ReinUsesLisp
2ba5519371
settings: Add settings for graphics backend
2020-01-29 17:53:11 -03:00
ReinUsesLisp
e1da845841
core: Only wait for idle on gpu_core when it was initialized
...
This fixes crashes when a Vulkan device fails to initialize.
2020-01-29 17:53:11 -03:00
ReinUsesLisp
1d17aca3f5
shader/other: Fix skips for SYNC and BRK
2020-01-29 17:53:11 -03:00
ReinUsesLisp
1c642262eb
shader/other: Stub S2R LaneId
2020-01-29 17:53:11 -03:00
ReinUsesLisp
25fcf5704b
buffer_cache: Delay buffer destructions
...
Delay buffer destruction some extra frames to avoid destroying buffers
that are still being used from older frames. This happens on Nvidia's
driver with mailbox.
2020-01-29 17:53:11 -03:00
bunnei
b5b061381e
Merge pull request #3355 from ReinUsesLisp/break-down
...
texture_cache/surface_base: Fix layered break down
2020-01-29 12:29:56 -05:00
bunnei
208594da5b
Merge pull request #3358 from ReinUsesLisp/implicit-texture-cache
...
gl_texture_cache: Silence implicit sign cast warnings
2020-01-29 11:23:50 -05:00
CJBok
f75503d2ed
clang
2020-01-29 05:43:55 +01:00
CJBok
c42052c661
minor corrections
2020-01-29 00:02:28 +01:00
CJBok
4c58bca524
GUI: Togglable graphics settings buttons in status bar
2020-01-28 23:59:30 +01:00
bunnei
c9cfbc502b
Merge pull request #3359 from ReinUsesLisp/assert-point-size
...
gl_shader_decompiler: Remove UNIMPLEMENTED for gl_PointSize
2020-01-28 15:19:51 -05:00
ReinUsesLisp
1044f51a83
gl_shader_decompiler: Remove UNIMPLEMENTED for gl_PointSize
...
This was implemented by a previous commit and it's no longer required.
2020-01-28 16:32:30 -03:00
bunnei
c1b49469ef
Merge pull request #3354 from ReinUsesLisp/depth-stencil
...
gl_texture_cache: Properly implement depth/stencil sampling
2020-01-28 12:06:11 -05:00
ReinUsesLisp
68c9d670a1
gl_texture_cache: Silence implicit sign cast warnings
2020-01-27 20:59:11 -03:00
Fernando Sahmkow
8eb175481c
System: Address Feedback
2020-01-27 09:54:11 -04:00
ReinUsesLisp
ca61e82f85
shader/bfi: Implement register-constant buffer variant
...
It's the same as the variant that was implemented, but it takes the
operands from another source.
2020-01-27 01:20:38 -03:00
ReinUsesLisp
098218ff4c
shader/arithmetic: Implement FCMP
...
Compares the third operand with zero, then selects between the first and
second.
2020-01-27 01:15:44 -03:00
ReinUsesLisp
b3e4461606
texture_cache/surface_base: Fix layered break down
...
Layered break downs was passing "layer" as a "depth" parameter. This
commit addresses that.
2020-01-26 21:48:07 -03:00
ReinUsesLisp
dbb7b51943
gl_texture_cache: Properly implement depth/stencil sampling
...
This addresses the long standing issue of compatibility vs. core
profiles on OpenGL, properly implementing depth vs. stencil sampling
depending on the texture swizzle.
2020-01-26 21:44:08 -03:00
Fernando Sahmkow
e9b557b38e
System: Correct PrepareReschedule.
2020-01-26 14:32:50 -04:00
Fernando Sahmkow
3230cfebb7
Kernel: Remove a few global instances from the kernel.
2020-01-26 14:23:46 -04:00
Fernando Sahmkow
0a5e0d4777
Core: Refactor CpuCoreManager to CpuManager and Cpu to Core Manager.
...
This commit instends on better naming the new purpose of this classes.
2020-01-26 14:07:22 -04:00
Fernando Sahmkow
fb17429a0b
ArmInterface: Delegate Exclusive monitor factory to exclusive monitor interfasce.
2020-01-26 10:28:23 -04:00
ReinUsesLisp
0d8f0ad3b3
shader/memory: Implement ATOM.ADD
...
ATOM operates atomically on global memory. For now only add ATOM.ADD
since that's what was found in commercial games.
This asserts for ATOM.ADD.S32 (handling the others as unimplemented),
although ATOM.ADD.U32 shouldn't be any different.
This change forces us to change the default type on SPIR-V storage
buffers from float to uint. We could also alias the buffers, but it's
simpler for now to just use uint. While we are at it, abstract the code
to avoid repetition.
2020-01-26 01:54:24 -03:00
Fernando Sahmkow
1c2981f6da
Core: Refactor CPU Management.
...
This commit moves ARM Interface and Scheduler handling into the kernel.
2020-01-25 18:55:32 -04:00
Fernando Sahmkow
2e6a1b965d
Shader_IR: Address feedback.
2020-01-25 09:04:59 -04:00
ReinUsesLisp
0340f04b84
shader/memory: Implement STL.S16 and STS.S16
2020-01-25 03:16:10 -03:00
ReinUsesLisp
edd5e604be
shader/memory: Implement unaligned LDL.S16 and LDS.S16
2020-01-25 03:16:10 -03:00
ReinUsesLisp
851d3adc24
shader/memory: Move unaligned load/store to functions
2020-01-25 03:16:10 -03:00
ReinUsesLisp
cff97272d2
shader/memory: Implement LDL.S16 and LDS.S16
2020-01-25 03:15:55 -03:00
bunnei
ebb840daaf
bsd: Stub several more functions.
...
- Required for Little Town Hero to boot further.
2020-01-25 00:47:15 -05:00
bunnei
53184a16cc
Merge pull request #3343 from FearlessTobi/ui-tab
...
yuzu/configuration: create UI tab and move gamelist settings there
2020-01-25 00:40:13 -05:00
bunnei
b6e76fdeb1
Merge pull request #3326 from FearlessTobi/port-5039
...
Port citra-emu/citra#5039 : "common/logging: don't use regex for path trimming"
2020-01-24 20:59:57 -05:00
FearlessTobi
40c05f9028
Disable clang-format for font files
2020-01-24 23:54:19 +01:00
bunnei
b6a1315c24
Merge pull request #3344 from ReinUsesLisp/vk-botw
...
vk_shader_decompiler: Disable default values on unwritten render targets
2020-01-24 17:31:55 -05:00
Fernando Sahmkow
26b5aa702d
Shader_IR: Change name of TrackSampler function so it does not confuse with the type.
2020-01-24 16:44:48 -04:00
Fernando Sahmkow
8c800cf312
Shader_IR: Corrections, styling and extras.
2020-01-24 16:44:48 -04:00
Fernando Sahmkow
a0cd5fb25f
Shader_IR: Correct Custom Variable assignment.
2020-01-24 16:44:47 -04:00
Fernando Sahmkow
b6d3153e7e
Shader_IR: Propagate bindless index into the GL compiler.
2020-01-24 16:44:47 -04:00
Fernando Sahmkow
c066e472b9
Shader_IR: Implement Injectable Custom Variables to the IR.
2020-01-24 16:43:31 -04:00
Fernando Sahmkow
6d6a963173
GL Backend: Introduce indexed samplers into the GL backend
2020-01-24 16:43:31 -04:00
Fernando Sahmkow
123c7cf307
Shader_IR: deduce size of indexed samplers
2020-01-24 16:43:31 -04:00
Fernando Sahmkow
2b9a30d06b
Shader_IR: Setup Indexed Samplers on the IR
2020-01-24 16:43:30 -04:00
Fernando Sahmkow
f93bff419e
Shader_IR: Implement initial code for tracking indexed samplers.
2020-01-24 16:43:30 -04:00
Fernando Sahmkow
c0c5fa078b
Shader_IR: Address Feedback
2020-01-24 16:43:30 -04:00
Fernando Sahmkow
5fb7881077
Shader_IR: Allow constant access of guest driver.
2020-01-24 16:43:30 -04:00
Fernando Sahmkow
c5fdcd7a2c
Shader_IR: Address Feedback
2020-01-24 16:43:29 -04:00
Fernando Sahmkow
87546c5c19
Guest_driver: Correct compiling errors in GCC.
2020-01-24 16:43:29 -04:00
Fernando Sahmkow
61d2053adb
Shader_IR: Store Bound buffer on Shader Usage
2020-01-24 16:43:29 -04:00
Fernando Sahmkow
e9f3264c8d
GPU: Implement guest driver profile and deduce texture handler sizes.
2020-01-24 16:43:29 -04:00
Fernando Sahmkow
a402d6e870
Kernel: Implement Physical Core.
2020-01-24 15:38:20 -04:00
bunnei
0d6a9f7d6b
Merge pull request #3273 from FernandoS27/txd-array
...
Shader_IR: Implement TXD Array.
2020-01-24 14:02:40 -05:00
bunnei
97414178cb
Merge pull request #3340 from SciresM/pmdx
...
loader: provide default arguments (zero byte) to NSOs
2020-01-24 10:31:43 -05:00
ReinUsesLisp
84532ba55a
vk_shader_decompiler: Disable default values on unwritten render targets
...
Some games like The Legend of Zelda: Breath of the Wild assign
render targets without writing them from the fragment shader. This
generates Vulkan validation errors, so silence these I previously
introduced a commit to set "vec4(0, 0, 0, 1)" for these attachments. The
problem is that this is not what games expect. This commit reverts that
change.
2020-01-24 01:16:21 -03:00
FearlessTobi
30b4a50d29
audio_core: Switch to a faster interpolation technique
2020-01-24 00:38:22 +01:00
FearlessTobi
f857c56aee
yuzu/configuration: create UI tab and move gamelist settings there
2020-01-24 00:15:51 +01:00
BreadFish64
45e463971b
common/logging: don't use regex for path trimming
2020-01-23 23:08:05 +01:00
FearlessTobi
e0e3b5d899
Replace GetString with Get function
...
This should hopefully fix compilation errors.
2020-01-23 20:55:26 +01:00
FearlessTobi
e89cbc93dd
Address second part of review comments
2020-01-23 20:55:26 +01:00
FearlessTobi
af272d88d9
Address review comments
2020-01-23 20:55:26 +01:00
fearlessTobi
b2f53cceb6
Input: UDP Client to provide motion and touch controls
...
An implementation of the cemuhook motion/touch protocol, this adds the
ability for users to connect several different devices to citra to send
direct motion and touch data to citra.
Co-Authored-By: jroweboy <jroweboy@gmail.com>
2020-01-23 20:55:26 +01:00
bunnei
ad4f27978a
Merge pull request #3341 from bunnei/time-posix-myrule
...
service: time: Implement ToPosixTimeWithMyRule.
2020-01-23 12:04:01 -05:00
Fernando Sahmkow
9b89afce60
Merge pull request #3338 from ReinUsesLisp/no-fastmath
...
gl_shader_cache: Disable fastmath on Nvidia
2020-01-23 10:08:45 -04:00
bunnei
dcd1617ee2
service: time: Implement ToPosixTimeWithMyRule.
...
- Used by Pokemon Mystery Dungeon.
2020-01-22 23:20:19 -05:00
Michael Scire
56137d471a
loader: provide default arguments (zero byte) to NSOs
...
Certain newer unity games (Terraria, Pokemon Mystery Dungeon) require
that the argument region be populated. Failure to do so results in
an integer underflow in argument count, and eventually an unmapped
read at 0x800000000. Providing this default fixes this.
Note that the behavior of official software is as yet unverified,
arguments-wise.
2020-01-22 20:14:06 -08:00
bunnei
eab03ad919
Merge pull request #3324 from FearlessTobi/port-5037
...
Port citra-emu/citra#5037 : "CMake: Create thin archives on Linux"
2020-01-22 19:48:15 -05:00
Bartosz Kaszubowski
9333dab6f0
GUI: fix minor issues with dark themes
...
GUI: rename and reorder themes
2020-01-22 21:12:45 +01:00
ReinUsesLisp
402f69fb3e
gl_shader_cache: Disable fastmath on Nvidia
2020-01-21 19:08:08 -03:00
Fernando Sahmkow
cb436f6f6f
Merge pull request #3330 from ReinUsesLisp/vk-blit-screen
...
vk_blit_screen: Initial implementation
2020-01-20 22:32:16 -04:00
ReinUsesLisp
aa09f9385c
vk_blit_screen: Address feedback
2020-01-20 18:43:11 -03:00
bunnei
c0a7b5ee4c
time: Fix month off-by-one error.
...
- Fixes timestamp in ZLA and Astral Chain saves.
2020-01-20 14:20:32 -05:00
bunnei
5172d3bdac
Merge pull request #3332 from bunnei/config-audio-tab
...
yuzu_qt: config: Move audio to its own tab.
2020-01-20 04:24:51 -05:00
bunnei
38c28ce329
Merge pull request #3328 from ReinUsesLisp/vulkan-atoms
...
vk_shader_decompiler: Implement UAtomicAdd (ATOMS) on SPIR-V
2020-01-20 00:01:52 -05:00
bunnei
57816a5b55
Merge pull request #3322 from ReinUsesLisp/vk-front-face
...
vk_graphics_pipeline: Set front facing properly
2020-01-19 23:22:34 -05:00
bunnei
91c7c20c02
yuzu_qt: config: Move audio to its own tab.
...
- We have some important audio settings, makes them more discoverable.
2020-01-19 23:17:53 -05:00
bunnei
96029f90d1
Merge pull request #3271 from bunnei/time-rewrite
...
service: time: Rewrite implementation of glue services.
2020-01-19 22:45:05 -05:00
ReinUsesLisp
fcc78abc3c
vk_blit_screen: Initial implementation
...
This abstraction takes care of presenting accelerated and
non-accelerated or "framebuffer" images to the Vulkan swapchain.
2020-01-19 21:12:43 -03:00
bunnei
f6aa2acacf
Merge pull request #3313 from ReinUsesLisp/vk-rasterizer
...
vk_rasterizer: Implement Vulkan's rasterizer
2020-01-19 18:09:01 -05:00
Bartosz Kaszubowski
ca9353c81c
GUI/gamelist: add "None" as an option for second row and remove dynamically duplicate row options ( #3309 )
...
* GUI/gamelist: add "None" as an option for second row and remove duplicated row options
* fix clang-format warnings
2020-01-19 15:56:49 -05:00
ReinUsesLisp
6b54252b77
vk_shader_decompiler: Implement UAtomicAdd (ATOMS) on SPIR-V
...
Also updates sirit to include atomic instructions.
2020-01-19 16:40:31 -03:00
FearlessTobi
6df85b466d
system_archive: Fix Chinese font
...
Adds the proper OSS font for the Chinese language.
2020-01-19 15:09:53 +01:00
FearlessTobi
4be062de19
system_archive: Fix Korean font
...
Fixes Korean fonts when using Open-source system archives.
2020-01-19 15:09:50 +01:00
Léo Lam
78f6eea4aa
CMake: Create thin archives on Linux
...
This significantly reduces unnecessary disk writes and space usage
when building Citra.
libcore.a is now only ~1MB rather than several hundred megabytes.
2020-01-19 12:52:09 +01:00
Fernando Sahmkow
6b8406f575
Merge pull request #3317 from ReinUsesLisp/gl-decomp-cc-decomp
...
gl_shader_decompiler: Fix decompilation of condition codes
2020-01-18 19:56:55 -04:00
ReinUsesLisp
1538f99365
gl_state: Use bool instead of GLboolean
...
This fixes template resolution considering GLboolean an integer instead
of a bool.
2020-01-18 19:10:34 -03:00
ReinUsesLisp
4862fc4970
vk_graphics_pipeline: Set front facing properly
...
Front face was being forced to a certain value when cull face is
disabled. Set a default value on initialization and drop the forcefully
set front facing value with culling disabled.
2020-01-18 18:50:47 -03:00
bunnei
621e10788e
Merge pull request #3298 from Simek/missing_hotkeys
...
GUI: add few missing hotkeys to main menu
2020-01-18 13:07:13 -05:00
Markus Wick
4042bd107b
core/memory: Create a special MapMemoryRegion for physical memory.
...
This allows us to create a fastmem arena within the memory.cpp helpers.
2020-01-18 08:38:47 +01:00
Markus Wick
b18f6d19e2
core/hle: Simplify PhysicalMemory usage in vm_manager.
2020-01-18 08:29:19 +01:00
Markus Wick
b8b3264c31
core/loaders: Simplify PhysicalMemory usage.
...
It is currently a std::vector, however we might want to replace it with a more fancy allocator.
So we can't use the C++ iterators any more.
2020-01-18 08:29:19 +01:00
bunnei
726029a9ae
Merge pull request #3305 from ReinUsesLisp/point-size-program
...
gl_state: Implement PROGRAM_POINT_SIZE
2020-01-18 01:56:32 -05:00
bunnei
d6eb2b1632
Merge pull request #3312 from ReinUsesLisp/atoms-u32
...
shader/memory: Implement ATOMS.ADD.U32
2020-01-18 00:54:07 -05:00
James Rowe
afd360f85d
Remove unused CPU Vendor string and telemtry field
...
The information is duplicated in the brand string and the telemetry field is unused
2020-01-17 18:41:18 -07:00
ReinUsesLisp
9a3f0d3d1e
vk_rasterizer: Address feedback
2020-01-17 21:40:01 -03:00
ReinUsesLisp
203353a4d6
gl_shader_decompiler: Fix decompilation of condition codes
...
Use Visit instead of reimplementing it. Fixes unimplemented negations
for condition codes.
2020-01-17 21:23:01 -03:00
TotalCaesar659
410c130a80
Add headbar icon on Linux
2020-01-18 02:46:07 +03:00
bunnei
0a9bf02136
Merge pull request #3306 from ReinUsesLisp/gl-texture
...
gl_texture_cache: Minor fixes and style changes
2020-01-17 15:44:02 -05:00
bunnei
17daec30dc
Merge pull request #3311 from ReinUsesLisp/z32fx24s8
...
format_lookup_table: Fix ZF32_X24S8 component types
2020-01-17 08:22:32 -05:00
ReinUsesLisp
ef4b9a6e39
vk_rasterizer: Implement Vulkan's rasterizer
...
This abstraction is Vulkan's equivalent to OpenGL's rasterizer. It takes
care of joining all parts of the backend and rendering accordingly on
demand.
2020-01-16 23:05:15 -03:00
ReinUsesLisp
b52586eaaa
renderer_vulkan: Add header as placeholder
2020-01-16 22:54:15 -03:00
bunnei
d9854c29ac
Merge pull request #3300 from ReinUsesLisp/vk-texture-cache
...
vk_texture_cache: Implement generic texture cache on Vulkan
2020-01-16 19:19:26 -05:00
ReinUsesLisp
affa8cef27
vk_texture_cache: Address feedback
2020-01-16 18:23:10 -03:00
ReinUsesLisp
c4fd02b47f
shader/memory: Implement ATOMS.ADD.U32
2020-01-16 17:30:55 -03:00
ReinUsesLisp
078193d8bd
format_lookup_table: Fix ZF32_X24S8 component types
...
Component types for ZF32_X24S8 were using UNORM. Drivers will set FLOAT,
UINT, UNORM, UNORM; causing a format mismatch. This commit addresses
that.
2020-01-16 17:29:13 -03:00
Rodrigo Locatti
ec6681ecf4
vk_texture_cache: Fix typo in commentary
...
Co-Authored-By: MysticExile <30736337+MysticExile@users.noreply.github.com>
2020-01-16 16:59:46 -03:00
bunnei
c87f3bef74
Merge pull request #3308 from lioncash/private
...
maxwell_3d: Make dirty_pointers private
2020-01-16 13:26:35 -05:00
bunnei
afbfad0d60
Merge pull request #3304 from lioncash/fwd-decl
...
renderer_opengl/utils: Forward declare private structs
2020-01-16 11:21:18 -05:00
Lioncash
e481a676de
maxwell_3d: Make dirty_pointers private
...
This isn't used outside of the class itself, so we can make it private
for the time being.
2020-01-16 04:07:15 -05:00
James Rowe
47197f6b18
Fix git version in scm_rev.cpp
2020-01-16 00:12:50 -07:00
ReinUsesLisp
1692dab134
gl_state: Implement PROGRAM_POINT_SIZE
...
For gl_PointSize to have effect we have to activate
GL_PROGRAM_POINT_SIZE.
2020-01-15 16:14:17 -03:00
Lioncash
6ab1c2a461
renderer_opengl/utils: Remove unused header inclusions
...
Nothing from these headers are used, so they can be removed.
2020-01-15 06:31:23 -05:00
Lioncash
0cb80ac6dc
renderer_opengl/utils: Forward declare private structs
...
Keeps the definitions hidden and allows changes to the structs without
needing to recompile all users of classes containing said structs.
2020-01-15 06:30:01 -05:00
CJBok
be576083dd
Moved analog direction logic to sdl_impl
2020-01-15 11:25:15 +01:00
CJBok
5af2a8b2f6
Corrected directional states sensitivity
2020-01-14 21:51:58 +01:00
ReinUsesLisp
dcde4b9186
gl_texture_cache: Use local variables to simplify DownloadTexture
2020-01-14 17:39:48 -03:00
ReinUsesLisp
50e0bb04b3
gl_texture_cache: Fix format for RGBX16F
2020-01-14 17:38:33 -03:00
ReinUsesLisp
549ddc898e
gl_texture_cache: Use Snorm internal format for RG8S
2020-01-14 17:37:58 -03:00
ReinUsesLisp
d45f4d62fb
gl_texture_cache: Use Snorm internal format for ABGR8S
2020-01-14 17:37:23 -03:00
Rodrigo Locatti
399da88e9f
Merge pull request #3303 from lioncash/reorder
...
control_flow: Silence -Wreorder warning for CFGRebuildState
2020-01-14 16:15:18 -03:00
Rodrigo Locatti
b6d2e25699
Merge pull request #3302 from lioncash/unused-var
...
gl_shader_cache: Remove unused variables
2020-01-14 16:14:47 -03:00
Lioncash
a4792176ce
control_flow: Silence -Wreorder warning for CFGRebuildState
...
Organizes the initializer list in the same order that the variables
would actually be initialized in.
2020-01-14 13:28:48 -05:00
bunnei
f2844126fc
Merge pull request #3296 from Simek/hotkeys_resize
...
GUI/configure: resize hotkeys action column to fit content
2020-01-14 13:17:16 -05:00
Lioncash
b3810c5a5f
gl_shader_cache: Remove unused STAGE_RESERVED_UBOS constant
...
Given this isn't used, this can be removed entirely.
2020-01-14 13:16:52 -05:00
Lioncash
f0ed92d90d
gl_shader_cache: std::move entries in CachedShader constructor
...
Avoids several reallocations of std::vector instances where applicable.
2020-01-14 13:14:16 -05:00
Lioncash
15b0cdd6bb
gl_shader_cache: Remove unused entries variable in BuildShader()
...
Eliminates a few unnecessary constructions of std::vectors.
2020-01-14 13:11:49 -05:00
bunnei
8f44846de6
Merge pull request #3287 from ReinUsesLisp/ldg-stg-16
...
shader_ir/memory: Implement u16 and u8 for STG and LDG
2020-01-14 09:57:08 -05:00
bunnei
193ac8974d
Merge pull request #3288 from ReinUsesLisp/uncurse-aoffi
...
shader_ir/texture: Simplify AOFFI code
2020-01-13 23:52:12 -05:00
bunnei
1608826ecc
Merge pull request #3290 from ReinUsesLisp/gl-clamp
...
maxwell_to_vk: Implement GL_CLAMP hacking Nvidia's driver
2020-01-13 19:16:06 -05:00
bunnei
bb1fbb05d1
Merge pull request #3292 from degasus/heap_space_fix
...
core/kernel: Fix GetTotalPhysicalMemoryUsed.
2020-01-13 19:15:43 -05:00
ReinUsesLisp
f47fdb4b09
vk_texture_cache: Implement generic texture cache on Vulkan
...
It currently ignores PBO linearizations since these should be dropped as
soon as possible on OpenGL.
2020-01-13 20:37:50 -03:00
ReinUsesLisp
6fd13dc3b8
texture_cache/surface_params: Make GetNumLayers public
2020-01-13 20:35:43 -03:00
Bartosz Kaszubowski
943d33f20c
GUI: add few missing hotkeys to main menu
2020-01-13 00:49:44 +01:00
CJBok
0b20089298
Merge remote-tracking branch 'upstream/master'
2020-01-12 23:21:30 +01:00
Bartosz Kaszubowski
f0da8c2b83
GUI/configure: resize hotkeys column to content
2020-01-12 22:46:28 +01:00
Markus Wick
2049ebc50e
core/kernel: Fix GetTotalPhysicalMemoryUsed.
...
module._memory was already moved over to a new shared_ptr.
So code_memory_size was not increased at all.
This lowers the heap space and so saves a bit of memory, usually between 50 to 100 MB.
This fixes a regression of b8ccd49d77
2020-01-11 14:04:44 +01:00
Rodrigo Locatti
e5f1158dac
vk_compute_pass: Address feedback
...
Comment hardcoded SPIR-V modules.
2020-01-10 22:46:34 -03:00
ReinUsesLisp
18c91ef3e2
maxwell_to_vk: Implement GL_CLAMP hacking Nvidia's driver
...
Nvidia's driver defaults invalid enumerations to GL_CLAMP. Vulkan
doesn't expose GL_CLAMP through its API, but we can hack it on Nvidia's
driver using the internal driver defaults.
2020-01-10 17:12:50 -03:00
ReinUsesLisp
6d7d0e48ad
shader_ir/texture: Simplify AOFFI code
2020-01-09 03:50:37 -03:00
ReinUsesLisp
5fbd305638
shader_ir/memory: Implement u16 and u8 for STG and LDG
...
Using the same technique we used for u8 on LDG, implement u16.
In the case of STG, load memory and insert the value we want to set
into it with bitfieldInsert. Then set that value.
2020-01-09 02:12:29 -03:00
CJBok
57998ae780
hid: Fix analog sticks directional states
2020-01-09 02:40:55 +01:00
ReinUsesLisp
832dd7920a
vk_compute_pass: Add compute passes to emulate missing Vulkan features
...
This currently only supports quad arrays and u8 indices.
In the future we can remove quad arrays with a table written from the
CPU, but this was used to bootstrap the other passes helpers and it
was left in the code.
The blob code is generated from the "shaders/" directory. Read the
instructions there to know how to generate the SPIR-V.
2020-01-08 19:24:26 -03:00
ReinUsesLisp
0961937585
vk_shader_util: Add helper to build SPIR-V shaders
2020-01-08 19:22:20 -03:00
Fernando Sahmkow
36e23e4cda
Merge pull request #3279 from ReinUsesLisp/vk-pipeline-cache
...
vk_pipeline_cache: Initial implementation
2020-01-08 17:31:20 -04:00
bunnei
9bca3fcdb0
Merge pull request #3272 from bunnei/vi-close-layer
...
service: vi: Implement CloseLayer.
2020-01-07 12:45:34 -05:00
ReinUsesLisp
8db329bb9e
vk_pipeline_cache: Initial implementation
...
Given a pipeline key, this cache returns a pipeline abstraction (for
graphics or compute).
2020-01-06 22:02:26 -03:00
ReinUsesLisp
2c7928f71a
vk_graphics_pipeline: Initial implementation
...
This abstractio represents the state of the 3D engine at a given draw.
Instead of changing individual bits of the pipeline how it's done in
APIs like D3D11, OpenGL and NVN; on Vulkan we are forced to put
everything together into a single, immutable object.
It takes advantage of the few dynamic states Vulkan offers.
2020-01-06 22:02:26 -03:00
ReinUsesLisp
e89b88bf80
vk_compute_pipeline: Initial implementation
...
This abstraction represents a Vulkan compute pipeline.
2020-01-06 22:02:26 -03:00
ReinUsesLisp
836580aada
vk_pipeline_cache: Add file and define descriptor update template filler
...
This function allows us to share code between compute and graphics
pipelines compilation.
2020-01-06 22:02:26 -03:00
ReinUsesLisp
a067862bd3
fixed_pipeline_state: Add depth clamp
2020-01-06 22:02:26 -03:00
ReinUsesLisp
3b5cccbf0b
vk_rasterizer: Add placeholder
2020-01-06 22:02:26 -03:00
bunnei
7348d17961
Merge pull request #3276 from ReinUsesLisp/pipeline-reqs
...
vk_update_descriptor/vk_renderpass_cache: Add pipeline cache dependencies
2020-01-06 17:03:34 -05:00
bunnei
76128fa143
Merge pull request #3278 from ReinUsesLisp/vk-memory-manager
...
renderer_vulkan: Buffer cache, stream buffer and memory manager changes
2020-01-06 17:03:04 -05:00
ReinUsesLisp
cdf40c8694
vk_renderpass_cache: Initial implementation
...
The renderpass cache is used to avoid creating renderpasses on each
draw. The hashed structure is not currently optimized.
2020-01-06 18:28:32 -03:00
ReinUsesLisp
09e775bfe0
vk_update_descriptor: Initial implementation
...
The update descriptor is used to store in flat memory a large chunk of
staging data used to update descriptor sets through templates. It
provides a push interface to easily insert descriptors following the
current pipeline. The order used in the descriptor update template has
to be implicitly followed. We can catch bugs here using validation
layers.
2020-01-06 18:28:32 -03:00
ReinUsesLisp
b6476ed501
vk_stream_buffer/vk_buffer_cache: Avoid halting and use generic cache
...
The stream buffer before this commit once it was full (no more bytes to
write before looping) waiting for all previous operations to finish.
This was a temporary solution and had a noticeable performance penalty
in performance (from what a profiler showed).
To avoid this mark with fences usages of the stream buffer and once it
loops wait for them to be signaled. On average this will never wait.
Each fence knows where its usage finishes, resulting in a non-paged
stream buffer.
On the other side, the buffer cache is reimplemented using the generic
buffer cache. It makes use of the staging buffer pool and the new
stream buffer.
2020-01-06 18:13:41 -03:00
ReinUsesLisp
f0573c5b5d
vk_memory_manager: Misc changes
...
* Allocate memory in discrete exponentially increasing chunks until the
128 MiB threshold. Allocations larger thant that increase linearly by
256 MiB (depending on the required size). This allows to use small
allocations for small resources.
* Move memory maps to a RAII abstraction. To optimize for debugging
tools (like RenderDoc) users will map/unmap on usage. If this ever
becomes a noticeable overhead (from my profiling it doesn't) we can
transparently move to persistent memory maps without harming the API,
getting optimal performance for both gameplay and debugging.
* Improve messages on exceptional situations.
* Fix typos "requeriments" -> "requirements".
* Small style changes.
2020-01-06 18:13:41 -03:00
ReinUsesLisp
5d4412443e
vk_buffer_cache: Temporarily remove buffer cache
...
This is intended for a follow up commit to avoid circular dependencies.
2020-01-06 17:58:46 -03:00
bunnei
890b59bdff
Merge pull request #3277 from ReinUsesLisp/make-current
...
yuzu/bootmanager: Remove {glx,wgl}MakeCurrent on SwapBuffers
2020-01-06 14:09:19 -05:00
ReinUsesLisp
c0fe595878
yuzu/bootmanager: Remove {glx,wgl}MakeCurrent on SwapBuffers
...
MakeCurrent is a costly (according to Nsight's profiler it takes a tenth
of a millisecond to complete), and we don't have a reason to call it
because:
- Qt no longer signals a warning if it's not called
- yuzu no longer supports macOS
2020-01-06 14:02:47 -03:00
bunnei
5cefb60748
Merge pull request #3261 from degasus/page_table
...
core/memory + arm/dynarmic: Use a global offset within our arm page table.
2020-01-06 11:56:59 -05:00
bunnei
62d4e927d4
Merge pull request #3257 from degasus/no_busy_loops
...
video_core: Block in WaitFence.
2020-01-06 00:09:57 -05:00
Fernando Sahmkow
9fee5297ec
Merge pull request #3264 from ReinUsesLisp/vk-descriptor-pool
...
vk_descriptor_pool: Initial implementation
2020-01-05 15:54:41 -04:00
bunnei
0eaf2e8672
Merge pull request #2945 from FernandoS27/fix-bcat
...
nifm: Only return that there's an internet connection when there's a BCATServer
2020-01-05 02:17:16 -05:00
bunnei
18e502d636
service: time: Implement GetStandardLocalSystemClock.
2020-01-04 22:18:54 -05:00
bunnei
73900c4678
Merge pull request #3258 from FernandoS27/shader-amend
...
Shader_IR: add the ability to amend code in the shader ir.
2020-01-04 14:05:17 -05:00
bunnei
940ed35ee2
time: Remove overflow error checking (currently breaks ADO builds).
2020-01-04 13:48:31 -05:00
bunnei
2fef8d9feb
service: time: Implement GetClockSnapshotFromSystemClockContext.
2020-01-04 13:48:30 -05:00
bunnei
0d1c9fe2a9
service: time: Implement IsStandardNetworkSystemClockAccuracySufficient.
2020-01-04 13:48:30 -05:00
bunnei
756c19b448
system_archive: Add a basic HLE implementation for time zone binary.
2020-01-04 13:48:29 -05:00
bunnei
ac22daaf4f
service: time: Rewrite implementation of glue services.
2020-01-04 13:48:29 -05:00
Fernando Sahmkow
591d53e1c3
Shader_IR: Address Feedback
2020-01-04 14:40:57 -04:00
bunnei
9431286523
core: Initialize several structs that make use of Common::UUID.
2020-01-04 13:29:55 -05:00
Fernando Sahmkow
501d87c82b
Shader_IR: Implement TXD Array.
...
This commit extends the compilation of TXD to support array samplers on
TXD.
2020-01-04 13:28:02 -04:00
bunnei
cbaf3b3c40
service: vi: Implement CloseLayer.
...
- Needed for Undertale.
2020-01-04 00:45:06 -05:00
Rodrigo Locatti
c7ef4c32e3
Update src/video_core/renderer_vulkan/vk_descriptor_pool.cpp
...
Co-Authored-By: Mat M. <mathew1800@gmail.com>
2020-01-03 17:34:30 -03:00
bunnei
5b2b762ec9
Merge pull request #3247 from FernandoS27/remap-fix
...
NvServices: Correct Ioctl Remap.
2020-01-03 12:30:56 -05:00
CJBok
21e0086bf8
const correction
2020-01-03 10:30:51 +01:00
CJBok
ef66081b4d
clang
2020-01-03 09:31:54 +01:00
CJBok
c6939635cb
Update configure_input_player.cpp
2020-01-03 09:11:34 +01:00
CJBok
f4d746e41e
Added deadzone controls for sdl engine at input settings
2020-01-03 08:54:57 +01:00
ReinUsesLisp
9328c4be0b
yuzu: Remove Maxwell debugger
...
This was carried from Citra and wasn't really used on yuzu. It also adds
some runtime overhead. This commit removes it from yuzu's codebase.
2020-01-02 23:09:44 -03:00
bunnei
1bfdfe2abf
Merge pull request #3243 from ReinUsesLisp/topologies
...
maxwell_to_gl: Implement missing primitive topologies
2020-01-01 20:33:33 -05:00
ReinUsesLisp
e3713ec645
vk_descriptor_pool: Initial implementation
...
Create a large descriptor pool where we allocate all our descriptors
from. It has to be wide enough to support any pipeline, hence its large
numbers.
If the descritor pool is filled, we allocate more memory at that moment.
This way we can take advantage of permissive drivers like Nvidia's that
allocate more descriptors than what the spec requires.
2020-01-01 16:44:06 -03:00
Markus Wick
f74d95547e
core/memory + arm/dynarmic: Use a global offset within our arm page table.
...
This saves us two x64 instructions per load/store instruction.
TODO: Clean up our memory code. We can use this optimization here as well.
2020-01-01 12:24:54 +01:00
bunnei
0f250f4a1f
Merge pull request #3239 from ReinUsesLisp/p2r
...
shader/p2r: Implement P2R Pr
2019-12-31 20:37:16 -05:00
Fernando Sahmkow
a4d446291d
Shader_IR: add the ability to amend code in the shader ir.
...
This commit introduces a mechanism by which shader IR code can be
amended and extended. This useful for track algorithms where certain
information can derived from before the track such as indexes to array
samplers.
2019-12-30 15:31:48 -04:00
Fernando Sahmkow
193a942e9f
Merge pull request #3248 from ReinUsesLisp/vk-image
...
vk_image: Add an image object abstraction
2019-12-30 14:25:14 -04:00
Rodrigo Locatti
00ebed081e
vk_image: Avoid unnecesary equals
2019-12-30 13:28:23 -03:00
Fernando Sahmkow
270ca7ddd2
Merge pull request #3249 from ReinUsesLisp/vk-staging-buffer-pool
...
vk_staging_buffer_pool: Add a staging pool for temporary operations
2019-12-30 12:25:59 -04:00
Markus Wick
4bdaebe33e
video_core: Block in WaitFence.
...
This function is called rarely and blocks quite often for a long time.
So don't waste power and let the CPU sleep.
This might also increase the performance as the other cores might be allowed to clock higher.
2019-12-30 13:04:53 +01:00
Rodrigo Locatti
a38fec0721
vk_staging_buffer_pool: Initialize last epoch to zero
2019-12-29 19:19:43 -03:00
Fernando Sahmkow
b6825f4b37
Merge pull request #3250 from ReinUsesLisp/empty-fragment
...
gl_rasterizer: Allow rendering without fragment shader
2019-12-28 14:33:53 -04:00
bunnei
9d254bf997
Merge pull request #3228 from ReinUsesLisp/ptp
...
shader/texture: Implement AOFFI and PTP for TLD4 and TLD4S
2019-12-26 21:43:44 -05:00
ReinUsesLisp
baaef2d12a
gl_rasterizer: Allow rendering without fragment shader
...
Rendering without a fragment shader is usually used in depth-only
passes.
2019-12-26 16:38:49 -03:00
ReinUsesLisp
3f151e2d31
vk_staging_buffer_pool: Add a staging pool for temporary operations
...
The job of this abstraction is to provide staging buffers for temporary
operations. Think of image uploads or buffer uploads to device memory.
It automatically deletes unused buffers.
2019-12-25 18:12:17 -03:00
ReinUsesLisp
5721e2cbae
vk_image: Add an image object abstraction
...
This object's job is to contain an image and manage its transitions.
Since Nvidia hardware doesn't know what a transition is but Vulkan
requires them anyway, we have to state track image subresources
individually.
To avoid the overhead of tracking each subresource in images with many
subresources (think of cubemap arrays with several mipmaps), this commit
tracks when subresources have diverged. As long as this doesn't happen
we can check the state of the first subresource (that will be shared
with all subresources) and update accordingly.
Image transitions are deferred to the scheduler command buffer.
2019-12-25 18:00:16 -03:00
Fernando Sahmkow
367257a258
NvServices: Correct Ioctl Remap.
...
This commit corrects a padding value in Ioctl Remap that was actually an
offset to the mapping address.
2019-12-25 14:37:28 -04:00
Fernando Sahmkow
cbc8179a26
Merge pull request #3244 from ReinUsesLisp/vk-fps
...
fixed_pipeline_state: Define structure and loaders
2019-12-25 14:31:29 -04:00
bunnei
b509c1eed8
Merge pull request #3236 from ReinUsesLisp/rasterize-enable
...
gl_rasterizer: Implement RASTERIZE_ENABLE
2019-12-24 22:54:10 -05:00
ReinUsesLisp
4c69a886df
fixed_pipeline_state: Define symetric operator!= and mark as noexcept
...
Marks as noexcept Hash, operator== and operator!= for consistency.
2019-12-24 18:24:08 -03:00
ReinUsesLisp
46b7e6df1e
fixed_pipeline_state: Define structure and loaders
...
The intention behind this hasheable structure is to describe the state
of fixed function pipeline state that gets compiled to a single graphics
pipeline state object. This is all dynamic state in OpenGL but Vulkan
wants it in an immutable state, even if hardware can edit it freely.
In this commit the structure is defined in an optimized state (it uses
booleans, has paddings and many data entries that can be packed to
single integers). This is intentional as an initial implementation that
is easier to debug, implement and review. It will be optimized in later
stages, or it might change if Vulkan gets more dynamic states.
2019-12-22 22:59:11 -03:00
ReinUsesLisp
9d9c29a986
maxwell_3d: Add depth bounds registers
2019-12-22 22:55:06 -03:00
ReinUsesLisp
e2392c01a7
maxwell_to_gl: Implement missing primitive topologies
...
Many of these topologies are exclusively available in OpenGL.
2019-12-22 22:33:01 -03:00
bunnei
2d67e74340
Merge pull request #3241 from ReinUsesLisp/gl-shader-cache
...
gl_shader_cache: Style changes
2019-12-22 16:23:46 -05:00
bunnei
b10cbc8d01
Merge pull request #3238 from ReinUsesLisp/vk-resource-manager
...
vk_resource_manager: Catch device losses and other changes
2019-12-22 15:57:16 -05:00
bunnei
31686bae2d
Merge pull request #3203 from FernandoS27/tex-cache-fixes
...
Texture Cache: Add HLE methods for building 3D textures
2019-12-22 14:25:13 -05:00
Fernando Sahmkow
660344d633
Merge pull request #3237 from ReinUsesLisp/vk-shader-decompiler
...
vk_shader_decompiler: Misc changes
2019-12-22 12:36:56 -04:00
Fernando Sahmkow
7b2a50efdc
Texture Cache: Improve documentation
2019-12-22 12:29:23 -04:00
Fernando Sahmkow
2882099653
Texture Cache: Address Feedback
2019-12-22 12:24:34 -04:00
Fernando Sahmkow
dab454a72b
Texture Cache: Add HLE methods for building 3D textures within the GPU in certain scenarios.
...
This commit adds a series of HLE methods for handling 3D textures in
general. This helps games that generate 3D textures on every frame and
may reduce loading times for certain games.
2019-12-22 12:24:34 -04:00
Fernando Sahmkow
04eade88de
Merge pull request #3230 from ReinUsesLisp/vk-emu-shaders
...
renderer_vulkan/shader: Add helper GLSL shaders
2019-12-22 11:23:09 -04:00
Fernando Sahmkow
e9d8ed8845
Merge pull request #3240 from ReinUsesLisp/decomp-cond-code
...
vk_shader_decompiler: Use Visit instead of reimplementing it
2019-12-22 11:20:55 -04:00
bunnei
eff6d1f5cd
Merge pull request #3235 from ReinUsesLisp/ldg-u8
...
shader/memory: Implement LDG.U8 and unaligned U8 loads
2019-12-21 22:50:28 -05:00
ReinUsesLisp
ceaafb4f7f
gl_shader_cache: Update commentary for shared memory
...
Remove false commentary. Not dividing by 4 the size of shared memory is
not a hack; it describes the number of integers, not bytes.
While we are at it sort the generated code to put preprocessor lines on
the top.
2019-12-20 22:51:21 -03:00
ReinUsesLisp
fca3e94060
gl_shader_cache: Remove unused entry in GetPrimitiveDescription
2019-12-20 22:49:30 -03:00
ReinUsesLisp
0504a60f62
vk_shader_decompiler: Use Visit instead of reimplementing it
...
ExprCondCode visit implements the generic Visit. Use this instead of
that one.
As an intended side effect this fixes unwritten memory usages in cases
when a negation of a condition code is used.
2019-12-20 21:36:25 -03:00
ReinUsesLisp
dd6e7808f5
shader/p2r: Implement P2R Pr
...
P2R dumps predicate or condition codes state to a register. This is
useful for unit testing.
2019-12-20 18:02:41 -03:00
ReinUsesLisp
0544c7ebce
shader/r2p: Refactor P2R to support P2R
2019-12-20 17:55:42 -03:00
bunnei
ffc32e4d7d
Merge pull request #3234 from ReinUsesLisp/i2f-u8-selector
...
shader/conversion: Implement byte selector in I2F
2019-12-19 22:36:26 -05:00
bunnei
d92950e3ce
Merge pull request #3233 from ReinUsesLisp/mismatch-sizes
...
shader/texture: Properly shrink unused entries in size mismatches
2019-12-19 20:40:27 -05:00
ReinUsesLisp
bb51f0809a
vk_resource_manager: Add entry to VKFence to test its usage
2019-12-19 16:31:34 -03:00
ReinUsesLisp
9929ad309d
vk_reosurce_manager: Add assert for releasing fences
...
Notify the programmer when a request to release a fence is invalid
because the fence is already free.
2019-12-19 16:31:34 -03:00
ReinUsesLisp
b784cc3dbb
vk_resource_manager: Implement VKFenceWatch move constructor
...
This allows us to put VKFenceWatch inside a std::vector without storing
it in heap. On move we have to signal the fences where the new protected
resource is, adding some overhead.
2019-12-19 16:31:34 -03:00
ReinUsesLisp
a50d506481
vk_device: Add entry to catch device losses
...
VK_NV_device_diagnostic_checkpoints allows us to push data to a Vulkan
queue and then query it even after a device loss. This allows us to push
the current pipeline object and see what was the call that killed the
device.
2019-12-19 16:31:33 -03:00
ReinUsesLisp
c4a97ffe7a
vk_shader_decompiler: Fix full decompilation
...
When full decompilation was enabled, labels were not being inserted and
instructions were misused. Fix these bugs.
2019-12-19 16:24:45 -03:00
ReinUsesLisp
a3d277cee9
vk_shader_decompiler: Skip NDC correction when it is native
...
Avoid changing gl_Position when the NDC used by the game is [0, 1]
(Vulkan's native).
2019-12-19 16:24:45 -03:00
ReinUsesLisp
a328090680
vk_shader_decompiler: Normalize output fragment attachments
...
Some games write from fragment shaders to an unexistant framebuffer
attachment or they don't write to one when it exists in the framebuffer.
Fix this by skipping writes or adding zeroes.
2019-12-19 16:24:45 -03:00
bunnei
65b114bf8d
Merge pull request #3232 from ReinUsesLisp/gl-decompiler-images
...
gl_shader_decompiler: Add missing DeclareImages
2019-12-19 11:32:47 -05:00
bunnei
32d7916924
Merge pull request #3231 from ReinUsesLisp/tld4s-encoding
...
shader_bytecode: Fix TLD4S encoding
2019-12-19 11:32:25 -05:00
ReinUsesLisp
23cc012f11
vk_device: Add query for RGBA8Uint
2019-12-19 02:08:29 -03:00
ReinUsesLisp
c7670d62a5
vk_shader_decompiler: Update sirit and implement Texture AOFFI
2019-12-19 01:42:13 -03:00
bunnei
80022929ed
Merge pull request #3221 from ReinUsesLisp/vk-scheduler
...
vk_scheduler: Delegate commands to a worker thread and state track
2019-12-18 22:04:08 -05:00
ReinUsesLisp
0eb9f3b107
gl_rasterizer: Implement RASTERIZE_ENABLE
...
RASTERIZE_ENABLE is the opposite of GL_RASTERIZER_DISCARD. Implement it
naturally using this.
NVN games expect rasterize to be enabled by default, reflect that in our
initial GPU state.
2019-12-18 19:28:23 -03:00
ReinUsesLisp
18ae3212cc
shader/memory: Implement LDG.U8 and unaligned U8 loads
...
LDG can load single bytes instead of full integers or packs of integers.
These have the advantage of loading bytes that are not aligned to 4
bytes.
To emulate these this commit gets the byte being referenced (by doing
"address & 3" and then using that to extract the byte from the loaded
integer:
result = bitfieldExtract(loaded_integer, (address % 4) * 8, 8)
2019-12-18 01:21:46 -03:00
ReinUsesLisp
034809d729
shader/conversion: Implement byte selector in I2F
...
I2F's byte selector is used to choose what bytes to convert to float.
e.g. if the input is 0xaabbccdd and the selector is ".B3" it will
convert 0xaa. The default (when it's not shown in nvdisasm) is ".B0", in
that example the default would convert 0xdd to float.
2019-12-18 00:41:22 -03:00
ReinUsesLisp
b082a0eb3f
shader/texture: Properly shrink unused entries in size mismatches
...
When a image format mismatches we were inserting zeroes to the texture
itself. This was not handling cases were the mismatch uses less
coordinates than the guest shader code. Address that by resizing the
vector.
2019-12-17 23:38:10 -03:00
ReinUsesLisp
b43ae0ad16
gl_shader_decompiler: Add missing DeclareImages
2019-12-17 23:34:15 -03:00
ReinUsesLisp
6acbec5666
shader_bytecode: Fix TLD4S encoding
2019-12-17 23:32:10 -03:00
bunnei
c54d8affb9
Merge pull request #3173 from yuzu-emu/bunnei-spscqueue
...
common: SPSCQueue: Notify after incrementing queue size.
2019-12-17 14:11:20 -05:00
bunnei
60fa40fc16
common: SPSCQueue: Notify after incrementing queue size.
2019-12-16 20:39:53 -05:00
ReinUsesLisp
1690b747d8
renderer_vulkan/shader: Add helper GLSL shaders
...
These shaders are used to specify code that is not dynamically generated
in the Vulkan backend. Instead of packing it inside the build system,
it's manually built and copied to the C++ file to avoid adding
unnecessary build time dependencies.
quad_array should be dropped in the future since it can be emulated with
a memory pool generated from the CPU.
2019-12-16 17:59:08 -03:00
bunnei
2cd276c0d0
Merge pull request #3182 from ReinUsesLisp/renderer-opengl
...
renderer_opengl: Miscellaneous clean ups
2019-12-16 13:01:04 -05:00
ReinUsesLisp
ac847a8cca
shader/texture: Implement TLD4.PTP
2019-12-16 04:09:24 -03:00
ReinUsesLisp
60dbe4b993
shader/texture: Enable arrayed TLD4
2019-12-16 02:37:21 -03:00
ReinUsesLisp
1516cc8bd3
gl_shader_decompiler: Rename "sepparate" to "separate"
2019-12-16 02:12:51 -03:00
ReinUsesLisp
06cf61aab3
shader/texture: Implement AOFFI for TLD4S
2019-12-16 02:06:42 -03:00
ReinUsesLisp
358e20f25b
shader/texture: Remove unnecesary parenthesis
2019-12-16 01:52:33 -03:00
Rodrigo Locatti
adb60a8810
Merge pull request #3219 from FernandoS27/fix-bindless
...
Corrections and fixes to TLD4S & bindless samplers failing
2019-12-16 01:26:11 -03:00
bunnei
ab8be46a8c
Merge pull request #3222 from ReinUsesLisp/maxwell-to-vk
...
maxwell_to_vk: Use VK_EXT_index_type_uint8 and misc changes
2019-12-14 22:30:12 -05:00
bunnei
6dee70147c
Merge pull request #3213 from ReinUsesLisp/intel-mesa
...
gl_device: Enable compute shaders for Intel Mesa drivers
2019-12-14 16:04:31 -05:00
bunnei
06e7951fc9
Merge pull request #3212 from ReinUsesLisp/fix-smem-lmem
...
gl_shader_cache: Add missing new-line on emitted GLSL
2019-12-13 21:35:29 -05:00
ReinUsesLisp
2ecba42eae
maxwell_to_vk: Improve image format table and add more formats
...
A1B5G5R5 uses A1R5G5B5. This is flipped with image view swizzles;
flushing is still not properly implemented on Vulkan for this particular
format.
2019-12-13 03:12:29 -03:00
ReinUsesLisp
e8faa79658
maxwell_to_vk: Implement more vertex formats
2019-12-13 03:12:28 -03:00
ReinUsesLisp
e0963237b4
maxwell_to_vk: Implement more primitive topologies
...
Add an extra argument to query device capabilities in the future. The
intention behind this is to use native quads, quad strips, line loops
and polygons if these are released for Vulkan.
2019-12-13 03:12:28 -03:00
ReinUsesLisp
ca90df6b7e
maxwell_to_vk: Approach GL_CLAMP closer to the GL spec
...
The OpenGL spec defines GL_CLAMP's formula similarly to CLAMP_TO_EDGE
and CLAMP_TO_BORDER depending on the filter mode used. It doesn't
exactly behave like this, but it's the closest we can get with what
Vulkan offers without emulating it by injecting shader code.
2019-12-13 03:12:28 -03:00
ReinUsesLisp
4b22842a07
maxwell_to_vk: Use VK_EXT_index_type_uint8 when available
2019-12-13 02:37:23 -03:00
ReinUsesLisp
ce695e0ca5
vk_scheduler: Delegate commands to a worker thread and state track
...
Introduce a worker thread approach for delegating Vulkan work derived
from dxvk's approach. https://github.com/doitsujin/dxvk
Now that the scheduler is what handles all Vulkan work related to
command streaming, store state tracking in itself. This way we can know
when to reupload Vulkan dynamic state to the queue (since this one is
invalidated between command buffers unlike NVN). We can also store the
renderpass state and graphics pipeline bound to avoid redundant binds
and renderpass begins/ends.
2019-12-13 02:24:48 -03:00
bunnei
84efe33017
Merge pull request #3214 from lioncash/svc-func
...
kernel/svc: Amend function signature of SignalProcessWideKey
2019-12-12 21:32:36 -05:00
bunnei
590477de30
Merge pull request #3217 from jhol/fix-boost-include
...
Added missing include
2019-12-11 22:21:24 -05:00
Fernando Sahmkow
75802de2eb
Shader_IR: Correct TLD4S Depth Compare.
2019-12-11 19:53:17 -04:00
Fernando Sahmkow
e47f66ac4b
Shader_Ir: Correct TLD4S encoding and implement f16 flag.
2019-12-11 19:53:17 -04:00
Fernando Sahmkow
538b4f6da3
Gl_Shader_compiler: Correct Depth Compare for Texture Gather operations.
2019-12-11 19:53:16 -04:00
Fernando Sahmkow
bab5b13be8
Shader_Ir: default failed tracks on bindless samplers to null values.
2019-12-11 19:53:16 -04:00
Fernando Sahmkow
ca11633e1d
Gl_Rasterizer: Skip Tesselation Control and Eval stages as they are un implemented.
...
This commit ensures the OGL backend does not execute tesselation shader
stages as they are currently unimplemented.
2019-12-11 15:41:26 -04:00
bunnei
1566b0c519
Merge pull request #3210 from ReinUsesLisp/memory-barrier
...
shader: Implement MEMBAR.GL
2019-12-11 14:24:39 -05:00
Joel Holdsworth
e6d65064da
Added missing include
2019-12-11 18:11:49 +00:00
Fernando Sahmkow
48dcf4c2d8
Kernel: Correct behavior of Address Arbiter threads. ( #3165 )
...
* Kernel: Correct behavior of Address Arbiter threads.
This corrects arbitration threads to behave just like in Horizon OS.
They are added into a container and released according to what priority
they had when added. Horizon OS does not reorder them if their priority
changes.
* Kernel: Address Feedback.
2019-12-11 10:55:38 -05:00
Lioncash
9e160743ac
kernel/svc: Correct function signature of SignalProcessWideKey
...
This function doesn't actually return a result code, so we can amend the
signature of it to match.
2019-12-11 07:13:27 -05:00
ReinUsesLisp
0957919b45
gl_device: Enable compute shaders for Intel Mesa drivers
...
Previously we naively checked for "Intel" in GL_VENDOR, but this
includes both Intel's proprietary driver and the mesa driver. Re-enable
compute shaders for mesa.
2019-12-11 00:00:30 -03:00
ReinUsesLisp
fba4acf010
gl_shader_cache: Add missing new-line on emitted GLSL
...
Add missing new-line. This caused shaders using local memory and shared
memory to inject a preprocessor GLSL line after an expression (resulting
in invalid code).
It looked like this:
shared uint smem[8];#define LOCAL_MEMORY_SIZE 16
It should look like this (addressed by this commit):
shared uint smem[8];
\#define LOCAL_MEMORY_SIZE 16
2019-12-10 23:52:51 -03:00
bunnei
bb3d5c700b
Merge pull request #3201 from lioncash/dump
...
kernel/svc: Provide implementations for svcDumpInfo/svcDumpInfoNew
2019-12-10 21:48:37 -05:00
Fernando Sahmkow
1987e66daa
Maxwell3D: Implement Depth Mode.
...
This commit finishes adding depth mode that was reverted before due to
other unresolved issues.
2019-12-10 19:51:46 -04:00
ReinUsesLisp
6e95568616
shader: Implement MEMBAR.GL
...
Implement using memoryBarrier in GLSL and OpMemoryBarrier on SPIR-V.
2019-12-10 16:45:03 -03:00
ReinUsesLisp
fdff48420a
vk_shader_decompiler: Fix build issues on old gcc versions
2019-12-10 01:55:38 -03:00
ReinUsesLisp
761483ac63
vk_shader_decompiler: Reduce YNegate's severity
2019-12-09 23:52:28 -03:00
ReinUsesLisp
72b999d789
shader_ir/other: Implement S2R InvocationId
2019-12-09 23:52:28 -03:00
ReinUsesLisp
7ec8977596
vk_shader_decompiler: Misc changes
...
Update Sirit and its usage in vk_shader_decompiler. Highlights:
- Implement tessellation shaders
- Implement geometry shaders
- Implement some missing features
- Use native half float instructions when available.
2019-12-09 23:51:57 -03:00
ReinUsesLisp
f2de7089e1
shader: Keep track of shaders using warp instructions
2019-12-09 23:40:41 -03:00
ReinUsesLisp
243a33aba9
shader_ir/memory: Implement patch stores
2019-12-09 23:25:21 -03:00
ReinUsesLisp
e3a6205772
vk_device: Misc changes
...
- Setup more features and requirements.
- Improve logging for missing features.
- Collect telemetry parameters.
- Add queries for more image formats.
- Query push constants limits.
- Optionally enable some extensions.
2019-12-09 01:04:48 -03:00
bunnei
80ea58f1db
Merge pull request #3198 from ReinUsesLisp/tessellation-maxwell
...
maxwell_3d: Add tessellation state entries
2019-12-08 22:28:25 -05:00
ReinUsesLisp
3c2839e533
externals: Update Vulkan-Headers
2019-12-08 22:08:19 -03:00
Rodrigo Locatti
7d8b72f8b4
Merge pull request #3199 from ReinUsesLisp/vk-swapchain
...
vk_swapchain: Add support for swapping sRGB
2019-12-08 21:53:22 -03:00
Lioncash
7953f7b0d8
kernel: Remove unnecessary includes
...
Over the course of the changes to the kernel code, a few includes are no
longer necessary, particularly with the change over to std::shared_ptr
from Boost's intrusive_ptr.
2019-12-07 22:37:05 -05:00
Lioncash
28ac8d63ef
kernel/svc: Provide implementations for svcDumpInfo/svcDumpInfoNew
...
These are fairly trivial to implement, we can just do nothing. This also
provides a spot for us to potentially dump out any relevant info in the
future (e.g. for debugging purposes with homebrew, etc).
While we're at it, we can also correct the names of both of these
supervisor calls.
2019-12-07 22:01:17 -05:00
ReinUsesLisp
b6cafd5c88
vk_swapchain: Add support for swapping sRGB
...
We don't know until the game is running if it's using an sRGB color
space or not. Add support for hot-swapping swapchain surface formats.
2019-12-06 22:42:08 -03:00
ReinUsesLisp
b377e0c75c
maxwell_3d: Add tessellation tess level registers
2019-12-06 22:08:22 -03:00
ReinUsesLisp
cac31c3fbb
maxwell_3d: Add tessellation mode register
2019-12-06 22:07:31 -03:00
ReinUsesLisp
c69c5be931
maxwell_3d: Add patch vertices register
2019-12-06 22:06:53 -03:00
bunnei
460b2b4a09
Merge pull request #3195 from FernandoS27/clear-exclusive
...
CpuCore: Clear exclusive state after doing a run in dynarmic.
2019-12-06 20:00:23 -05:00
ReinUsesLisp
959ac10dc8
shader_bytecode: Remove corrupted character
2019-12-06 20:31:56 -03:00
bunnei
2b4786f709
Merge pull request #3109 from FernandoS27/new-instr
...
Implement FLO & TXD Instructions on GPU Shaders
2019-12-06 18:18:16 -05:00
Fernando Sahmkow
2624ac7ae8
CpuCore: Clear exclusive state after doing a run in dynarmic.
...
This commit corrects an error in which a Core could remain with an
exclusive state after running, leaving space for possible race
conditions between changing cores.
2019-12-05 18:08:59 -04:00
ReinUsesLisp
bcf24c9ed8
telemetry_session: Report renderer backend
...
We only have OpenGL as an option for now. Hardcode the entry.
2019-12-02 16:50:39 -03:00
ReinUsesLisp
3c521afbec
telemetry_session: Use temporary to avoid writing the same enum
2019-12-02 16:49:46 -03:00
bunnei
6c951b2c80
Merge pull request #2987 from FernandoS27/texture-invalid
...
Texture_Cache: Redo invalid Surfaces handling.
2019-12-02 12:07:05 -05:00
bunnei
8a574895fb
Merge pull request #3177 from bunnei/new-ipc-req
...
kernel: Implement a more accurate IPC dispatch.
2019-11-30 18:56:35 -05:00
bunnei
a82a7408a7
Merge pull request #3184 from ReinUsesLisp/framebuffer-cache
...
gl_framebuffer_cache: Optimize framebuffer cache management
2019-11-30 18:46:40 -05:00
ReinUsesLisp
94a911d619
texture_cache/surface_base: Fix out of bounds texture views
...
Some texture views were being created out of bounds (with more layers or
mipmaps than what the original texture has). This is because of a
miscalculation in mipmap bounding. end_layer and end_mipmap are out of
bounds (e.g. layer 6 in a cubemap), there's no need to add one more
there.
Fixes OpenGL errors and Vulkan crashes on Splatoon 2.
2019-11-29 16:51:14 -03:00
ReinUsesLisp
e57b57cdbc
gl_framebuffer_cache: Optimize framebuffer key
...
Pack color attachment enumerations into a single u32. To determine the
number of buffers, the highest color attachment with a shared pointer
that doesn't point to null is used.
2019-11-28 23:02:20 -03:00
ReinUsesLisp
da1bef3a85
gl_rasterizer: Re-enable framebuffer cache for clear buffers
2019-11-28 23:02:20 -03:00
ReinUsesLisp
d4ada20e67
renderer_opengl: Make ScreenRectVertex's constructor constexpr
2019-11-28 20:36:02 -03:00
ReinUsesLisp
9b6d302900
renderer_opengl: Remove C casts
2019-11-28 20:28:27 -03:00
ReinUsesLisp
7db2bbcb12
renderer_opengl: Use explicit binding for presentation shaders
2019-11-28 20:25:56 -03:00
ReinUsesLisp
339cf19cd8
renderer_opengl: Drop macros for message decorations
2019-11-28 20:15:25 -03:00
ReinUsesLisp
e132f0fddd
renderer_opengl: Move static definitions to anonymous namespace
2019-11-28 20:14:40 -03:00
ReinUsesLisp
08e6173296
renderer_opengl: Move commentaries to header file
2019-11-28 20:11:03 -03:00
bunnei
4a4516868c
kernel: Implement a more accurate IPC dispatch.
2019-11-28 12:01:53 -05:00
bunnei
ec9f949bc8
Merge pull request #3169 from lioncash/memory
...
core/memory: Deglobalize memory management code
2019-11-28 11:43:17 -05:00
bunnei
5a1be49f6e
Merge pull request #3171 from lioncash/internal-link
...
filesys/romfs: Make ProcessFile and ProcessDirectory internally linked
2019-11-28 01:18:10 -05:00
Morph
2b0823df12
patch_manager: Adds check for disabled cheats to prevent them from being enabled ( #3178 )
...
* Adds check for disabled cheats to prevent them from being added to the CheatList
* Address feedback
2019-11-28 01:17:17 -05:00
bunnei
43a6681a59
Merge pull request #3170 from lioncash/enum
...
file_sys/directory: Make EntryType an enum class
2019-11-27 23:23:01 -05:00
Rodrigo Locatti
f1536be219
Merge pull request #3174 from lioncash/optional
...
video_core/gpu_thread: Tidy up SwapBuffers()
2019-11-27 20:35:31 -03:00
Lioncash
ab484b42b9
video_core/gpu_thread: Tidy up SwapBuffers()
...
We can just use std::nullopt and std::make_optional to make this a
little bit less noisy.
2019-11-27 17:46:11 -05:00
Lioncash
70eebf7ba8
video_core/const_buffer_locker: Make use of std::tie in HasEqualKeys()
...
Tidies it up a little bit visually.
2019-11-27 05:53:43 -05:00
Lioncash
40aa442a35
video_core/const_buffer_locker: Remove unused includes
2019-11-27 05:51:13 -05:00
Lioncash
3f27987dcc
video_core/const_buffer_locker: Remove #pragma once from cpp file
...
Silences a compiler warning.
2019-11-27 05:50:51 -05:00
Lioncash
0da88a9876
filesys/romfs: Remove unused includes
...
These inclusions aren't used at all within the public interface, so they
can be removed.
2019-11-27 05:29:52 -05:00
Lioncash
eada47f40f
filesys/romfs: Make ProcessFile and ProcessDirectory internally linked
...
These functions aren't used outside of this file, so we can place them
within an anonymous namespace.
2019-11-27 05:26:35 -05:00
Lioncash
a56ce41cc2
file_sys/directory: Make EntryType an enum class
...
This can trivially be an enum class rather than a regular enum, making
it more strongly typed.
2019-11-27 05:11:02 -05:00
Lioncash
50906bcf42
core/memory; Migrate over SetCurrentPageTable() to the Memory class
...
Now that literally every other API function is converted over to the
Memory class, we can just move the file-local page table into the Memory
implementation class, finally getting rid of global state within the
memory code.
2019-11-26 21:55:39 -05:00
Lioncash
d03fbad80f
core/memory: Migrate over GetPointerFromVMA() to the Memory class
...
Now that everything else is migrated over, this is essentially just code
relocation and conversion of a global accessor to the class member
variable.
All that remains is to migrate over the page table.
2019-11-26 21:55:39 -05:00
Lioncash
b5f69f4cc9
core/memory: Migrate over Write{8, 16, 32, 64, Block} to the Memory class
...
The Write functions are used slightly less than the Read functions,
which make these a bit nicer to move over.
The only adjustments we really need to make here are to Dynarmic's
exclusive monitor instance. We need to keep a reference to the currently
active memory instance to perform exclusive read/write operations.
2019-11-26 21:55:39 -05:00
Lioncash
cc3d6fdf73
core/memory: Migrate over Read{8, 16, 32, 64, Block} to the Memory class
...
With all of the trivial parts of the memory interface moved over, we can
get right into moving over the bits that are used.
Note that this does require the use of GetInstance from the global
system instance to be used within hle_ipc.cpp and the gdbstub. This is
fine for the time being, as they both already rely on the global system
instance in other functions. These will be removed in a change directed
at both of these respectively.
For now, it's sufficient, as it still accomplishes the goal of
de-globalizing the memory code.
2019-11-26 21:55:39 -05:00
Lioncash
9e3cbf71fc
core/memory: Migrate over ZeroBlock() and CopyBlock() to the Memory class
...
These currently aren't used anywhere in the codebase, so these are very
trivial to move over to the Memory class.
2019-11-26 21:55:38 -05:00
Lioncash
ad85ba53dd
core/memory: Migrate over RasterizerMarkRegionCached() to the Memory class
...
This is only used within the accelerated rasterizer in two places, so
this is also a very trivial migration.
2019-11-26 21:55:38 -05:00
Lioncash
8d306269d0
core/memory: Migrate over ReadCString() to the Memory class
...
This only had one usage spot, so this is fairly straightforward to
convert over.
2019-11-26 21:55:38 -05:00
Lioncash
7110e6a128
core/memory: Migrate over GetPointer()
...
With all of the interfaces ready for migration, it's trivial to migrate
over GetPointer().
2019-11-26 21:55:38 -05:00
Lioncash
e04aeb9531
core: Prepare various classes for memory read/write migration
...
Amends a few interfaces to be able to handle the migration over to the
new Memory class by passing the class by reference as a function
parameter where necessary.
Notably, within the filesystem services, this eliminates two ReadBlock()
calls by using the helper functions of HLERequestContext to do that for
us.
2019-11-26 21:55:37 -05:00
Lioncash
717e2d5b94
core/memory: Move memory read/write implementation functions into an 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.
2019-11-26 21:53:35 -05:00
Lioncash
811191a9c9
core/memory: Migrate over address checking functions to the new Memory class
...
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.
2019-11-26 21:53:34 -05:00
Lioncash
1d9be65e26
core/memory: Migrate over memory mapping functions to the new Memory class
...
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.
2019-11-26 21:53:34 -05:00
Lioncash
ff443fa835
core/memory: Introduce skeleton of Memory class
...
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.
2019-11-26 21:53:34 -05:00
bunnei
6fbfa5bb89
Merge pull request #3143 from ReinUsesLisp/indexing-bug
...
gl_device: Deduce indexing bug from device instead of heuristic
2019-11-26 21:53:12 -05:00
bunnei
8b35acbd29
core_timing: Use better reference tracking for EventType. ( #3159 )
...
* 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.
2019-11-26 21:48:56 -05:00
bunnei
56ddd34c5e
Merge pull request #3164 from ReinUsesLisp/half-cast-float
...
gl_shader_decompiler: Fix casts from fp32 to fp16
2019-11-26 09:11:23 -05:00
ReinUsesLisp
c769397a9a
gl_shader_decompiler: Fix casts from fp32 to f16
...
Casts from f32 to f16 zeroes the higher half of the target register.
2019-11-25 22:22:33 -03:00
bunnei
9a3cd7ccb8
kernel: Fix reference management for client/server session.
...
- Fixes shutdown crash and crash in Pokemon SwSh.
2019-11-25 18:17:49 -05:00
ReinUsesLisp
b326331a1f
gl_device: Deduce indexing bug from device instead of heuristic
...
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.
2019-11-25 16:15:22 -03:00
bunnei
242629852b
Merge pull request #3158 from ReinUsesLisp/srgb-blit
...
gl_texture_cache: Apply sRGB on blits
2019-11-24 20:47:13 -05:00
bunnei
e8dd602a77
Merge pull request #3094 from lioncash/tables
...
service: Update function tables
2019-11-24 20:30:58 -05:00
bunnei
740190597b
Merge pull request #3155 from bunnei/fix-asynch-gpu-wait
...
gpu_thread: Don't spin wait if there are no GPU commands.
2019-11-24 20:19:25 -05:00
bunnei
5cb0f276fe
kernel: Replace usage of boost::intrusive_ptr with std::shared_ptr for 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.
2019-11-24 20:15:51 -05:00
bunnei
e1ad08d11b
Merge pull request #3098 from ReinUsesLisp/shader-invalidations
...
gl_shader_cache: Miscellaneous changes to shaders
2019-11-24 19:36:30 -05:00
ReinUsesLisp
f2cf4f8ce7
gl_texture_cache: Apply sRGB on blits
...
glBlitFramebuffer keeps in mind GL_FRAMEBUFFER_SRGB's state. Enable this
depending on the target surface pixel format.
2019-11-24 18:13:33 -03:00
bunnei
b8f67a1bcd
Merge pull request #3105 from ReinUsesLisp/fix-stencil-reg
...
maxwell_3d: Fix stencil_back_func_mask offset
2019-11-24 13:53:23 -05:00
bunnei
9c25858f2d
Merge pull request #3156 from bunnei/sys-ticks
...
svc: GetSystemTick should return cntpct_el0, not core ticks.
2019-11-24 13:52:28 -05:00