ameerj
8c907c620d
glsl: Add boolean reference workaround
2021-12-29 19:03:50 -05:00
ameerj
b84d429c2e
glsl_context_get_set: Add alternative cbuf type for broken drivers
...
some drivers have a bug bitwise converting floating point cbuf values to uint variables. This adds a workaround for these drivers to make all cbufs uint and convert to floating point as needed.
2021-12-29 19:03:50 -05:00
ameerj
9f34be5a61
emit_glsl_integer: Use negation work around
2021-12-29 19:03:50 -05:00
ameerj
14ac0c2923
shader: Add integer attribute get optimization pass
...
Works around an nvidia driver bug, where casting the integer attributes to float and back to an integer always returned 0.
2021-12-29 19:03:49 -05:00
bunnei
279c7bcc1a
Merge pull request #7618 from goldenx86/patch-4
...
Increase boost requirement to 1.78.0
2021-12-28 16:25:37 -08:00
Matías Locatti
c7235e67ef
Empty spaces
2021-12-28 18:50:51 -03:00
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
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
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
618de4e787
vulkan: Fix rescaling push constant usage
2021-11-16 22:11:31 +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
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
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
c15332c44f
shader: Add IsTextureScaled opcode
2021-11-16 22:11:28 +01:00
ReinUsesLisp
95761cc6a7
shader: Add integer division opcodes
2021-11-16 22:11:28 +01:00
ReinUsesLisp
fb924ea85c
shader: Add resolution down factor opcode
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
vonchenplus
49f9a44235
Support gl_FogFragCoord attribute
2021-10-31 23:34:17 +08: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
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
Morph
e29f3b87f1
style: Remove extra space preceding the :: operator
2021-09-29 01:26:01 -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
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
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
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
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
ameerj
56478bc9ac
shader: Fix disabled attribute default values
2021-07-22 21:51:40 -04:00
ameerj
56c30dd9e0
glsl: Simplify FCMP emission
2021-07-22 21:51:40 -04:00
ameerj
79d2684261
glsl: Update TessellationControl gl_in
...
Adheres to GL_ARB_separate_shader_objects requirements
2021-07-22 21:51:40 -04:00
ReinUsesLisp
bf2956d77a
shader: Avoid usage of C++20 ranges to build in clang
2021-07-22 21:51:40 -04:00
ameerj
94af0a00f6
glsl: Clamp shared mem size to GL_MAX_COMPUTE_SHARED_MEMORY_SIZE
2021-07-22 21:51:40 -04:00
lat9nq
49946cf780
shader_recompiler, video_core: Resolve clang errors
...
Silences the following warnings-turned-errors:
-Wsign-conversion
-Wunused-private-field
-Wbraced-scalar-init
-Wunused-variable
And some other errors
2021-07-22 21:51:40 -04:00
ameerj
11f04f1022
shader: Ignore global memory ops on devices lacking int64 support
2021-07-22 21:51:40 -04:00
ReinUsesLisp
8722668b3c
emit_spirv: Workaround VK_KHR_shader_float_controls on fp16 Nvidia
...
Fix regression on Fire Emblem: Three Houses when using native fp16.
2021-07-22 21:51:40 -04:00
lat9nq
2e5af95541
shader: GCC fmt 8.0.0 fixes
2021-07-22 21:51:40 -04:00
ReinUsesLisp
5643a909bc
shader: Fix disabled and unwritten attributes and varyings
2021-07-22 21:51:39 -04:00
ameerj
65daec8b75
glsl: Fix shared and local memory declarations
...
account for the fact that program.*memory_size is in units of bytes.
2021-07-22 21:51:39 -04:00
ameerj
8289eb108f
opengl: Implement LOP.CC
...
Used by MH:Rise
2021-07-22 21:51:39 -04:00
ReinUsesLisp
5b2b0634a1
spirv: Fix code emission when descriptor aliasing is unsupported
...
Fixes OpenGL.
2021-07-22 21:51:39 -04:00
ameerj
00fa09dc45
glsl: Declare local memory in main
2021-07-22 21:51:39 -04:00
ameerj
f7352411f0
glsl: Add passthrough geometry shader support
2021-07-22 21:51:39 -04:00
ReinUsesLisp
8a3427a4c8
glasm: Add passthrough geometry shader support
2021-07-22 21:51:39 -04:00
ReinUsesLisp
7dafa96ab5
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
27ca8a0e13
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
4397053d5c
shader: Remove IAbs64
2021-07-22 21:51:39 -04:00
ameerj
bc6e399ae3
glsl: Fix IADD CC
2021-07-22 21:51:39 -04:00
ReinUsesLisp
808ef97a08
shader: Move loop safety tests to code emission
2021-07-22 21:51:39 -04:00
ameerj
cbce9ddd4a
glsl: Remove frag color initialization
2021-07-22 21:51:39 -04:00
ameerj
3a2dd1b483
glasm: Implement SetAttribute ViewportMask
2021-07-22 21:51:39 -04:00
ameerj
1c648f176c
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
cfbc85839d
glsl: Add missing ; in EmitSetSampleMask
...
Fixes shader compilation in Okami HD
2021-07-22 21:51:38 -04:00
ameerj
9e066dcb15
glsl: Fix output varying initialization when transform feedback is used
2021-07-22 21:51:38 -04:00
ReinUsesLisp
59fead3a47
spirv: Properly handle devices without int8 and int16
2021-07-22 21:51:38 -04:00
ReinUsesLisp
b5e78607ad
spirv: Handle small storage buffer loads on devices with no support
2021-07-22 21:51:38 -04:00
ameerj
ccbd24fe00
glsl: Fix cbuf component indexing bug falback
2021-07-22 21:51:38 -04:00
ReinUsesLisp
374eeda1a3
shader: Properly manage attributes not written from previous stages
2021-07-22 21:51:38 -04:00
ReinUsesLisp
892b8aa2ad
glsl: Only declare fragment outputs on fragment shaders
2021-07-22 21:51:38 -04:00
ReinUsesLisp
0ffea97e2e
shader: Split profile and runtime info headers
2021-07-22 21:51:38 -04:00
ameerj
12ef06ba8b
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
d36f667bc0
glsl: Address rest of feedback
2021-07-22 21:51:38 -04:00
ameerj
c5dfa0b630
glsl: Move gl_Position/generic attribute initialization to EmitProlgue
2021-07-22 21:51:38 -04:00
ameerj
3b339fbbf6
glsl: Conditionally use fine/coarse derivatives based on device support
2021-07-22 21:51:38 -04:00
ameerj
6eea88d614
glsl: Cleanup/Address feedback
2021-07-22 21:51:38 -04:00
ameerj
ae4e452759
glsl: Add Shader_GLSL logging
2021-07-22 21:51:38 -04:00
ameerj
6c6a451d6a
glsl: Add LoopSafety instructions
2021-07-22 21:51:38 -04:00
ameerj
a0d0704aff
glsl: Conditionally add EXT_texture_shadow_lod
2021-07-22 21:51:38 -04:00
ameerj
5e7b2b9661
glsl: Add stubs for sparse queries and variable aoffi when not supported
2021-07-22 21:51:38 -04:00