- 29 May, 2020 3 commits
- 28 May, 2020 6 commits
-
-
ReinUsesLisp authored
These logs were killing performance on some games when they were spammed. Reduce them to Debug severity.
-
lat9nq authored
-
lat9nq authored
-
bunnei authored
gl_shader_manager: Unbind GLSL program when binding a host pipeline
-
lat9nq authored
Changes many patch_manager functions to use a case-less variant of GetSubdirectory. Fixes patches not showing up on *nix systems when patch directories are named with odd cases, i.e. `exeFS'.
-
bunnei authored
main: Log host system memory parameters
-
- 27 May, 2020 2 commits
- 26 May, 2020 7 commits
-
-
ReinUsesLisp authored
Null texture cubes were not considered arrays, causing issues on Vulkan and OpenGL when creating views.
-
ReinUsesLisp authored
This fixes cases where the texture swizzle was applied twice on the same draw to a texture bound to two different slots.
-
ReinUsesLisp authored
Stop ignoring image swizzles on depth and stencil images. This doesn't fix a known issue on Xenoblade Chronicles 2 where an OpenGL texture changes swizzles twice before being used. A proper fix would be having a small texture view cache for this like we do on Vulkan.
-
bunnei authored
shader/other: Implement BAR.SYNC 0x0
-
bunnei authored
shader/memory: Implement non-addition operations in RED
-
ReinUsesLisp authored
Fixes regression in Link's Awakening caused by 420cc132
-
bunnei authored
shader_decompiler: Visit source nodes even when they assign to RZ
-
- 24 May, 2020 4 commits
-
-
bunnei authored
Correct a series of crashes and intructions on Async GPU and Vulkan Pipeline
-
bunnei authored
renderer_opengl: Add assembly program code paths
-
bunnei authored
shader/other: Implement thread comparisons (NV_shader_thread_group)
-
bunnei authored
buffer_cache: Replace boost::icl::interval_map with boost::intrusive::set
-
- 22 May, 2020 7 commits
-
-
Tobias authored
-
bunnei authored
nifm: correct assert string in CreateTemporaryNetworkProfile
-
ReinUsesLisp authored
Trivially implement this particular case of BAR. Unless games use OpenCL or CUDA barriers, we shouldn't hit any other case here.
-
ReinUsesLisp authored
Trivially implement these instructions. They are used in Astral Chain.
-
ReinUsesLisp authored
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
-
ReinUsesLisp authored
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.
-
ReinUsesLisp authored
Atomic instructions can be used without returning anything and this is valid code. Remove the assert.
-
- 21 May, 2020 8 commits
-
-
ReinUsesLisp authored
-
ReinUsesLisp authored
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.
-
ReinUsesLisp authored
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.
-
ReinUsesLisp authored
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.
-
ReinUsesLisp authored
Removing shared pointers is a first step to be able to use intrusive objects and keep allocations close to one another in memory.
-
ReinUsesLisp authored
Minor style changes. Mostly done so I avoid editing it while doing other changes.
-
VolcaEM authored
-
VolcaEM authored
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
-
- 20 May, 2020 1 commit
-
-
bunnei authored
file_sys: Update SystemVersion archive to version 10.0.2
-
- 19 May, 2020 2 commits
-
-
ReinUsesLisp authored
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.
-
ReinUsesLisp authored
Add settings for assembly shaders. Currently hidden to avoid users from accidentally enabled them.
-