bunnei
058ec22787
Merge pull request #3982 from ReinUsesLisp/membar-cts
...
shader/other: Implement MEMBAR.CTS
2020-05-30 11:51:42 +07:00
ReinUsesLisp
f2d1aa97ad
shader/other: Fix hardcoded value in S2R INVOCATION_INFO
...
Geometry shaders built from Nvidia's compiler check for bits[16:23] to
be less than or equal to 0 with VSETP to default to a "safe" value of
0x8000'0000 (safe from hardware's perspective). To avoid hitting this
path in the shader, return 0x00ff'0000 from S2R INVOCATION_INFO.
This seems to be the maximum number of vertices a geometry shader can
emit in a primitive.
2020-05-30 01:49:14 +07:00
ReinUsesLisp
1ee1a5d3d6
texture_cache: More relaxed reconstruction
...
Only reupload textures when they've not been modified from the GPU.
2020-05-29 23:56:52 +07:00
David Marcec
8118ea160b
Favor switch case over jump table
...
Easier to read and will emit a jump table automatically.
2020-05-30 12:23:58 +07:00
David Marcec
b032ebdfee
Implement macro JIT
2020-05-30 11:40:04 +07:00
Fernando Sahmkow
9d9ffe0f94
Merge pull request #4017 from ogniK5377/xbyak
...
Add xbyak external
2020-05-29 21:38:34 +07:00
David Marcec
d0bdd26c26
Add xbyak external
2020-05-30 10:55:27 +07:00
ReinUsesLisp
e454f7e7a7
texture_cache: Only copy textures that were modified from host
2020-05-29 20:12:46 +07:00
ReinUsesLisp
dd70e097cc
texture_cache: Reload textures when number of resources mismatch
2020-05-29 20:10:58 +07:00
bunnei
87b272699f
Merge pull request #4007 from ReinUsesLisp/reduce-logs
...
maxwell_3d: Reduce severity of logs that can be spammed
2020-05-29 17:29:17 +07:00
ReinUsesLisp
5616be12be
vk_rasterizer: Skip transform feedbacks when extension is unavailable
...
Avoids calling transform feedback procedures when
VK_EXT_transform_feedback is not available.
2020-05-29 03:05:29 +07:00
ReinUsesLisp
5b37cecd76
texture_cache: Handle overlaps with multiple subresources
...
Implement more surface reconstruct cases. Allow overlaps with more than
one layer and mipmap and copies all of them to the new texture.
- Fixes textures moving around objects on Xenoblade games
2020-05-29 02:57:30 +07:00
David Marcec
43bf860b22
kernel: ResourceLimit::Reserve remove useless while loop
...
Timeout is a u64, it will always be >= 0
2020-05-29 13:48:01 +07:00
bunnei
1bb3122c1f
Merge pull request #3991 from ReinUsesLisp/depth-sampling
...
texture_cache: Implement depth stencil texture swizzles
2020-05-28 23:33:38 +07:00
bunnei
5242b21524
Merge pull request #4002 from lat9nq/fix-nix-mod-directories
...
patch_manager: Add support for case-sensitivity on Linux
2020-05-28 22:36:39 +07:00
ReinUsesLisp
9b06e823ee
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.
2020-05-28 18:23:25 +07:00
ReinUsesLisp
fc153f6bcd
format_lookup_table: Implement G24S8 format as S8Z24
2020-05-28 17:16:07 +07:00
lat9nq
f57cbd9f24
Make copying directory string more concise
2020-05-28 13:33:50 +07:00
lat9nq
326403518d
Address requested changes
2020-05-28 13:30:22 +07:00
bunnei
099ac9c2a8
Merge pull request #3993 from ReinUsesLisp/fix-zla
...
gl_shader_manager: Unbind GLSL program when binding a host pipeline
2020-05-28 12:15:22 +07:00
lat9nq
136c563f76
*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'.
2020-05-27 23:12:56 +07:00
bunnei
640f0d1cec
Merge pull request #3954 from Morph1984/log-memory-amount
...
main: Log host system memory parameters
2020-05-27 22:58:51 +07:00
ReinUsesLisp
3b2dee88e6
buffer_cache: Avoid copying twice on certain cases
...
Avoid copying to a staging buffer on non-granular memory addresses.
Add a callable argument to StreamBufferUpload to be able to copy to the
staging buffer directly from ReadBlockUnsafe.
2020-05-27 23:05:50 +07:00
ReinUsesLisp
b8b6f94ba9
texture_cache: Use unordered_map::find instead of operator[] on hot code
2020-05-27 17:59:04 +07:00
bunnei
630fc12d4e
Merge pull request #3961 from Morph1984/bgra8_srgb
...
maxwell_to_vk: Add format B8G8R8A8_SRGB and add Attachable capability for B8G8R8A8_UNORM
2020-05-27 16:44:22 +07:00
ReinUsesLisp
d2b2557542
texture_cache: Use small vector for surface vectors
...
This avoids most heap allocations when collecting surfaces into a
vector.
2020-05-27 17:31:14 +07:00
ReinUsesLisp
f3f056c3b6
maxwell_3d: Initialize line widths
...
Initialize line widths to avoid setting a line width of zero.
2020-05-27 16:53:43 +07:00
ReinUsesLisp
31eb658fea
maxwell_3d: Initialize polygon modes
...
NVN expects this to be initialized as Fill, otherwise games that never
bind a rasterizer state will log an invalid polygon mode.
2020-05-27 16:52:52 +07:00
Morph
b2af304918
Fix macOS code and change "Swapfile" to "Swap"
2020-05-27 11:21:59 +07:00
ReinUsesLisp
32e6727dae
shader/other: Implement MEMBAR.CTS
...
This silences an assertion we were hitting and uses workgroup memory
barriers when the game requests it.
2020-05-27 00:19:45 +07:00
ReinUsesLisp
b2c4521a91
texture_cache: Fix layered null surfaces
...
Null texture cubes were not considered arrays, causing issues on Vulkan
and OpenGL when creating views.
2020-05-26 17:50:08 +07:00
ReinUsesLisp
b17fe82973
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.
2020-05-26 17:50:08 +07:00
ReinUsesLisp
8bba84a401
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.
2020-05-26 17:44:50 +07:00
ReinUsesLisp
606a62d4c7
gl_rasterizer: Port front face flip check from Vulkan
...
While Vulkan was assuming we had no negative viewports, OpenGL code
was assuming we had them. Port the old code from Vulkan to OpenGL,
checking if the first viewport is negative before flipping faces.
This is not a complete implementation since we only check for the first
viewport to be negative. That said, unless a game is using Vulkan,
OpenGL and NVN games should be fine here, and we can always compare with
our Vulkan backend to see if there's a difference.
2020-05-26 16:33:50 +07:00
ReinUsesLisp
efe7b7483b
fixed_pipeline_state: Remove unnecessary check for front faces flip
...
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-26 16:32:27 +07:00
bunnei
508242c267
Merge pull request #3981 from ReinUsesLisp/bar
...
shader/other: Implement BAR.SYNC 0x0
2020-05-26 14:40:13 +07:00
bunnei
623d9c47a2
Merge pull request #3980 from ReinUsesLisp/red-op
...
shader/memory: Implement non-addition operations in RED
2020-05-26 12:50:41 +07:00
ReinUsesLisp
c13e2f1b75
gl_shader_manager: Unbind GLSL program when binding a host pipeline
...
Fixes regression in Link's Awakening caused by 420cc13248
2020-05-26 04:20:39 +07:00
bunnei
86345c126a
Merge pull request #3978 from ReinUsesLisp/write-rz
...
shader_decompiler: Visit source nodes even when they assign to RZ
2020-05-25 21:31:33 +07:00
bunnei
1adabdac7f
Merge pull request #3905 from FernandoS27/vulkan-fix
...
Correct a series of crashes and intructions on Async GPU and Vulkan Pipeline
2020-05-24 15:23:38 +07:00
bunnei
325e7eed3c
Merge pull request #3964 from ReinUsesLisp/arb-integration
...
renderer_opengl: Add assembly program code paths
2020-05-24 00:34:12 +07:00
bunnei
487dd05170
Merge pull request #3979 from ReinUsesLisp/thread-group
...
shader/other: Implement thread comparisons (NV_shader_thread_group)
2020-05-24 00:33:06 +07:00
bunnei
6a5cf1473e
Merge pull request #3975 from ReinUsesLisp/fast-bufcache
...
buffer_cache: Replace boost::icl::interval_map with boost::intrusive::set
2020-05-24 00:32:44 +07:00
Tobias
d0a9caa08f
yuzu/discord_impl: Update the applicationID ( #3977 )
2020-05-22 18:26:26 +07:00
bunnei
1306608b2a
Merge pull request #3970 from VolcaEM/patch-1
...
nifm: correct assert string in CreateTemporaryNetworkProfile
2020-05-21 23:46:42 +07:00
ReinUsesLisp
5d0986a53b
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.
2020-05-21 23:20:43 +07:00
ReinUsesLisp
103809a0ca
shader/memory: Implement non-addition operations in RED
...
Trivially implement these instructions. They are used in Astral Chain.
2020-05-21 23:19:46 +07:00
ReinUsesLisp
e2b67a868b
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
2020-05-21 23:18:37 +07:00
ReinUsesLisp
ed4e324991
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.
2020-05-21 23:16:03 +07:00
ReinUsesLisp
434856c636
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.
2020-05-21 23:16:03 +07:00