- 26 May, 2020 2 commits
-
-
ReinUsesLisp authored
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.
-
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 5 commits
-
-
Tobias authored
-
bunnei authored
nifm: correct assert string in CreateTemporaryNetworkProfile
-
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 3 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.
-
bunnei authored
hid: Clear keyboard states & fix logic issue
-
- 16 May, 2020 7 commits
-
-
bunnei authored
FS: Improve emulation of device saves
-
bunnei authored
nv_flinger: Use enum for pixel format instead of u32
-
bunnei authored
DmaPusher: Remove dead code in step
-
David Marcec authored
-
David Marcec authored
-
David Marcec authored
-
bunnei authored
vk_rasterizer: Match OpenGL's FlushAndInvalidate behavior
-
- 15 May, 2020 2 commits
-
-
ReinUsesLisp authored
Match OpenGL's behavior. This can fix or simplify bisecting issues on Vulkan.
-
Morph authored
-
- 14 May, 2020 3 commits
- 13 May, 2020 1 commit
-
-
bunnei authored
shader_ir: Add separate instructions for ordered and unordered comparisons and fix NE on GLSL
-
- 12 May, 2020 3 commits
-
-
bunnei authored
-
James Rowe authored
-
David Marcec authored
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
-
- 11 May, 2020 1 commit
-
-
bunnei authored
vk_graphics_pipeline: Implement rasterizer_enable on Vulkan
-