Liam
9245b426e3
shader_recompiler: fix emulation of 3D textureGrad
2023-09-01 22:41:01 -04:00
Fernando Sahmkow
710ca3ca49
Shader Recompiler: Auto stub special registers and dump pipelines on exception.
2023-08-27 03:47:04 +02:00
Fernando Sahmkow
c03f0b3c89
Shader Recomnpiler: implement textuzreGrad 3D emulation constant propagation
2023-08-18 22:17:02 -04:00
Kelebek1
dfb7fc8293
Fix shader dumps with nvdisasm
...
skip fragment shaders when rasterizer is disabled
initialize env_ptrs
2023-08-03 15:30:27 +01:00
Liam
dad0d076ee
ssa_rewrite_pass: use proper maps
2023-07-23 11:38:01 -04:00
ameerj
405eae3734
shaders: Track local memory usage
2023-06-25 18:59:33 -04:00
ameerj
b198339580
emit_glasm: Fix lmem size computation
2023-06-25 18:43:52 -04:00
Kelebek1
5da70f7197
Remove memory allocations in some hot paths
2023-06-22 08:05:10 +01:00
Matías Locatti
42b2bc204f
Merge pull request #10699 from liamwhite/conditional-barrier
...
shader_recompiler: remove barriers in conditional control flow when device lacks support
2023-06-12 16:50:59 -03:00
Liam
2f1e87dd83
shader_recompiler: translate f64 to f32 when unsupported on host
2023-06-10 12:38:49 -04:00
Liam
2bb7ea436d
shader_recompiler: remove barriers in conditional control flow when device lacks support
2023-06-10 12:30:39 -04:00
bunnei
ca4bf3844e
video_core: Enable support_descriptor_aliasing on Turnip, disable storage atomic otherwise.
2023-06-03 00:05:58 -07:00
Billy Laws
b4a12b889e
Avoid using VectorExtractDynamic for subgroup mask on Adreno GPUs
...
This crashes their shader compiler for some reason.
2023-06-03 00:05:31 -07:00
Billy Laws
158a1896ec
Implement scaled vertex buffer format emulation
...
These formats are unsupported by mobile GPUs so they need to be emulated in shaders instead.
2023-06-03 00:05:31 -07:00
Liam
13d25063a1
shader_recompiler: fix copy-paste error
2023-05-26 00:36:12 -04:00
Kelebek1
e42b4a16b6
Fix Tears of the Kingdom flickering clouds and depths.
2023-05-11 19:25:24 +01:00
Kelebek1
b566c98258
Define SampleMask as an array
2023-04-30 18:37:37 +01:00
Wollnashorn
82b78cde73
shader_recompiler: Use vector arithmetic rather than component-wise in ImageGatherSubpixelOffset
...
Should be more efficient and better readable
2023-04-08 16:13:08 +02:00
Wollnashorn
fe91066f46
video_core: Enable ImageGather with subpixel offset on Intel
2023-04-08 16:12:44 +02:00
Wollnashorn
780240e697
shader_recompiler: Add subpixel offset for correct rounding at ImageGather
...
On AMD a subpixel offset of 1/512 of the texel size is applied to the texture coordinates at a ImageGather call to ensure the rounding at the texel centers is done the same way as in Maxwell or other Nvidia architectures.
See https://www.reedbeta.com/blog/texture-gathers-and-coordinate-precision/ for more details why this might be necessary.
This should fix shadow artifacts at object edges in Zelda: Breath of the Wild (#9957 , #6956 ).
2023-04-08 16:12:30 +02:00
Liam
600f325d87
general: fix spelling mistakes
2023-03-12 11:33:01 -04:00
ameerj
2ce5bb9bd6
buffer_cache: Add logic for non-NVN storage buffer tracking
2023-02-25 16:24:21 -05:00
liamwhite
a4d0663158
Merge pull request #9588 from liamwhite/bylaws-reverts
...
Revert "shader_recompiler: Align SSBO offsets to meet host requirements"
2023-02-19 13:11:57 -05:00
ameerj
04139cb3ed
glsl_emit_context: Remove redeclarations of gl_SampleID and gl_SampleMask
...
These built-ins seem to be available without needing to be declared for fragment shaders, similar i.e. to gl_FragDepth
2023-02-08 19:34:39 -05:00
ameerj
4678f53463
shader_recompiler/value.h: Remove lingering references to S32
2023-02-04 00:13:47 -05:00
liamwhite
a9a860a4f7
Merge pull request #9703 from ameerj/txq-ms
...
shaders: Fix TXQ with MSAA textures
2023-02-01 22:38:00 -05:00
Levi Behunin
d5fc56db4b
Move to Clang Format 15
...
Depends on https://github.com/yuzu-emu/build-environments/pull/69
clang-15 primary run
2023-01-29 17:49:42 -07:00
ameerj
a63e17566a
spirv: Fix TXQ with MSAA textures
2023-01-29 13:47:30 -05:00
ameerj
a1d8306bfd
emit_glasm_image: Fix TXQ with MSAA textures
2023-01-29 13:42:34 -05:00
ameerj
08feba2b56
emit_glsl_image: Implement TXQ with MSAA textures
...
Also fixes for texture buffers, which do not have mips eithers.
2023-01-29 13:31:47 -05:00
liamwhite
3aab574521
Merge pull request #9699 from ameerj/texture-pass-desc
...
texture_pass: Fix texture descriptors comparisons
2023-01-29 12:27:41 -05:00
liamwhite
149271923c
Merge pull request #9698 from ameerj/texture-pass-handle
...
texture_pass: Refactor texture handle retrieval
2023-01-29 12:27:33 -05:00
liamwhite
208e635f37
Merge pull request #9694 from ameerj/txq-mips
...
shader_recompiler: TXQ: Skip QueryLevels when possible
2023-01-29 12:27:26 -05:00
ameerj
0d820f2dab
texture_pass: Fix texture descriptors comparisons
2023-01-28 21:23:52 -05:00
ameerj
9bb429999e
texture_pass: Refactor texture handle retrieval
2023-01-28 21:11:38 -05:00
bunnei
40e7d78179
Merge pull request #9687 from ameerj/ogl-shader-ms
...
glasm, glsl: Implement multisampled Image Fetch
2023-01-28 16:32:11 -08:00
bunnei
159aab9a97
Merge pull request #9682 from ameerj/shader-s32
...
shader_recompiler: Remove S32 IR type
2023-01-28 14:00:11 -08:00
ameerj
2c2e019a44
shader_recompiler: TXQ: Skip QueryLevels when possible
2023-01-28 16:25:18 -05:00
ameerj
c0cedbae94
emit_glsl_image: Fix ImageFetch for MSAA textures
2023-01-28 14:39:27 -05:00
ameerj
0f795603fc
glasm: Add MS sampler types
2023-01-27 02:09:18 -05:00
ameerj
5710e90150
glsl: Add MS sampler types
2023-01-27 02:09:17 -05:00
ameerj
93cc6e4d99
shader_recompiler: Remove S32 IR type
...
The frontend IR opcodes do not distinguish between signed and unsigned integer types.
Fixes broken shaders when IR validation/graphics debugging is enabled for shaders that used BitCastS32F32
2023-01-25 22:03:15 -05:00
Liam
76a4356e55
spirv: fix multisampled image fetch
2023-01-23 12:03:19 -05:00
Liam
505923f0f3
Revert "shader_recompiler: Align SSBO offsets to meet host requirements"
...
This reverts commit 8804a4eb23
.
2023-01-07 15:50:58 -05:00
Billy Laws
d34275a260
Avoid OOB array access reading passthrough attr mask
...
YFC 1.5 extended the size of the varying mask used to hold passthrough attrs without considering this
2023-01-07 18:38:21 +00:00
Billy Laws
58fec43768
Run clang-format
2023-01-05 22:18:10 +00:00
Billy Laws
68ed60cee4
shader_recompiler: Fix shuffle partitioning for >64 invoc-per-subgroup GPUs
...
The existing implementation only supports 64 invoc-per-subgroup GPUs, and misbehaves on adreno when invocations need to be split into 4 emulated subgroups.
2023-01-05 22:13:07 +00:00
Billy Laws
625a4af73a
shader_recompiler: Add support for lowering geometry passthrough
...
Reuses most of the existing code for generating the gl_Layer passthrough. Fixes geometry in Nier: Automata on GPUs without HW passthrough support.
2023-01-05 22:13:07 +00:00
Billy Laws
8804a4eb23
shader_recompiler: Align SSBO offsets to meet host requirements
...
We can take advantage of SSBO addresses being passed in a constant bufer to account for the extra alignment requirements in the shader itself.
2023-01-05 22:13:07 +00:00
Billy Laws
3f0985c7b0
shader_recompiler: SPIRV: Only enable int64 feature when supported
2023-01-05 22:13:07 +00:00
Billy Laws
c1cc99584c
shader_recompiler: Add comparison operators to descriptor types
2023-01-05 22:13:07 +00:00
Billy Laws
bbfad79c89
Vulkan: Add a workaround for input_position on Adreno drivers
...
Adreno drivers will crash compiling geometry shaders if the input position is not wrapped in a gl_in struct.
2023-01-05 22:13:07 +00:00
Fernando Sahmkow
a0c697124c
Video_core: Address feedback
2023-01-04 14:39:42 -05:00
Fernando Sahmkow
a045e860dd
ShaderCompiler: Inline driver specific constants.
2023-01-03 16:29:25 -05:00
Fernando Sahmkow
d09aa0182f
MacroHLE: Final cleanup and fixes.
2023-01-01 16:43:58 -05:00
Fernando Sahmkow
8d694701bc
MacroHLE: Add OpenGL Support
2023-01-01 16:43:58 -05:00
Fernando Sahmkow
aad0cbf024
MacroHLE: Add HLE replacement for base vertex and base instance.
2023-01-01 16:43:57 -05:00
liamwhite
5da72a891f
Merge pull request #7450 from FernandoS27/ndc-vulkan
...
Vulkan: Add support for VK_EXT_depth_clip_control.
2022-12-17 16:08:10 -05:00
FernandoS27
0104e28fe4
Vulkan: Add support for VK_EXT_depth_clip_control.
2022-12-13 21:39:18 -05:00
Liam
77b0d01639
spirv_emit_context: declare GroupNonUniform capability for SubgroupLocalInvocationId
2022-12-13 18:25:53 -05:00
liamwhite
75e16547f8
Merge pull request #9300 from ameerj/pch
...
CMake: Use precompiled headers to improve compile times
2022-12-03 14:10:06 -05:00
liamwhite
22aff09b33
Merge pull request #9289 from liamwhite/fruit-company
...
general: fix compile for Apple Clang
2022-12-03 12:09:21 -05:00
Matías Locatti
c043ba8467
Merge pull request #9303 from liamwhite/new-vulkan-init
...
Vulkan: update initialization
2022-12-02 18:32:54 -03:00
Liam
3ef006b5ab
shader_recompiler: add gl_Layer translation GS for older hardware
2022-12-01 09:51:27 -05:00
ameerj
5b5612c1cc
CMake: Consolidate common PCH headers
2022-11-30 18:30:30 -05:00
ameerj
37bc5118ea
CMake: Use precompiled headers
2022-11-29 18:50:49 -05:00
ameerj
cae6c13ffb
value.h: remove recursive include
2022-11-29 18:50:49 -05:00
Liam
2956a33463
Vulkan: update initialization
...
Co-authored-by: bylaws <bylaws@users.noreply.github.com>
2022-11-27 14:58:28 -05:00
Liam
9737615948
general: fix compile for Apple Clang
2022-11-22 22:22:28 -05:00
Liam
0d033e6b45
spirv_emit_context: add missing flat decoration
2022-11-18 22:05:28 -05:00
liamwhite
9c67334031
Merge pull request #9253 from vonchenplus/attr_layer
...
shader: Implement miss attribute layer
2022-11-18 22:04:18 -05:00
FengChen
60e0d4a177
shader: Implement miss attribute layer
2022-11-17 22:45:14 +08:00
liamwhite
c973029374
Merge pull request #9167 from vonchenplus/tess
...
video_core: Fix few issues in Tess stage
2022-11-11 08:03:40 -05:00
Morph
c9bb888adf
ir/texture_pass: Use host_info instead of querying Settings::values ( #9176 )
2022-11-11 03:32:53 +01:00
FengChen
a4472b5526
video_core: Fix few issues in Tess stage
2022-11-07 15:42:42 +08:00
Feng Chen
75596c07e0
video_core: Fix SNORM texture buffer emulating error ( #9001 )
2022-11-04 02:39:42 -04:00
bunnei
38e4382f53
Merge pull request #8858 from vonchenplus/mipmap
...
video_core: Generate mipmap texture by drawing
2022-11-03 22:21:58 -07:00
Feng Chen
165bce3c2d
Revert "shader_recompiler/dead_code_elimination: Add DeadBranchElimination pass"
2022-10-25 12:57:25 +08:00
bunnei
cbb6c24215
Merge pull request #8873 from vonchenplus/fix_legacy_location_error
...
video_core: Fix legacy to generic location unpaired
2022-10-24 10:50:24 -07:00
Morph
3822e31323
CMakeLists: Disable C4100 and C4324
...
Disabling C4100 is similar to -Wno-unused-parameter
2022-10-22 15:02:04 -04:00
Morph
cae108404a
CMakeLists: Remove redundant warnings
...
These warnings are already included in /W3.
2022-10-22 15:02:04 -04:00
Morph
f3c40f4a20
CMakeLists: Treat MSVC warnings as errors
2022-10-22 15:02:04 -04:00
Morph
e6ab1f673b
general: Enforce C4800 everywhere except in video_core
2022-10-22 15:02:04 -04:00
Morph
93297d14d8
CMakeLists: Remove all redundant warnings
...
These are already explicitly or implicitly set in src/CMakeLists.txt
2022-10-22 15:02:04 -04:00
FengChen
20139f8a55
Address feedback
2022-10-17 09:40:44 +08:00
Liam White
afab6c143c
General: Fix compilation for GCC
2022-10-06 21:00:53 +02:00
Fernando Sahmkow
3d02143476
Shader Decompiler: implement better tracking for Vulkan samplers.
2022-10-06 21:00:53 +02:00
Fernando Sahmkow
ba34cf0a69
Shader Decompiler: Check for shift when deriving composite samplers.
2022-10-06 21:00:52 +02:00
Fernando Sahmkow
a283eda320
Shader Decompiler: Fix dangerous behavior of invalid iterator insertion.
2022-10-06 21:00:52 +02:00
Liam
ae7062d522
shader_recompiler: add extended LDC to GLASM backend
2022-10-02 17:32:54 -04:00
Andrea Pappacoda
4a493cb10f
chore: fix some typos
...
Fix some typos reported by Lintian
2022-09-23 13:38:23 +02:00
FengChen
d4cb0eac87
video_core: Fix legacy to generic location unpaired
2022-09-20 12:03:31 +08:00
Feng Chen
c864cb5772
Merge branch 'master' into mipmap
2022-09-20 11:56:43 +08:00
FengChen
9a95c7fa14
video_core: Generate mipmap texture by drawing
2022-09-20 11:55:43 +08:00
Morph
9533365486
style: General style changes to match with the rest of the codebase
2022-08-31 08:51:47 -04:00
FengChen
b2a6dde438
video_code: support rectangle texture
2022-08-25 12:45:58 +08:00
Kelebek1
f580946b0d
Add missed shader defines. Fixes Xenoblade Chronicles 3 booting with Vulkan.
2022-07-29 06:12:39 +01:00
Andrea Pappacoda
cdb240f3d4
chore: make yuzu REUSE compliant
...
[REUSE] is a specification that aims at making file copyright
information consistent, so that it can be both human and machine
readable. It basically requires that all files have a header containing
copyright and licensing information. When this isn't possible, like
when dealing with binary assets, generated files or embedded third-party
dependencies, it is permitted to insert copyright information in the
`.reuse/dep5` file.
Oh, and it also requires that all the licenses used in the project are
present in the `LICENSES` folder, that's why the diff is so huge.
This can be done automatically with `reuse download --all`.
The `reuse` tool also contains a handy subcommand that analyzes the
project and tells whether or not the project is (still) compliant,
`reuse lint`.
Following REUSE has a few advantages over the current approach:
- Copyright information is easy to access for users / downstream
- Files like `dist/license.md` do not need to exist anymore, as
`.reuse/dep5` is used instead
- `reuse lint` makes it easy to ensure that copyright information of
files like binary assets / images is always accurate and up to date
To add copyright information of files that didn't have it I looked up
who committed what and when, for each file. As yuzu contributors do not
have to sign a CLA or similar I couldn't assume that copyright ownership
was of the "yuzu Emulator Project", so I used the name and/or email of
the commit author instead.
[REUSE]: https://reuse.software
Follow-up to 01cf05bc75
2022-07-27 12:53:49 +02:00
Mai
103997ee56
Merge pull request #8383 from Morph1984/shadow-of-the-past
...
yuzu: Make variable shadowing a compile-time error
2022-06-14 21:08:58 -04:00
Liam
d11547024c
general: fix compilation on GCC 12
2022-06-13 20:09:30 -04:00