Commit Graph

12175 Commits

Author SHA1 Message Date
Fernando Sahmkow f5da504663 Kernel: Make global scheduler depend on KernelCore 2020-02-22 11:18:06 -04:00
bunnei 338e4b4d07 audio_core: interpolate: Fix include for climits (Linux build break). 2020-02-22 02:29:41 -05:00
bunnei ce63834a29 Merge pull request #3310 from FearlessTobi/fast-resample
audio_core: Switch to a faster interpolation technique
2020-02-22 01:54:40 -05:00
ReinUsesLisp 8ab2e5f561 shader/texture: Fix illegal 3D texture assert
Fix typo in the illegal 3D texture assert logic. We care about catching
arrayed 3D textures or 3D shadow textures, not regular 3D textures.
2020-02-21 15:57:27 -03:00
Rodrigo Locatti c22c0ea070 Merge pull request #3433 from namkazt/patch-1
renderer_vulkan: Add the rest of case for TryConvertBorderColor
2020-02-21 15:56:09 -03:00
Rodrigo Locatti 291a7850a3 Merge pull request #3434 from namkazt/patch-2
vk_shader: Implement ImageLoad
2020-02-21 15:55:05 -03:00
Rodrigo Locatti 2cd2a86c92 Merge pull request #3435 from namkazt/patch-3
vulkan: add DXT23_SRGB
2020-02-21 15:48:19 -03:00
bunnei 1bf28215ac Merge pull request #3423 from ReinUsesLisp/no-match-3d
texture_cache: Avoid matches in 3D textures
2020-02-21 12:16:51 -05:00
Nguyen Dac Nam 96e43427e5 nit: add const to where it need. 2020-02-21 21:16:45 +07:00
Nguyen Dac Nam 0c3acedaf9 shader: implement LOP3 fast replace for old function
ref: https://devtalk.nvidia.com/default/topic/1070081/cuda-programming-and-performance/reverse-lut-for-lop3-lut/
2020-02-21 19:08:07 +07:00
Nguyen Dac Nam c3088fd578 vk_device: remove left over from other branch 2020-02-21 08:56:18 +07:00
bunnei 9356da8af9 Merge pull request #3438 from bunnei/gpu-mem-manager-fix
video_core: memory_manager: Flush/invalidate asynchronously when possible.
2020-02-20 20:04:05 -05:00
Nguyen Dac Nam 5b3a5b5fb6 clang-format 2020-02-20 09:39:30 +07:00
Nguyen Dac Nam 090dd95c05 shader_decompiler: only add StorageImageReadWithoutFormat when available 2020-02-20 09:28:13 +07:00
bunnei 8152281820 Merge pull request #3432 from brianclinkenbeard/update-httplib
Update httplib to 0.5.5
2020-02-19 21:15:06 -05:00
bunnei fbd58d36d1 Merge pull request #3415 from ReinUsesLisp/texture-code
shader/texture: Allow 2D shadow arrays and simplify code
2020-02-19 20:06:14 -05:00
bunnei 638252e316 video_core: memory_manager: Flush/invalidate asynchronously on Unmap.
- Minor perf improvement.
2020-02-19 20:03:52 -05:00
bunnei 5c5b6cf721 Merge pull request #3414 from ReinUsesLisp/maxwell-3d-draw
maxwell_3d: Unify draw methods
2020-02-19 16:13:50 -05:00
bunnei 3360446580 Merge pull request #3411 from ReinUsesLisp/specific-funcs
gl_rasterizer: Use the least generic OpenGL draw function possible
2020-02-19 15:37:41 -05:00
Nguyen Dac Nam 102d52ad68 shader_decompiler: add check in case of device not support ShaderStorageImageReadWithoutFormat 2020-02-19 12:57:22 +07:00
Nguyen Dac Nam 1ed0d4faea vk_device: setup shaderStorageImageReadWithoutFormat 2020-02-19 12:56:36 +07:00
Nguyen Dac Nam d285fae01a vk_device: add check for shaderStorageImageReadWithoutFormat 2020-02-19 12:55:56 +07:00
Nguyen Dac Nam a57853e085 shader_conversion: I2F : add Assert for case src_size is Short 2020-02-19 11:40:35 +07:00
Nguyen Dac Nam 92153118ab fix warning 2020-02-19 11:10:26 +07:00
Nguyen Dac Nam 84fc48b0eb clang-format fix 2020-02-19 11:02:59 +07:00
Nguyen Dac Nam 0d9361d21f shader_conversion: add conversion I2F for Short 2020-02-19 10:54:37 +07:00
bunnei 628c0b6a95 Merge pull request #3410 from ReinUsesLisp/vk-draw-index
vk_shader_decompiler: Fix vertex id and instance id
2020-02-18 22:37:33 -05:00
Nguyen Dac Nam c9448bc5ba vk_shader: add Capability StorageImageReadWithoutFormat 2020-02-19 10:16:51 +07:00
Brian Clinkenbeard 050a4362ad httplib compatibility 2020-02-18 18:04:33 -08:00
Nguyen Dac Nam c646835eb0 vk_shader: Implement function ImageLoad (Used by Kirby Start Allies)
Please enter the commit message for your changes. Lines starting
2020-02-19 08:39:01 +07:00
Nguyen Dac Nam 85e76831a1 fixups mistake auto commit. 2020-02-19 01:24:32 +07:00
Nguyen Dac Nam 418b7ffb21 Update code structure
Co-Authored-By: Mat M. <mathew1800@gmail.com>
2020-02-19 01:23:08 +07:00
Fernando Sahmkow d67c538d68 Merge pull request #3409 from ReinUsesLisp/host-queries
query_cache: Implement a query cache and query 21 (samples passed)
2020-02-18 11:31:06 -04:00
Nguyen Dac Nam af67c90eca add vertex UnsignedInt size RGBA 2020-02-18 21:52:51 +07:00
Nguyen Dac Nam 2058556671 add eBc2SrgbBlock to formats 2020-02-18 21:44:09 +07:00
Nguyen Dac Nam 6d36df9e5d vulkan: add DXT23_SRGB 2020-02-18 21:39:50 +07:00
Nguyen Dac Nam fa641bf689 renderer_vulkan: Add the rest of case for TryConvertBorderColor 2020-02-18 16:52:54 +07:00
CJBok 7ec4bd7793 analog_from_button get direction implementation 2020-02-18 06:45:37 +01:00
bunnei 92e3fb6e2f Merge pull request #3412 from Morph1984/aspect-ratio
GUI: Add aspect ratio dropdown
2020-02-17 22:02:18 -05:00
bunnei a251713173 Merge pull request #3420 from namkazt/master2
nvhost_gpu: implement ChannelSetTimeslice
2020-02-17 00:31:11 -05:00
ReinUsesLisp 505f30fdaf texture_cache: Implement layered framebuffer attachments
Layered framebuffer attachments is a feature that allows applications to
write attach layered textures to a single attachment. What layer the
fragments are written to is decided from the shader using gl_Layer.
2020-02-16 04:19:32 -03:00
ReinUsesLisp 6385b93c8d vk_shader_decompiler: Implement Layer output attribute
SPIR-V's Layer is GLSL's gl_Layer. It lets the application choose from a
shader stage (vertex, tessellation or geometry) which framebuffer layer
write the output fragments to.
2020-02-16 04:17:37 -03:00
ReinUsesLisp b4bd0c57e4 texture_cache: Avoid matches in 3D textures
Code before this commit was trying to match 3D textures with another
target. Fix that.
2020-02-16 04:15:42 -03:00
ReinUsesLisp 4fd155c282 surface_base: Implement texture buffer flushes
Implement downloads to guest memory from texture buffers on the generic
cache and OpenGL.
2020-02-16 04:13:27 -03:00
Nguyen Dac Nam 2807020c01 IUserLocalCommunicationService: add function Initialize2 2020-02-16 13:24:34 +07:00
Nguyen Dac Nam c4e8f9589a HLE: correct function name of IUserLocalCommunicationService
402: function name should be Initialize2 (7.0.0+) not SetOperationMode
Follow by: https://switchbrew.org/wiki/LDN_services#IUserLocalCommunicationService
2020-02-16 13:14:06 +07:00
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