VolcaEM
1f2f16c656
Revert IsValidNRO refactor but make it more readable
6 years ago
VolcaEM
18b88119d2
Update assert string
6 years ago
VolcaEM
68a7d8fb09
Clang-format again
6 years ago
VolcaEM
26b0ef5ce0
Use consistent variable names
6 years ago
VolcaEM
a01b0de19a
Clang-format
6 years ago
VolcaEM
2ae60c8949
Make assert strings consistent
6 years ago
VolcaEM
f801c273eb
Attempt to fix crashes in SSBU and refactor IsValidNRO
6 years ago
VolcaEM
50bf4c70cd
Address review comments
6 years ago
VolcaEM
6f126bb803
Add comment to nrr_kind
According to Atmosphére (c7026b9094/libraries/libstratosphere/include/stratosphere/ro/ro_types.hpp), nrr_kind (Atmosphére calls it "type") is 7.0.0+
6 years ago
VolcaEM
9390c0c271
ldr: Update NRR/NRO structs
This was based on Switchbrew pages:
https://switchbrew.org/wiki/NRR
https://switchbrew.org/wiki/NRO
6 years ago
bunnei
51b91cc0d9
Merge pull request #3982 from ReinUsesLisp/membar-cts
shader/other: Implement MEMBAR.CTS
6 years ago
Fernando Sahmkow
8ac1a42305
Merge pull request #4017 from ogniK5377/xbyak
Add xbyak external
6 years ago
David Marcec
4686c15c03
Add xbyak external
6 years ago
bunnei
dc5f625c7f
Merge pull request #4007 from ReinUsesLisp/reduce-logs
maxwell_3d: Reduce severity of logs that can be spammed
6 years ago
bunnei
f984cf489f
Merge pull request #3991 from ReinUsesLisp/depth-sampling
texture_cache: Implement depth stencil texture swizzles
6 years ago
bunnei
b3a0868b53
Merge pull request #4002 from lat9nq/fix-nix-mod-directories
patch_manager: Add support for case-sensitivity on Linux
6 years ago
ReinUsesLisp
d1e0f2095c
maxwell_3d: Reduce severity of logs that can be spammed
These logs were killing performance on some games when they were
spammed. Reduce them to Debug severity.
6 years ago
lat9nq
9d08039623
Make copying directory string more concise
6 years ago
lat9nq
2ad3571453
Address requested changes
6 years ago
bunnei
595b97a0d7
Merge pull request #3993 from ReinUsesLisp/fix-zla
gl_shader_manager: Unbind GLSL program when binding a host pipeline
6 years ago
lat9nq
2adc5f524d
*nix systems can read any-case patch directories
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'.
6 years ago
bunnei
78af11f39d
Merge pull request #3954 from Morph1984/log-memory-amount
main: Log host system memory parameters
6 years ago
bunnei
cd2ce9ed2d
Merge pull request #3961 from Morph1984/bgra8_srgb
maxwell_to_vk: Add format B8G8R8A8_SRGB and add Attachable capability for B8G8R8A8_UNORM
6 years ago
Morph
e9bacfbe8b
Fix macOS code and change "Swapfile" to "Swap"
6 years ago
ReinUsesLisp
6e0420fe20
shader/other: Implement MEMBAR.CTS
This silences an assertion we were hitting and uses workgroup memory
barriers when the game requests it.
6 years ago
ReinUsesLisp
387b7926c0
texture_cache: Fix layered null surfaces
Null texture cubes were not considered arrays, causing issues on Vulkan
and OpenGL when creating views.
6 years ago
ReinUsesLisp
11f626f034
gl_texture_cache: Implement small texture view cache for swizzles
This fixes cases where the texture swizzle was applied twice on the same
draw to a texture bound to two different slots.
6 years ago
ReinUsesLisp
ed74f3008b
texture_cache: Implement depth stencil texture swizzles
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.
6 years ago
bunnei
cb82125d87
Merge pull request #3981 from ReinUsesLisp/bar
shader/other: Implement BAR.SYNC 0x0
6 years ago
bunnei
54a3697cac
Merge pull request #3980 from ReinUsesLisp/red-op
shader/memory: Implement non-addition operations in RED
6 years ago
ReinUsesLisp
1188c79557
gl_shader_manager: Unbind GLSL program when binding a host pipeline
Fixes regression in Link's Awakening caused by a075bbcf36
6 years ago
bunnei
2736532246
Merge pull request #3978 from ReinUsesLisp/write-rz
shader_decompiler: Visit source nodes even when they assign to RZ
6 years ago
bunnei
e3855321f7
Merge pull request #3905 from FernandoS27/vulkan-fix
Correct a series of crashes and intructions on Async GPU and Vulkan Pipeline
6 years ago
bunnei
83ef89fc45
Merge pull request #3964 from ReinUsesLisp/arb-integration
renderer_opengl: Add assembly program code paths
6 years ago
bunnei
9995a05e94
Merge pull request #3979 from ReinUsesLisp/thread-group
shader/other: Implement thread comparisons (NV_shader_thread_group)
6 years ago
bunnei
6d46de49c3
Merge pull request #3975 from ReinUsesLisp/fast-bufcache
buffer_cache: Replace boost::icl::interval_map with boost::intrusive::set
6 years ago
Tobias
4234de3fd7
yuzu/discord_impl: Update the applicationID ( #3977 )
6 years ago
bunnei
b469288d2f
Merge pull request #3970 from VolcaEM/patch-1
nifm: correct assert string in CreateTemporaryNetworkProfile
6 years ago
ReinUsesLisp
5db0df833a
shader/other: Implement BAR.SYNC 0x0
Trivially implement this particular case of BAR. Unless games use OpenCL
or CUDA barriers, we shouldn't hit any other case here.
6 years ago
ReinUsesLisp
c5d03c7ff1
shader/memory: Implement non-addition operations in RED
Trivially implement these instructions. They are used in Astral Chain.
6 years ago
ReinUsesLisp
d4ba9c4fe5
shader/other: Implement thread comparisons (NV_shader_thread_group)
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
6 years ago
ReinUsesLisp
20f8c8dfff
shader_decompiler: Visit source nodes even when they assign to RZ
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.
6 years ago
ReinUsesLisp
262aea9b19
vk_shader_decompiler: Don't assert for void returns
Atomic instructions can be used without returning anything and this is
valid code. Remove the assert.
6 years ago
ReinUsesLisp
9223dc7a10
buffer_cache: Remove unused boost headers
6 years ago
ReinUsesLisp
f8678b635a
map_interval: Add interval allocator and drop hack
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.
6 years ago
ReinUsesLisp
4d06e9f5cc
buffer_cache: Use boost::container::small_vector for maps in range
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.
6 years ago
ReinUsesLisp
7a45f97357
buffer_cache: Use boost::intrusive::set for caching
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.
6 years ago
ReinUsesLisp
c7f9bceb80
buffer_cache: Remove shared pointers
Removing shared pointers is a first step to be able to use intrusive
objects and keep allocations close to one another in memory.
6 years ago
ReinUsesLisp
3460d01352
buffer_cache: Minor style changes
Minor style changes. Mostly done so I avoid editing it while doing other
changes.
6 years ago
VolcaEM
4f1136dfca
clang-format
6 years ago