summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2018-08-31core/core: Replace includes with forward declarations where applicableLioncash
The follow-up to e2457418dae19b889b2ad85255bb95d4cd0e4bff, which replaces most of the includes in the core header with forward declarations. This makes it so that if any of the headers the core header was previously including change, then no one will need to rebuild the bulk of the core, due to core.h being quite a prevalent inclusion. This should make turnaround for changes much faster for developers.
2018-08-31gl_rasterizer_cache: Use accurate framebuffer setting for accurate copies.bunnei
2018-08-31gl_rasterizer_cache: Also use reserve cache for RecreateSurface.bunnei
2018-08-31rasterizer_cache: Use boost::interval_map for a more accurate cache.bunnei
2018-08-31gl_renderer: Cache textures, framebuffers, and shaders based on CPU address.bunnei
2018-08-31gl_rasterizer: Fix issues with the rasterizer cache.bunnei
- Use a single cached page map. - Fix calculation of ending page.
2018-08-31Implement BC6H_UF16 & BC6H_SF16 (#1092)greggameplayer
* Implement BC6H_UF16 & BC6H_SF16 Require by ARMS * correct coding style * correct coding style part 2
2018-08-31Merge pull request #1204 from lioncash/pimplbunnei
core: Make the main System class use the PImpl idiom
2018-08-31Merge pull request #1207 from degasus/hotfixbunnei
Report correct shader size.
2018-08-31core: Make the main System class use the PImpl idiomLioncash
core.h is kind of a massive header in terms what it includes within itself. It includes VFS utilities, kernel headers, file_sys header, ARM-related headers, etc. This means that changing anything in the headers included by core.h essentially requires you to rebuild almost all of core. Instead, we can modify the System class to use the PImpl idiom, which allows us to move all of those headers to the cpp file and forward declare the bulk of the types that would otherwise be included, reducing compile times. This change specifically only performs the PImpl portion.
2018-08-31Report correct shader size.Markus Wick
Seems like this was an oversee in regards to 1fd979f50a9f4c21fa8cafba7268d959e3076924 It changed GLShader::ProgramCode to a std::vector, so sizeof is wrong.
2018-08-31Added predicate comparison GreaterEqualWithNanHexagon12
2018-08-30Merge pull request #1195 from FearlessTobi/port-gamelist-compatbunnei
yuzu: Show game compatibility in the game list (PR ported from Citra)
2018-08-30gl_shader_decompiler: Implement POPC (#1203)Laku
* Implement POPC * implement invert
2018-08-30Merge pull request #1200 from bunnei/improve-ipabunnei
gl_shader_decompiler: Improve IPA for Pass mode with Position attribute.
2018-08-30Merge pull request #1198 from lioncash/kernelbunnei
kernel: Eliminate kernel global state
2018-08-29Shaders: Implemented IADD3tech4me
2018-08-29Show game compatibility within yuzufearlessTobi
2018-08-29gl_shader_decompiler: Improve IPA for Pass mode with Position attribute.bunnei
2018-08-28kernel: Eliminate kernel global stateLioncash
As means to pave the way for getting rid of global state within core, This eliminates kernel global state by removing all globals. Instead this introduces a KernelCore class which acts as a kernel instance. This instance lives in the System class, which keeps its lifetime contained to the lifetime of the System class. This also forces the kernel types to actually interact with the main kernel instance itself instead of having transient kernel state placed all over several translation units, keeping everything together. It also has a nice consequence of making dependencies much more explicit. This also makes our initialization a tad bit more correct. Previously we were creating a kernel process before the actual kernel was initialized, which doesn't really make much sense. The KernelCore class itself follows the PImpl idiom, which allows keeping all the implementation details sealed away from everything else, which forces the use of the exposed API and allows us to avoid any unnecessary inclusions within the main kernel header.
2018-08-28Merge pull request #1193 from lioncash/privbunnei
gpu: Make memory_manager private
2018-08-28Merge pull request #1192 from lioncash/unusedbunnei
gl_rasterizer: Remove unused variables
2018-08-28Merge pull request #1191 from lioncash/noexceptbunnei
hle/result: Make ResultVal's move constructor as noexcept
2018-08-28Merge pull request #1194 from lioncash/allocbunnei
gl_shader_cache: Remove unused program_code vector in GetShaderAddress()
2018-08-28gl_shader_cache: Remove unused program_code vector in GetShaderAddress()Lioncash
Given std::vector is a type with a non-trivial destructor, this variable cannot be optimized away by the compiler, even if unused. Because of that, something that was intended to be fairly lightweight, was actually allocating 32KB and deallocating it at the end of the function.
2018-08-28gpu: Make memory_manager privateLioncash
Makes the class interface consistent and provides accessors for obtaining a reference to the memory manager instance. Given we also return references, this makes our more flimsy uses of const apparent, given const doesn't propagate through pointers in the way one would typically expect. This makes our mutable state more apparent in some places.
2018-08-28gl_rasterizer: Remove unused variablesLioncash
2018-08-28hle/result: Make ResultVal's move constructor as noexceptLioncash
Many containers within the standard library provide different behaviors based on whether or not a move constructor/assignment operator can be guaranteed not to throw or not. Notably, implementations will generally use std::move_if_noexcept (or an internal implementation of it) to provide strong exception guarantees. If a move constructor potentially throws (in other words, is not noexcept), then certain behaviors will create copies, rather than moving the values. For example, consider std::vector. When a std::vector calls resize(), there are two ways the elements can be relocated to the new block of memory (if a reallocation happens), by copy, or by moving the existing elements into the new block of memory. If a type does not have a guarantee that it will not throw in the move constructor, a copy will happen. However, if it can be guaranteed that the move constructor won't throw, then the elements will be moved. This just allows ResultVal to be moved instead of copied all the time if ever used in conjunction with containers for whatever reason.
2018-08-28Fix two stupid errors made in #1141fearlessTobi
2018-08-27Merge pull request #1165 from bunnei/shader-cachebunnei
renderer_opengl: Implement a new shader cache.
2018-08-28yuzu: Fix stick UI direction orderfearlessTobi
2018-08-27Merge pull request #1177 from lioncash/errbunnei
kernel/error: Amend several error codes
2018-08-27renderer_opengl: Implement a new shader cache.bunnei
2018-08-27gl_rasterizer_cache: Update to use RasterizerCache base class.bunnei
2018-08-27video_core: Add RasterizerCache class for common cache management code.bunnei
2018-08-27Merge pull request #1169 from Lakumakkara/selbunnei
shader_bytecode: fix SEL_IMM bitstring
2018-08-27Merge pull request #1188 from lioncash/unusedbunnei
vfs_real: Remove unused variable in CreateDirectoryRelative()
2018-08-27Merge pull request #1170 from lioncash/retbunnei
file_util: Correct return value in early exit of ReadFileToString()
2018-08-27Merge pull request #1175 from lioncash/nsbunnei
core: Namespace all code in the arm subdirectory under the Core namespace
2018-08-27Merge pull request #1187 from lioncash/shadowbunnei
registered_cache: Get rid of variable shadowing in ProcessFiles()
2018-08-27vfs_real: Remove unused variable in CreateDirectoryRelative()Lioncash
2018-08-27registered_cache: Get rid of variable shadowing in ProcessFiles()Lioncash
Prevents compiler warnings.
2018-08-27Merge pull request #1128 from DarkLordZach/malformed-hex-crashbunnei
hex_util: Replace logic_errors with LOG_CRITICAL
2018-08-27Merge pull request #1176 from lioncash/infobunnei
svc: Return process title ID if queried in GetInfo()
2018-08-27Merge pull request #1174 from lioncash/debugbunnei
debug_utils: Minor individual interface changes
2018-08-27Merge pull request #1162 from ogniK5377/ttf-plubunnei
PL:U Added SharedFonts loading via TTF
2018-08-27Merge pull request #1168 from lioncash/headerbunnei
hid: Move core include to cpp file
2018-08-27Merge pull request #1171 from lioncash/truebunnei
core: Remove always true conditionals in Load()
2018-08-26set: Fixed GetAvailableLanguageCodes() to follow the max_entriestech4me
Rightnow, in games use GetAvailableLanguageCodes(), there is a WriteBuffer() with size larger than the buffer_size. (Core Critical core\hle\kernel\hle_ipc.cpp:WriteBuffer:296: size (0000000000000088) is greater than buffer_size (0000000000000078)) 0x88 = 17(languages) * 8 0x78 = 15(languages) * 8 GetAvailableLanguageCodes() can only support 15 languages. After firmware 4.0.0 there are 17 supported language instead of 15, to enable this GetAvailableLanguageCodes2() need to be used. So GetAvailableLanguageCodes() will be caped at 15 languages. Reference: http://switchbrew.org/index.php/Settings_services
2018-08-25Merge pull request #1173 from lioncash/batchbunnei
maxwell3d: Move FinishedPrimitiveBatch event after AcceleratedDrawBatch()