summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2019-11-22gl_state: Skip null texture bindsReinUsesLisp
glBindTextureUnit doesn't support null textures. Skip binding these.
2019-11-22gl_rasterizer: Disable compute shaders on IntelReinUsesLisp
Intel's proprietary driver enters in a corrupt state when compute shaders are executed. For now, disable these.
2019-11-22gl_shader_cache: Hack shared memory sizeReinUsesLisp
The current shared memory size seems to be smaller than what the game actually uses. This makes Nvidia's driver consistently blow up; in the case of FE3H it made it explode on Qt's SwapBuffers while SDL2 worked just fine. For now keep this hack since it's still progress over the previous hardcoded shared memory size.
2019-11-22gl_shader_decompiler: Normalize image bindingsReinUsesLisp
2019-11-22gl_shader_decompiler: Normalize cbuf bindingsReinUsesLisp
Stage and compute shaders were using a different binding counter. Normalize these.
2019-11-22gl_rasterizer: Add missing cbuf counter reset on computeReinUsesLisp
2019-11-22gl_shader_cache: Remove dynamic BaseBinding specializationReinUsesLisp
2019-11-22video_core: Unify ProgramType and ShaderStage into ShaderTypeReinUsesLisp
2019-11-22gl_rasterizer: Bind graphics images to draw commandsReinUsesLisp
Images were not being bound to draw invocations because these would require a cache invalidation.
2019-11-22gl_shader_cache: Specialize local memory size for compute shadersReinUsesLisp
Local memory size in compute shaders was stubbed with an arbitary size. This commit specializes local memory size from guest GPU parameters.
2019-11-22gl_shader_cache: Specialize shared memory sizeReinUsesLisp
Shared memory was being declared with an undefined size. Specialize from guest GPU parameters the compute shader's shared memory size.
2019-11-22gl_shader_cache: Specialize shader workgroupReinUsesLisp
Drop the usage of ARB_compute_variable_group_size and specialize compute shaders instead. This permits compute to run on AMD and Intel proprietary drivers.
2019-11-22shader/texture: Handle TLDS texture type mismatchesReinUsesLisp
Some games like "Fire Emblem: Three Houses" bind 2D textures to offsets used by instructions of 1D textures. To handle the discrepancy this commit uses the the texture type from the binding and modifies the emitted code IR to build a valid backend expression. E.g.: Bound texture is 2D and instruction is 1D, the emitted IR samples a 2D texture in the coordinate ivec2(X, 0).
2019-11-22shader/texture: Deduce texture buffers from lockerReinUsesLisp
Instead of specializing shaders to separate texture buffers from 1D textures, use the locker to deduce them while they are being decoded.
2019-11-19shader/other: Reduce DEPBAR log severityReinUsesLisp
While DEPBAR is stubbed it doesn't change anything from our end. Shading languages handle what this instruction does implicitly. We are not getting anything out fo this log except noise.
2019-11-19Merge pull request #3086 from ReinUsesLisp/format-lookupsbunnei
texture_cache: Use a flat table instead of switch for texture format lookups
2019-11-15common/logging: Silence no return value warningsReinUsesLisp
2019-11-15Merge pull request #3047 from ReinUsesLisp/clip-controlbunnei
gl_rasterizer: Emulate viewport flipping with ARB_clip_control
2019-11-15Merge pull request #3091 from lioncash/core-conversionbunnei
core: Make most implicit type conversion warnings errors on MSVC
2019-11-14format_lookup_table: Address feedbackReinUsesLisp
format_lookup_table: Drop bitfields format_lookup_table: Use std::array for definition table format_lookup_table: Include <limits> instead of <numeric>
2019-11-14texture_cache: Use a table instead of switch for texture formatsReinUsesLisp
Use a large flat array to look up texture formats. This allows us to properly implement formats with different component types. It should also be faster.
2019-11-14Merge pull request #3113 from lioncash/semiRodrigo Locatti
common_funcs: Remove semicolons from INSERT_PADDING_* macros
2019-11-14common_funcs: Remove semicolons from INSERT_PADDING_* macrosLioncash
Makes code that uses the macros consistent by requiring the lines to be terminated with a semicolon.
2019-11-14texture_cache: Drop abstracted ComponentTypeReinUsesLisp
Abstracted ComponentType was not being used in a meaningful way. This commit drops its usage. There is one place where it was being used to test compatibility between two cached surfaces, but this one is implied in the pixel format. Removing the component type test doesn't change the behaviour.
2019-11-14correct the implementation of RGBA16UIgreggameplayer
2019-11-14Merge pull request #3089 from SciresM/play_statisticsbunnei
Implement stub for IApplicationFunctions::QueryApplicationPlayStatisticsByUid
2019-11-14Merge pull request #3093 from lioncash/mbedtlsbunnei
core: Migrate off deprecated mbedtls functions
2019-11-14Merge pull request #3092 from lioncash/utilbunnei
key_manager: Make use of IOFile in WriteKeyToFile()
2019-11-14Merge pull request #3081 from ReinUsesLisp/fswzadd-shufflesFernando Sahmkow
shader: Implement FSWZADD and reimplement SHFL
2019-11-13Merge pull request #3107 from lioncash/hashableRodrigo Locatti
common/hash: Remove unused HashableStruct
2019-11-13Merge pull request #3104 from lioncash/xtsRodrigo Locatti
xts_archive: Remove redundant std::string constructor
2019-11-13common/hash: Remove unused HashableStructLioncash
This is unused, so it can be removed. There's better ways of ensuring zeroed out padding bits, like using zero-initialization, anyhow.
2019-11-13Merge pull request #3103 from lioncash/cfuncRodrigo Locatti
common_funcs: silence sign-conversion warnings in MakeMagic()
2019-11-13xts_archive: Remove redundant std::string constructorLioncash
We can just call the .data() member of path instead of constructing a completely new string.
2019-11-13common_funcs: silence sign-conversion warnings in MakeMagic()Lioncash
We can trivially resolve these by casting the characters to unsigned values and then shifting the bits.
2019-11-13Merge pull request #3084 from ReinUsesLisp/cast-warningsRodrigo Locatti
video_core: Treat implicit conversions as errors
2019-11-12key_manager: Make use of IOFile in WriteKeyToFile()Lioncash
This properly handles unicode-based paths on Windows, while opening a raw stream doesn't out-of-the-box. Prevents file creation from potentially failing on Windows PCs that make use of unicode characters in their save paths (e.g. writing to a user's AppData folder, where the user has a name with non-ASCII characters).
2019-11-12core: Migrate off deprecated mbedtls functionsLioncash
These functions are marked for deprecation and it's recommended that the *_ret variants be used instead.
2019-11-12externals: Update httplibLioncash
Since the introduction of this library, numerous improvements have been made. Notably, many of the warnings we would get by simply including the library header have now been fixed. This makes it much easier to make conversion warning an error.
2019-11-12service: Resolve sign conversion errorsLioncash
These are fairly trivial to resolve and most of the changes entail using RESULT_UNKNOWN over ResultCode(-1).
2019-11-12perf_stats: Resolve implicit int to double conversion errorLioncash
We simply need to turn the literal argument to std::accumulate into a double, rather than an int.
2019-11-12loader; Resolve sign conversion/truncation errorsLioncash
2019-11-12gdbstub: Resolve sign conversion errorsLioncash
2019-11-12kernel: Resolve sign conversion warningsLioncash
Uncovered a bug within Thread's SetCoreAndAffinityMask() where an unsigned variable (ideal_core) was being compared against "< 0", which would always be a false condition. We can also get rid of an unused function (GetNextProcessorId) which contained a sign mismatch warning.
2019-11-12file_sys: Resolve sign conversion warningsLioncash
Resolves a few trivial sign conversion/mismatch errors.
2019-11-12result: Add default error code for the ResultCode(-1) caseLioncash
Will be used to reduce the overall duplication of the same magic value all over the codebase in following changes.
2019-11-12crypto: Resolve sign-conversion warningsLioncash
2019-11-12result: Resolve sign-coversion warningsLioncash
The constructor was implicitly using signed->unsigned conversions to produce 0xFFFFFFFF. We can just specify this explicitly with UINT32_MAX.
2019-11-12arm_unicorn: Resolve sign conversion warningsLioncash
While we're at it, this also resolves a type truncation warning as well, given the code was truncating from a 64-bit value to a 32-bit one.
2019-11-12CMakeLists: Make most implicit type conversion warnings errors on MSVCLioncash
Quite frequently there have been cases where code has been merged into the core that produces warning. In order to prevent this from occurring, we can make the compiler flag these cases and allow our CI to flag down any code that would generate these warnings. This is beneficial given silent conversions from signed/unsigned can result in logic bugs. This forces one writing changes to be explicit about when signedness conversions are desirable, rather than leaving it up to readers' interpretation. Currently the codebase isn't in a state where it will build successfully with this change applied, but this will be addressed in subsequent follow-up changes. This set of changes will focus on making it build properly with these changes for MSVC as a starting point for basic coverage.