summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-05-26fixed_pipeline_state: Remove unnecessary check for front faces flipReinUsesLisp
The check to flip faces when viewports are negative were a left over from the old OpenGL code. This is not required on Vulkan where we have negative viewports.
2020-05-25Merge pull request #3978 from ReinUsesLisp/write-rzbunnei
shader_decompiler: Visit source nodes even when they assign to RZ
2020-05-24Merge pull request #3905 from FernandoS27/vulkan-fixbunnei
Correct a series of crashes and intructions on Async GPU and Vulkan Pipeline
2020-05-24Merge pull request #3964 from ReinUsesLisp/arb-integrationbunnei
renderer_opengl: Add assembly program code paths
2020-05-24Merge pull request #3979 from ReinUsesLisp/thread-groupbunnei
shader/other: Implement thread comparisons (NV_shader_thread_group)
2020-05-24Merge pull request #3975 from ReinUsesLisp/fast-bufcachebunnei
buffer_cache: Replace boost::icl::interval_map with boost::intrusive::set
2020-05-22yuzu/discord_impl: Update the applicationID (#3977)Tobias
2020-05-21Merge pull request #3970 from VolcaEM/patch-1bunnei
nifm: correct assert string in CreateTemporaryNetworkProfile
2020-05-21shader/other: Implement thread comparisons (NV_shader_thread_group)ReinUsesLisp
Hardware S2R special registers match gl_Thread*MaskNV. We can trivially implement these using Nvidia's extension on OpenGL or naively stubbing them with the ARB instructions to match. This might cause issues if the host device warp size doesn't match Nvidia's. That said, this is unlikely on proper shaders. Refer to the attached url for more documentation about these flags. https://www.khronos.org/registry/OpenGL/extensions/NV/NV_shader_thread_group.txt
2020-05-21shader_decompiler: Visit source nodes even when they assign to RZReinUsesLisp
Some operations like atomicMin were ignored because they returned were being stored to RZ. This operations have a side effect and it was being ignored.
2020-05-21vk_shader_decompiler: Don't assert for void returnsReinUsesLisp
Atomic instructions can be used without returning anything and this is valid code. Remove the assert.
2020-05-21buffer_cache: Remove unused boost headersReinUsesLisp
2020-05-21map_interval: Add interval allocator and drop hackReinUsesLisp
Drop the std::list hack to allocate memory indefinitely. Instead use a custom allocator that keeps references valid until destruction. This allocates fixed chunks of memory and puts pointers in a free list. When an allocation is no longer used put it back to the free list, this doesn't heap allocate because std::vector doesn't change the capacity. If the free list is empty, allocate a new chunk.
2020-05-21buffer_cache: Use boost::container::small_vector for maps in rangeReinUsesLisp
Most overlaps in the buffer cache only contain one mapped address. We can avoid close to all heap allocations once the buffer cache is warmed up by using a small_vector with a stack size of one.
2020-05-21buffer_cache: Use boost::intrusive::set for cachingReinUsesLisp
Instead of using boost::icl::interval_map for caching, use boost::intrusive::set. interval_map is intended as a container where the keys can overlap with one another; we don't need this for caching buffers and a std::set-like data structure that allows us to search with lower_bound is enough.
2020-05-21buffer_cache: Remove shared pointersReinUsesLisp
Removing shared pointers is a first step to be able to use intrusive objects and keep allocations close to one another in memory.
2020-05-21buffer_cache: Minor style changesReinUsesLisp
Minor style changes. Mostly done so I avoid editing it while doing other changes.
2020-05-21clang-formatVolcaEM
2020-05-21nifm: correct assert in CreateTemporaryNetworkProfileVolcaEM
This has been wrong since https://github.com/yuzu-emu/yuzu/commit/0432af5ad1ec34f02071f6fdc5fc78149b059f18 I haven't found a game that called this function (and I haven't tried this on a real Switch), and because of this I haven't been able to check if the number in assert OR the string in the assert is wrong, but one of the two is wrong: NetworkProfileData is 0x18E, while SfNetworkProfileData is 0x17C, according to Switchbrew Switchbrew doesn't officially say that NetworkProfileData's size is 0x18E but it's possible to calculate its size since Switchbrew provides the size and the offset of all the components of NetworkProfileData (which isn't currently implemented in yuzu, alongside SfNetworkProfileData) NetworkProfileData documentation: https://switchbrew.org/wiki/Network_Interface_services#NetworkProfileData SfNetworkProfileData documentation: https://switchbrew.org/wiki/Network_Interface_services#SfNetworkProfileData Since I trust ogniK's work on reversing NIFM, I'd assume this was just a typo in the string
2020-05-20Merge pull request #3946 from ogniK5377/sysverdat-10-0-2bunnei
file_sys: Update SystemVersion archive to version 10.0.2
2020-05-19renderer_opengl: Add assembly program code pathsReinUsesLisp
Add code required to use OpenGL assembly programs based on NV_gpu_program5. Decompilation for ARB programs is intended to be added in a follow up commit. This does **not** include ARB decompilation and it's not in an usable state. The intention behind assembly programs is to reduce shader stutter significantly on drivers supporting NV_gpu_program5 (and other required extensions). Currently only Nvidia's proprietary driver supports these extensions. Add a UI option hidden for now to avoid people enabling this option accidentally. This code path has some limitations that OpenGL compatibility doesn't have: - NV_shader_storage_buffer_object is limited to 16 entries for a single OpenGL context state (I don't know if this is an intended limitation, an specification issue or I am missing something). Currently causes issues on The Legend of Zelda: Link's Awakening. - NV_parameter_buffer_object can't bind buffers using an offset different to zero. The used workaround is to copy to a temporary buffer (this doesn't happen often so it's not an issue). On the other hand, it has the following advantages: - Shaders build a lot faster. - We have control over how floating point rounding is done over individual instructions (SPIR-V on Vulkan can't do this). - Operations on shared memory can be unsigned and signed. - Transform feedbacks are dynamic state (not yet implemented). - Parameter buffers (uniform buffers) are per stage, matching NVN and hardware's behavior. - The API to bind and create assembly programs makes sense, unlike ARB_separate_shader_objects.
2020-05-19yuzu: Add frontend settings for assembly shadersReinUsesLisp
Add settings for assembly shaders. Currently hidden to avoid users from accidentally enabled them.
2020-05-19Merge pull request #3926 from ogniK5377/keyboard-statesbunnei
hid: Clear keyboard states & fix logic issue
2020-05-16Merge pull request #3665 from bunnei/device-savebunnei
FS: Improve emulation of device saves
2020-05-16Merge pull request #3945 from ogniK5377/nvflinger-pixformatbunnei
nv_flinger: Use enum for pixel format instead of u32
2020-05-16Merge pull request #3944 from ogniK5377/dma_mgetbunnei
DmaPusher: Remove dead code in step
2020-05-16file_sys: Update SystemVersion archive to version 10.0.2David Marcec
2020-05-16nv_flinger: Use enum for pixel format instead of u32David Marcec
2020-05-16DmaPusher: Remove dead code in stepDavid Marcec
2020-05-15Merge pull request #3942 from ReinUsesLisp/flush-and-invalidatebunnei
vk_rasterizer: Match OpenGL's FlushAndInvalidate behavior
2020-05-15vk_rasterizer: Match OpenGL's FlushAndInvalidate behaviorReinUsesLisp
Match OpenGL's behavior. This can fix or simplify bisecting issues on Vulkan.
2020-05-15frontend: Set minimum window size to 640x360 instead of 1280x720 (#3413)Morph
2020-05-14Merge pull request #3927 from jroweboy/fix-bugbunnei
Frontend: Remove tracking for context wrapper
2020-05-13Merge pull request #3757 from ogniK5377/better-voice-mixingbunnei
audio_renderer: Better voice mixing and 6 channel downmixing
2020-05-13Merge pull request #3909 from bunnei/timezonebunnei
Improve time zone support
2020-05-13Merge pull request #3899 from ReinUsesLisp/float-comparisonsbunnei
shader_ir: Add separate instructions for ordered and unordered comparisons and fix NE on GLSL
2020-05-12time_zone: Use std::chrono::seconds for strong typing.bunnei
2020-05-11Frontend: Remove tracking for context wrapperJames Rowe
2020-05-12hid: Clear keyboard states & fix logic issueDavid Marcec
Previously we never cleared the states of the entries and the key would stay held down, also looping over the key bytes for each key lead to setting every bit for the key state instead of the key we wanted
2020-05-11Merge pull request #3816 from ReinUsesLisp/vk-rasterizer-enablebunnei
vk_graphics_pipeline: Implement rasterizer_enable on Vulkan
2020-05-11hle: service: time_zone_manager: Use current time zone setting.bunnei
2020-05-11common: Add module to get the current time zone.bunnei
2020-05-11core: settings: Add a setting for time zone.bunnei
2020-05-11Merge pull request #3925 from ogniK5377/hid-SendKeyboardLockKeyEventbunnei
Stub hid:SendKeyboardLockKeyEvent
2020-05-11fix logic error & scale sample volume based on voice volumeDavid Marcec
2020-05-11pass by const ref insteadDavid Marcec
2020-05-11audio_renderer: Better voice mixing and 6 channel downmixingDavid Marcec
Supersedes #3738 and #3321
2020-05-11service: fsp_srv: Stub implementation of OpenMultiCommitManager.bunnei
2020-05-11yuzu: game_list: Fix 'Open Save Data Location' for device saves.bunnei
2020-05-11file_sys: savefata_factory: Update to support DeviceSaveData.bunnei