Commit graph

582 commits

Author SHA1 Message Date
ReinUsesLisp
362888dcb0 glasm: Add passthrough geometry shader support 2021-07-22 21:51:39 -04:00
ReinUsesLisp
b1df436cef shader: Rework varyings and implement passthrough geometry shaders
Put all varyings into a single std::bitset with helpers to access it.

Implement passthrough geometry shaders using host's.
2021-07-22 21:51:39 -04:00
ameerj
99e8164b43 glsl: Better IAdd Overflow CC fix
This ensures the original operand values are not overwritten when being used in the overflow detection.
2021-07-22 21:51:39 -04:00
ReinUsesLisp
f158fe9359 shader: Remove IAbs64 2021-07-22 21:51:39 -04:00
ameerj
516c17d4d3 glsl: Fix IADD CC 2021-07-22 21:51:39 -04:00
ReinUsesLisp
04c1dca457 shader: Move loop safety tests to code emission 2021-07-22 21:51:39 -04:00
ameerj
abade15f5e glsl: Remove frag color initialization 2021-07-22 21:51:39 -04:00
ameerj
1d99187d4c glasm: Implement SetAttribute ViewportMask 2021-07-22 21:51:39 -04:00
ameerj
b79424c3bf emit_glsl_special: Skip initialization of frag_color0
Fixes rendering in Devil May Cry without regressing Ori and the Blind Forest.
2021-07-22 21:51:38 -04:00
Morph
6e8400f165 glsl: Add missing ; in EmitSetSampleMask
Fixes shader compilation in Okami HD
2021-07-22 21:51:38 -04:00
ameerj
7d20cd7656 glsl: Fix output varying initialization when transform feedback is used 2021-07-22 21:51:38 -04:00
ReinUsesLisp
10f91c42e2 spirv: Properly handle devices without int8 and int16 2021-07-22 21:51:38 -04:00
ReinUsesLisp
fe5fc478e7 spirv: Handle small storage buffer loads on devices with no support 2021-07-22 21:51:38 -04:00
ameerj
45c91da369 glsl: Fix cbuf component indexing bug falback 2021-07-22 21:51:38 -04:00
ReinUsesLisp
c4a71824d5 shader: Properly manage attributes not written from previous stages 2021-07-22 21:51:38 -04:00
ReinUsesLisp
ebd1146ea7 glsl: Only declare fragment outputs on fragment shaders 2021-07-22 21:51:38 -04:00
ReinUsesLisp
9389e71b12 shader: Split profile and runtime info headers 2021-07-22 21:51:38 -04:00
ameerj
7a9b23ea70 glsl: Obey need_declared_frag_colors to declare and initialize all frag_color
Fixes Ori and the blind forest title screen
2021-07-22 21:51:38 -04:00
ameerj
1d2c13fd7b glsl: Address rest of feedback 2021-07-22 21:51:38 -04:00
ameerj
52bd1d7788 glsl: Move gl_Position/generic attribute initialization to EmitProlgue 2021-07-22 21:51:38 -04:00
ameerj
bc50a9ef20 glsl: Conditionally use fine/coarse derivatives based on device support 2021-07-22 21:51:38 -04:00
ameerj
4e73fdbd0f glsl: Cleanup/Address feedback 2021-07-22 21:51:38 -04:00
ameerj
d344489b5b glsl: Add Shader_GLSL logging 2021-07-22 21:51:38 -04:00
ameerj
c44b3f664d glsl: Add LoopSafety instructions 2021-07-22 21:51:38 -04:00
ameerj
50e1ced397 glsl: Conditionally add EXT_texture_shadow_lod 2021-07-22 21:51:38 -04:00
ameerj
b33af69513 glsl: Add stubs for sparse queries and variable aoffi when not supported 2021-07-22 21:51:38 -04:00
ameerj
3e6f89f964 glsl: Implement legacy varyings 2021-07-22 21:51:38 -04:00
ameerj
67cc50be47 glsl: Minor cleanup 2021-07-22 21:51:38 -04:00
ameerj
5e9b073176 glsl: Fix Cbuf getters for F32 type 2021-07-22 21:51:38 -04:00
ameerj
152f718017 glsl: Add immediate index oob checking for Cbuf getters 2021-07-22 21:51:38 -04:00
ameerj
163ce47cb1 glsl: Refactor GetCbuf functions to reduce code duplication 2021-07-22 21:51:38 -04:00
ameerj
7bf5c1164e glsl: Address more feedback. Implement indexed texture reads 2021-07-22 21:51:38 -04:00
ameerj
73278ba985 glsl: Remove Signed Integer variables 2021-07-22 21:51:38 -04:00
ameerj
5d2cd1551f glsl: Address Rodrigo's feedback 2021-07-22 21:51:38 -04:00
ameerj
8ab7780015 glsl: Reorganize backend code, remove unneeded [[maybe_unused]] 2021-07-22 21:51:37 -04:00
ameerj
b247baab26 glsl: Implement SampleId and SetSampleMask
plus some minor refactoring of implementations
2021-07-22 21:51:37 -04:00
ameerj
a2f864493b glsl: Add gl_PerVertex in for GS 2021-07-22 21:51:37 -04:00
ameerj
5eb36b0913 glsl: Use existing tracking for enabling EXT_shader_image_load_formatted 2021-07-22 21:51:37 -04:00
ameerj
42ac60591e glsl: Enable early fragment tests 2021-07-22 21:51:37 -04:00
ameerj
95aedb5258 glsl: Implement more attribute getters and setters 2021-07-22 21:51:37 -04:00
ameerj
656de6639c glsl: Implement fswzadd
and wip nv thread shuffle impl
2021-07-22 21:51:37 -04:00
ameerj
ccd4becb79 glsl: Implement indexed attribute loads 2021-07-22 21:51:37 -04:00
ameerj
819ae85298 glsl: Conditionally add GL_ARB_sparse_texture2 2021-07-22 21:51:37 -04:00
ameerj
5292962d7e glsl: Conditionally use GL_EXT_shader_image_load_formatted
Fix for SULD.D
2021-07-22 21:51:37 -04:00
ameerj
6e4ed00e8d glsl: Remove output generic indexing for geometry stage 2021-07-22 21:51:37 -04:00
ameerj
3319879b23 glsl: Allow dynamic tracking of variable allocation 2021-07-22 21:51:37 -04:00
ameerj
1017c12427 glsl: Implement barriers 2021-07-22 21:51:37 -04:00
ameerj
b3a46a3746 glsl: Implement image atomics and set layer
along with some more cleanup/oversight fixes
2021-07-22 21:51:37 -04:00
ameerj
d01344c008 glsl: Fix image gather logic 2021-07-22 21:51:37 -04:00
ameerj
fd55ca9828 glsl: Add cbuf access workaround for devices with component indexing bug 2021-07-22 21:51:37 -04:00