Liam
3009d0bd7d
Address review comments
2022-03-17 14:48:18 -04:00
Liam
e228a40db8
shader_recompiler: Use functions for indirect const buffer accesses
2022-03-17 13:30:21 -04:00
Liam
3ac522ba41
Address review comments
2022-03-17 09:30:41 -04:00
Liam
52895fab67
shader: add support for const buffer indirect addressing
2022-03-14 19:43:32 -04:00
ameerj
e8c50e709e
emit_spirv, vk_compute_pass: Resolve VS2022 compiler errors
2022-03-12 02:54:33 -05:00
ameerj
e394e1ecc4
emit_glsl_atomic: Implement 32x2 fallback atomic ops
2022-01-29 19:56:03 -05:00
ameerj
ad58d7eae7
shaders: Add U64->U32x2 Atomic fallback functions
2022-01-29 19:55:53 -05:00
ameerj
4790ba7839
spirv_atomic: Define U32x2 storage buffers for 64-bit storage atomics
...
Some drivers do not support 64-bit atomics, and fallback to atomically modifying U32x2 vectors. This change ensures that U32x2 storage vectors are defined in the spir-v shader when 64-bit atomics are used.
Fixes a hang on some devices, notably Intel GPUs, when booting Pokemon Legends Arceus
2022-01-28 19:00:04 -05:00
ameerj
beaf7654bb
emit_spirv: Add Xfb execution mode when transform feedback is used
...
Fixes Transform Feedback on Vulkan AMD drivers.
2022-01-28 16:32:48 -05:00
v1993
a943600019
shader_recompiler: fix potential OOB access
...
Found by static analysis with PVS-Studio. Original check wasn't actually checking for OOB and would segfault in case of it.
2022-01-17 21:50:51 +03:00
Narr the Reg
524674aafc
glsl: Remove unreachable return
2022-01-04 20:23:39 -06:00
Fernando S
ae7da0b12d
Merge pull request #7629 from ameerj/nv-driver-fixes
...
shaders: Add fixes for NVIDIA drivers 495+
2022-01-03 00:39:59 +01:00
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