aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-03-13Merge pull request #2231 from ReinUsesLisp/fixup-biasbunnei
video_core/texture: Fix up sampler lod bias
2019-03-13core/hle/kernel/svc: Implement svcUnmapTransferMemoryLioncash
Similarly, like svcMapTransferMemory, we can also implement svcUnmapTransferMemory fairly trivially as well.
2019-03-13core/hle/kernel/svc: Implement svcMapTransferMemoryLioncash
Now that transfer memory handling is separated from shared memory, we can implement svcMapTransferMemory pretty trivially.
2019-03-13core/hle/kernel: Split transfer memory handling out into its own classLioncash
Within the kernel, shared memory and transfer memory facilities exist as completely different kernel objects. They also have different validity checking as well. Therefore, we shouldn't be treating the two as the same kind of memory. They also differ in terms of their behavioral aspect as well. Shared memory is intended for sharing memory between processes, while transfer memory is intended to be for transferring memory to other processes. This breaks out the handling for transfer memory into its own class and treats it as its own kernel object. This is also important when we consider resource limits as well. Particularly because transfer memory is limited by the resource limit value set for it. While we currently don't handle resource limit testing against objects yet (but we do allow setting them), this will make implementing that behavior much easier in the future, as we don't need to distinguish between shared memory and transfer memory allocations in the same place.
2019-03-13video_core/texture: Fix up sampler lod biasReinUsesLisp
2019-03-12vk_sampler_cache: Use operator== instead of memcmpMat M
Co-Authored-By: ReinUsesLisp <reinuseslisp@airmail.cc>
2019-03-12vk_sampler_cache: Implement a sampler cacheReinUsesLisp
2019-03-12kernel/process: Remove use of global system accessorsLioncash
Now that we pass in a reference to the system instance, we can utilize it to eliminate the global accessors in Process-related code.
2019-03-12Merge pull request #2211 from lioncash/arbiterbunnei
kernel: Make the address arbiter instance per-process
2019-03-12Merge pull request #2222 from lioncash/cstrbunnei
service/service: Remove unncessary calls to c_str()
2019-03-12video_core/texture: Add a raw representation of TSCEntryReinUsesLisp
2019-03-12Merge pull request #2215 from ReinUsesLisp/samplersbunnei
gl_rasterizer: Encapsulate sampler queries into methods
2019-03-11renderer_opengl/gl_global_cache: Replace indexing for assignment with ↵Lioncash
insert_or_assign The previous code had some minor issues with it, really not a big deal, but amending it is basically 'free', so I figured, "why not?". With the standard container maps, when: map[key] = thing; is done, this can cause potentially undesirable behavior in certain scenarios. In particular, if there's no value associated with the key, then the map constructs a default initialized instance of the value type. In this case, since it's a std::shared_ptr (as a type alias) that is the value type, this will construct a std::shared_pointer, and then assign over it (with objects that are quite large, or actively heap allocate this can be extremely undesirable). We also make the function take the region by value, as we can avoid a copy (and by extension with std::shared_ptr, a copy causes an atomic reference count increment), in certain scenarios when ownership isn't a concern (i.e. when ReserveGlobalRegion is called with an rvalue reference, then no copy at all occurs). So, it's more-or-less a "free" gain without many downsides.
2019-03-11renderer_opengl/gl_global_cache: Append missing override specifiersLioncash
Two of the functions here are overridden functions, so we can append these specifiers to make it explicit.
2019-03-11set_sys: Move constants to anonymous namespaceZach Hilman
2019-03-11kernel/server_port: Make data members privateLioncash
With this, all kernel objects finally have all of their data members behind an interface, making it nicer to reason about interactions with other code (as external code no longer has the freedom to totally alter internals and potentially messing up invariants).
2019-03-11hwopus: Leverage multistream API for decoding regular Opus packetsLioncash
After doing a little more reading up on the Opus codec, it turns out that the multistream API that is part of libopus can handle regular packets. Regular packets are just a degenerate case of multistream Opus packets, and all that's necessary is to pass the number of streams as 1 and provide a basic channel mapping, then everything works fine for that case. This allows us to get rid of the need to use both APIs in the future when implementing multistream variants in a follow-up PR, greatly simplifying the code that needs to be written.
2019-03-11gl_rasterizer: Use system instance passed from argumentReinUsesLisp
2019-03-10set_sys: Use official nintendo version stringZach Hilman
2019-03-10system_version: Correct sizes on VectorVfsFile constructionZach Hilman
2019-03-10set_sys: Use correct error codes in GetFirmwareVersion*Zach Hilman
2019-03-10core/hle/result: Remove now-unnecessary manually defined copy assignment ↵Lioncash
operator Previously this was required, as BitField wasn't trivially copyable. BitField has since been made trivially copyable, so now this isn't required anymore.
2019-03-10core/hle/result: Amend error in comment description for ResultCodeLioncash
Gets rid of another holdover from Citra, and describes the OS on the Switch instead.
2019-03-10core/hle/result: Remove now-unused constructor for ResultCodeLioncash
Now that the final stray ErrorDescription member was relocated, we can finally remove it and its relevant constructor in the ResultCode union.
2019-03-10core/hle/result: Relocate IPC error code to ipc_helpersLioncash
Relocates the error code to where it's most related, similar to how all the other error codes are. Previously we were including a non-generic error in the main result code header.
2019-03-10service/service: Remove unncessary calls to c_str()Lioncash
These can just be passed regularly, now that we use fmt instead of our old logging system. While we're at it, make the parameters to MakeFunctionString std::string_views.
2019-03-10Merge pull request #2207 from lioncash/hwopusbunnei
service/audio/hwopus: Move decoder state to its own class
2019-03-10Merge pull request #2193 from lioncash/globalbunnei
kernel/scheduler: Pass in system instance in constructor
2019-03-10Merge pull request #2147 from ReinUsesLisp/texture-cleanbunnei
shader_ir: Remove "extras" from the MetaTexture
2019-03-10Merge pull request #2143 from ReinUsesLisp/texviewbunnei
gl_rasterizer_cache: Create texture views for array discrepancies
2019-03-10Merge pull request #2220 from lioncash/cubebbunnei
audio_core/cubeb_sink: Convert _MSC_VER ifdefs to _WIN32
2019-03-10set_sys: Implement GetFirmwareVersion(2) for libnx hosversionZach Hilman
Uses the synthesized system archive 9 (SystemVersion) and reports v5.1.0-0.0
2019-03-10Merge pull request #2217 from ReinUsesLisp/rasterizer-loggerMat M
gl_rasterizer: Minor logger changes
2019-03-10Merge pull request #2219 from Hexagon12/log-settingsMat M
core/settings: Log more setting values
2019-03-10Merge pull request #2218 from ReinUsesLisp/cmd-castMat M
yuzu_cmd/config: Silent implicit cast warning
2019-03-09audio_core/cubeb_sink: Convert _MSC_VER ifdefs to _WIN32Lioncash
This behavior also needs to be visible for MinGW builds as well.
2019-03-09clang fixHexagon12
2019-03-09Log 2 new setting valuesHexagon12
2019-03-09gl_rasterizer: Encapsulate sampler queries into methodsReinUsesLisp
2019-03-09yuzu_cmd/config: Replace C casts with static_castReinUsesLisp
2019-03-09yuzu_cmd/config: Silent implicit cast warningReinUsesLisp
2019-03-09gl_rasterizer: Minor logger changesReinUsesLisp
2019-03-08Merge pull request #2210 from lioncash/optionalbunnei
kernel/hle_ipc: Convert std::shared_ptr IPC header instances to std::optional
2019-03-08Merge pull request #2209 from lioncash/reorderbunnei
video_core/gpu_thread: Silence a -Wreorder warning
2019-03-08Merge pull request #2208 from lioncash/gpubunnei
video_core/gpu: Make GPU's destructor virtual
2019-03-08Merge pull request #2191 from ReinUsesLisp/maxwell-to-vkbunnei
maxwell_to_vk: Initial implementation
2019-03-08Merge pull request #2212 from ReinUsesLisp/dma-push-fixbunnei
dma_pusher: Store command_list_header by copy
2019-03-08dma_pusher: Store command_list_header by copyReinUsesLisp
Instead of holding a reference that will get invalidated by dma_pushbuffer.pop(), hold it as a copy. This doesn't have any performance cost since CommandListHeader is 8 bytes long.
2019-03-07kernel/hle_ipc: Convert std::shared_ptr IPC header instances to std::optionalLioncash
There's no real need to use a shared lifetime here, since we don't actually expose them to anything else. This is also kind of an unnecessary use of the heap given the objects themselves are so small; small enough, in fact that changing over to optionals actually reduces the overall size of the HLERequestContext struct (818 bytes to 808 bytes).
2019-03-07travis: Bump macOS version to 10.14Lioncash
For whatever bizarre reason, Apple only made a few of std::optional's member functions available on newer SDK versions. Given we can't even run yuzu on macOS, and we keep the builder around to ensure that it always at least compiles on macOS, we can bump this up a version.