Matías Locatti
840d5520d2
Changes to avoid warnings in SSE4.2 optimized SPIR-V
2021-12-28 17:35:55 -03:00
ameerj
37addf7a94
emit_glasm_context_get_set: Fix GetAttribute return value type.
...
GetAttribute expects an F32 result type at the IR level, this fixes the return value of attributes which were not returning an F32
2021-12-24 20:45:07 -05:00
ameerj
640fc1418b
emit_glsl_floating_point: Fix FPNeg on newer Nvidia drivers
2021-12-24 20:03:54 -05:00
vonchenplus
4908a07c20
Address format clang
2021-12-18 14:27:07 +08:00
vonchenplus
6ebc972c2b
Remove spirv handle legacy related code
2021-12-18 14:08:50 +08:00
vonchenplus
94652e122d
Remove glsl handle legacy related code
2021-12-18 14:03:40 +08:00
Feng Chen
e49184e606
Merge branch 'yuzu-emu:master' into convert_legacy
2021-12-18 13:57:14 +08:00
Mai M
edbde7a220
Merge pull request #7522 from ameerj/shader-recompiler-filenames
...
shader_recompiler/backend: Minor organization and refactoring to reduce compile time overhead
2021-12-07 18:27:50 -05:00
ameerj
7105204a7e
emit_spirv: Reduce emit_spirv.h include overhead
...
emit_spirv.h is included in video_core, which was propagating further includes that video_core did not depend on.
2021-12-05 18:11:19 -05:00
ameerj
1e1f7b3234
glasm: Move implemented instructions from not_implemented.cpp
2021-12-05 18:11:19 -05:00
ameerj
f32b2bcd20
shader_recompiler: Adjust emit_context includes
2021-12-05 18:11:19 -05:00
ameerj
5286a7bc4c
shader_recompiler: Rename backend emit_context files
2021-12-05 16:33:44 -05:00
ameerj
41aec2773f
general: Add missing copyright notices
2021-12-05 16:18:53 -05:00
Feng Chen
4dd85f86a8
Implement convert legacy to generic
2021-11-19 22:53:58 +08:00
Fernando Sahmkow
6f98690963
ShaderCache: Better fix for Shuffling gl_FragCoord
2021-11-16 22:11:33 +01:00
FernandoS27
de1c8c5c2c
Texture Cahe/Shader decompiler: Resize PointSize on rescaling, refactor and make reaper more agressive on 4Gb GPUs.
2021-11-16 22:11:33 +01:00
ameerj
618de4e787
vulkan: Fix rescaling push constant usage
2021-11-16 22:11:31 +01:00
ameerj
581ea90062
rescaling_pass: Fix IR errors when unscalable texture types are encountered
2021-11-16 22:11:30 +01:00
ameerj
99eec162da
rescaling_pass: Logic simplification and minor style cleanup
2021-11-16 22:11:30 +01:00
ameerj
276565973f
rescaling_pass: Scale ImageFetch offset if it exists
...
Plus some code deduplication
2021-11-16 22:11:30 +01:00
ameerj
dd66384451
rescaling_pass: Enable PatchImageQueryDimensions on fragment stages
2021-11-16 22:11:30 +01:00
ameerj
b027fac794
gl_texture_cache/rescaling_pass: minor cleanup
2021-11-16 22:11:30 +01:00
ameerj
edb5844240
rescaling_pass: Fix and simplify shuffle/fragcoord pass
2021-11-16 22:11:30 +01:00
Fernando Sahmkow
b3a9c8f108
Shader: Don't rescale FragCoord if used by Shuffle
2021-11-16 22:11:30 +01:00
ameerj
68e038404c
shader, video_core: Fix GCC build errors
2021-11-16 22:11:29 +01:00
ameerj
65781f88f8
emit_spirv: Fix RescalingLayout alignment
2021-11-16 22:11:29 +01:00
Fernando Sahmkow
dfa8291526
RescalingPass: Agregate pixels on texelFetch while on Fragment Shader
2021-11-16 22:11:29 +01:00
Fernando Sahmkow
8f78444de3
shader: Fix TextureSize check on rescaling.
2021-11-16 22:11:29 +01:00
ameerj
dc28284437
emit_spirv: Fix RescalingLayout alignment
2021-11-16 22:11:29 +01:00
ReinUsesLisp
e66d5b88a6
shader: Properly scale image reads and add GL SPIR-V support
...
Thanks for everything!
2021-11-16 22:11:29 +01:00
ReinUsesLisp
fc9bb3c3fe
shader: Properly blacklist and scale image loads
2021-11-16 22:11:29 +01:00
ReinUsesLisp
cfeb161c7e
glsl/glasm: Pass and use scaling parameters in shaders
2021-11-16 22:11:29 +01:00
ameerj
f086c82e1f
gl_graphics_pipeline: Add downscale factor to shader uniforms
2021-11-16 22:11:28 +01:00
ReinUsesLisp
656adee630
spirv: Implement rescaling patching
2021-11-16 22:11:28 +01:00
ReinUsesLisp
01379c5e3c
shader/rescaling_pass: Patch more instructions
2021-11-16 22:11:28 +01:00
ReinUsesLisp
c15332c44f
shader: Add IsTextureScaled opcode
2021-11-16 22:11:28 +01:00
ReinUsesLisp
c892359d1b
shader: Add copy constructor to instructions
2021-11-16 22:11:28 +01:00
ReinUsesLisp
95761cc6a7
shader: Add integer division opcodes
2021-11-16 22:11:28 +01:00
ReinUsesLisp
e580299467
shader: Fix rescaling pass
2021-11-16 22:11:28 +01:00
ReinUsesLisp
1672e9ba09
shader: Fix resolution scaling pass
2021-11-16 22:11:27 +01:00
ReinUsesLisp
fb924ea85c
shader: Add resolution down factor opcode
2021-11-16 22:11:27 +01:00
Fernando Sahmkow
360e897ccd
ShaderDecompiler: Add initial support for rescaling.
2021-11-16 22:11:27 +01:00
bunnei
30442d8a89
Merge pull request #7260 from vonchenplus/spirv_support_legacy_attribute_v2
...
shader: Spirv support legacy attribute v2
2021-11-14 02:07:45 -08:00
Feng Chen
f2a4204245
Simply legacy attribute implement
2021-11-04 09:26:16 +08:00
bunnei
7ce29ea74e
Merge pull request #7262 from FernandoS27/Buffalo-buffalo-Buffalo-buffalo-buffalo
...
ShaderCache: Order Phi Arguments from farthest away to nearest.
2021-11-02 16:34:03 -07:00
Fernando Sahmkow
2d4bbd83e6
Shader Cahe: Fix Phi Nodes on GLASM.
2021-11-02 00:59:25 +01:00
Fernando Sahmkow
194579bc4f
ShaderCache: Fix Phi Nodes Type on OGL.
2021-11-01 22:26:17 +01:00
Fernando Sahmkow
c50ad56bf5
ShaderCache: Order Phi Arguments from farthest away to nearest.
2021-10-31 19:34:15 +01:00
vonchenplus
49f9a44235
Support gl_FogFragCoord attribute
2021-10-31 23:34:17 +08:00
Fernando S
7aa0d97eed
Merge pull request #7201 from ameerj/spirv-depth-sampling
...
emit_spirv_image: Fix depth image implicit lod sample in non-fragment stages
2021-10-30 16:45:58 +02:00
vonchenplus
36c21ff6cb
Support gl_BackSecondaryColor attribute
2021-10-26 23:14:40 +08:00
vonchenplus
92bebecf46
Support gl_FrontSecondaryColor attribute
2021-10-26 23:09:44 +08:00
vonchenplus
b04c7b6343
Support gl_BackColor attribute
2021-10-26 23:01:57 +08:00
Fernando Sahmkow
e5291e2031
TexturePass: Fix clamping of images as this allowed negative indices.
2021-10-24 20:46:36 +02:00
ameerj
06894b0711
emit_spirv_image: Fix depth image implicit lod sample in compute
...
Ensures all drivers behave the same way in this case.
2021-10-17 17:09:11 -04:00
Ameer J
3791c7ca82
Merge pull request #7077 from FernandoS27/face-down
...
A series of fixes to queries and indexed samplers.
2021-10-16 21:41:54 -04:00
Fernando Sahmkow
3f4444b552
Shader Compiler: avoid overflowed indices on indixed samplers.
2021-10-17 03:38:09 +02:00
Morph
e29f3b87f1
style: Remove extra space preceding the :: operator
2021-09-29 01:26:01 -04:00
ameerj
73666fb262
general: Update style to clang-format-12
2021-09-24 15:52:05 -04:00
Fernando Sahmkow
8984abfc76
Spir-V: Rescale the frag depth to 0,1 mode when -1,1 mode is used in Vulkan.
2021-09-15 21:30:33 +02:00
Morph
9248442bb2
Merge pull request #6948 from ameerj/amd-warp-fix
...
shaders: Fix warp instructions on 64-thread warp devices
2021-09-12 13:53:29 -04:00
bunnei
7e9163779d
Merge pull request #6962 from vonchenplus/spirv_support_legacy_attribute
...
renderer_vulkan: Spirv support glsl legacy attribute
2021-09-08 14:04:44 -07:00
Feng Chen
b1e655f898
Detail adjustment
2021-09-08 10:30:00 +08:00
Feng Chen
bbc1800c1b
Detail adjustment
2021-09-08 09:53:10 +08:00
Feng Chen
e5ca733722
Re-implement get unused location
2021-09-07 13:22:52 +08:00
Feng Chen
9cdf2383e9
Move attribute related definitions to spirv anonymous namespace
2021-09-07 12:34:35 +08:00
Feng Chen
1de9e4e121
Dynamic get unused location
2021-09-06 10:46:03 +08:00
Feng Chen
d994466a08
Implement intput and output fixed fnc textures
2021-09-06 10:36:45 +08:00
Feng Chen
a7bbaa4897
Rename parameters
2021-09-03 23:52:20 +08:00
Feng Chen
cf26f375ff
Fix create GraphicsPipelines crash
2021-09-03 22:55:53 +08:00
Feng Chen
1e2a89d306
Add input/output location
2021-09-02 23:34:51 +08:00
bunnei
b2572a56d3
Merge pull request #6900 from ameerj/attr-reorder
...
structured_control_flow: Add DemoteCombinationPass
2021-09-01 17:36:26 -07:00
ameerj
d956fb3c7c
emit_glsl_warp: Fix shuffle ops for 64-thread warp sizes
2021-08-31 16:11:25 -04:00
ameerj
5b45dfe971
emit_glsl_warp: Fix ballot related ops for 64-thread warp sizes
2021-08-31 16:11:25 -04:00
ameerj
a5d9dcf3d9
emit_spirv_warp: Fix shuffle ops for 64-thread warp sizes
2021-08-31 13:40:39 -04:00
ameerj
95213270ef
emit_spirv_warp: Fix ballot related ops for 64-thread warp sizes
2021-08-31 13:40:12 -04:00
Feng Chen
73b11f390e
Add colorfront and txtcoord support
2021-09-01 00:07:25 +08:00
ameerj
907dfbea71
structured_control_flow: Skip reordering nested demote branches.
...
Nested demote branches add complexity with combining the condition if it has not been initialized yet. Skip them for the time being.
2021-08-30 11:46:25 -04:00
ameerj
4fda7f1c82
structured_control_flow: Conditionally invoke demote reorder pass
...
This is only needed on select drivers when a fragment shader discards/demotes.
2021-08-30 11:46:24 -04:00
ameerj
862dc2b2b3
structured_control_flow: Add DemoteCombinationPass
...
Some drivers misread data when demotes are interleaved in the program. This moves demote branches to be checked at the end of the program.
Fixes "wireframe" issue in Pokemon SwSh on some drivers
2021-08-28 11:35:25 -04:00
ameerj
6e407c02d8
emit_spirv_context_get_set: Fix Get FrontFace return value
...
The IR expects GetAttribute to return an F32 value. This case was returning a U32 instead.
2021-08-26 21:37:34 -04:00
Valeri
beb7305b73
SPIR-V: Merge two ifs in EmitGetAttribute
2021-08-19 20:13:46 +03:00
Morph
db07ca6c7f
Merge pull request #6767 from ReinUsesLisp/fold-float-pack
...
shader: Fold UnpackFloat2x16 and PackFloat2x16
2021-07-30 02:07:52 -04:00
bunnei
a98f14e9b0
Merge pull request #6722 from ReinUsesLisp/xmad-opts
...
shader: Fold integer FMA from Nvidia's pattern
2021-07-29 18:45:37 -07:00
ReinUsesLisp
8c9febe8f7
shader: Fold UnpackFloat2x16 and PackFloat2x16
...
Simplifies the code a bit when possible. These instructions should be
no-ops codegen wise.
2021-07-29 21:22:52 -03:00
ReinUsesLisp
1bb46b7d64
shader: Mark ConvertF16F32 and ConvertF32F16 as fp16 instructions
...
Fixes instances where fp16 types are not declared on SPIR-V but they are
used. This shouldn't happen on master, as it's been uncovered by an
additional optimization pass.
2021-07-27 21:33:05 -03:00
Lioncash
c27ddb44de
exception: Make constructors explicit
...
Ensures that exception construction is always explicit.
2021-07-27 04:15:14 -04:00
Lioncash
e490ddf327
exception: Make what() member function nodiscard
2021-07-27 04:14:32 -04:00
Lioncash
90f3678ada
exception: Narrow down specific header
...
We can use the <exception> header instead of pulling in all of the
exception-style classes.
2021-07-27 04:09:18 -04:00
Rodrigo Locatti
c0f99558fb
Merge pull request #6724 from lioncash/nodisc-shader
...
shader_recompiler: Remove unnecessary [[nodiscard]] instances
2021-07-26 16:35:21 -03:00
Rodrigo Locatti
de0b89792c
Merge pull request #6726 from lioncash/hguard
...
emit_spirv_instructions: Add missing header guard
2021-07-26 16:35:11 -03:00
Rodrigo Locatti
3d97f1e6cf
Merge pull request #6727 from lioncash/topology
...
emit_glasm: Fix LINESS_ADJACENCY typo in InputPrimitive()
2021-07-26 16:35:03 -03:00
Rodrigo Locatti
b2b3fcdccd
Merge pull request #6723 from lioncash/shader
...
object_pool: Add missing return in Chunk move assignment operator
2021-07-26 06:01:21 -03:00
Lioncash
3e7813e49d
emit_glasm: Fix LINESS_ADJACENCY typo in InputPrimitive()
...
This should be LINES_ADJACENCY
2021-07-26 04:44:56 -04:00
Lioncash
c2915d9f2f
emit_spirv_instructions: Add missing header guard
2021-07-26 04:28:35 -04:00
Lioncash
06ca911621
shader_recompiler: Remove unnecessary [[nodiscard]] instances
...
[[nodiscard]] doesn't do anything on functions with a void return type
and causes superfluous warnings.
2021-07-26 04:23:59 -04:00
Lioncash
0b67df1f7c
control_flow: Fix duplicate switch case in OpcodeToken
...
This previously duplicated the case of the PBK case above it.
2021-07-26 04:16:34 -04:00
Lioncash
89ad9df0e9
object_pool: Add missing return in Chunk move assignment operator
...
Prevents undefined behavior from occurring.
2021-07-26 04:01:05 -04:00
ReinUsesLisp
66a0cedba3
shader: Fold integer FMA from Nvidia's pattern
...
Fold shaders doing "a * b + c" on integers from the pattern generated by
Nvidia's GL compiler.
On a somewhat complex compute shader it reduces the code size by 16
instructions from 2 matches on Turing GPUs.
On Intel as extracted from KHR_pipeline_executable_properties:
Before the optimization:
```
Instruction Count: 2057
Basic Block Count: 45
Scratch Memory Size: 14752
Spill Count: 232
Fill Count: 261
SEND Count: 610
Cycle Count: 11325
```
After the optimization:
```
Instruction Count: 2046
Basic Block Count: 44
Scratch Memory Size: 13728
Spill Count: 219
Fill Count: 268
SEND Count: 604
Cycle Count: 11367
```
2021-07-26 04:58:02 -03:00
ReinUsesLisp
09fb41dc63
shader: Use TryInstRecursive on XMAD multiply folding
...
Simplify a bit the logic.
2021-07-26 04:15:27 -03:00