Fernando Sahmkow
f58ee3f15f
ShaderDecompiler: Add a debug option to dump the game's shaders.
2022-01-04 02:39:00 +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
4908a07c20
Address format clang
2021-12-18 14:27:07 +08:00
4dd85f86a8
Implement convert legacy to generic
2021-11-19 22:53:58 +08:00
ReinUsesLisp
6f3a41abe2
opengl: Use Shader::NumDescriptors when possible
2021-11-16 22:11:28 +01:00
Morph
2df2b3719a
renderers: Log total pipeline count
2021-09-14 13:18:26 -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
Lioncash
075a744e38
gl_shader_cache: Remove unused variable
2021-07-27 06:23:49 -04:00
ReinUsesLisp
258f35515d
shader_environment: Receive cache version from outside
...
This allows us invalidating OpenGL and Vulkan separately in the future.
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
ReinUsesLisp
8c166c68d4
gl_shader_cache: Properly implement asynchronous shaders
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
ameerj
dbee32d302
gl_shader_cache: Fixes for async shaders
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
fb9b1787f8
video_core: Enable GL SPIR-V shaders
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
ReinUsesLisp
395bed3a0a
shader: Unify shader stage types
2021-07-22 21:51:39 -04:00
ReinUsesLisp
fb166b5ff4
shader: Emulate 64-bit integers when not supported
...
Useful for mobile and Intel Xe devices.
2021-07-22 21:51:39 -04:00
ReinUsesLisp
f5db8c7440
gl_shader_cache: Check previous pipeline before checking hash map
...
Port optimization from Vulkan.
2021-07-22 21:51:39 -04:00
ameerj
fcff19e0fa
shaders: Allow shader notify when async shaders is disabled
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
cbbca26d18
shader: Add support for native 16-bit floats
2021-07-22 21:51:38 -04:00
ReinUsesLisp
376aa94819
shader: Rename maxwell/program.h to translate_program.h
2021-07-22 21:51:38 -04:00
ameerj
d36f667bc0
glsl: Address rest of feedback
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
74f683787e
gl_shader_cache: Implement async shaders
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
ameerj
413eb6983f
gl_shader_cache: Move OGL shader compilation to the respective Pipeline constructor
2021-07-22 21:51:38 -04:00
ameerj
8bb8bbf4ae
glsl: Implement fswzadd
...
and wip nv thread shuffle impl
2021-07-22 21:51:37 -04:00
ameerj
970fc39d98
glsl: Rebase fixes
2021-07-22 21:51:37 -04:00
ameerj
747b8556a4
glsl: Use textureGrad fallback when EXT_texture_shadow_lod is unsupported
2021-07-22 21:51:37 -04:00
ameerj
6577a63d36
glsl: skip gl_ViewportIndex write if device does not support it
2021-07-22 21:51:37 -04:00
ameerj
f4799e8fa1
glsl: Implement transform feedback
2021-07-22 21:51:37 -04:00
ameerj
e35ffbbeb0
glsl: Implement VOTE for subgroup size potentially larger
2021-07-22 21:51:36 -04:00
ameerj
3d086e6130
glsl: Implement some attribute getters and setters
2021-07-22 21:51:36 -04:00
ameerj
bd24fa9713
glsl: Query GL Device for FP16 extension support
2021-07-22 21:51:36 -04:00
ReinUsesLisp
53667ddd4e
glsl: Fixup build issues
2021-07-22 21:51:36 -04:00
ameerj
eaff1030de
glsl: Initial backend
2021-07-22 21:51:35 -04:00
ReinUsesLisp
cb78a1b494
shader: Reorder shader cache directories
2021-07-22 21:51:35 -04:00
ReinUsesLisp
b1ed64ac18
gl_shader_util: Move shader utility code to a separate file
2021-07-22 21:51:35 -04:00
ReinUsesLisp
12fe7210d2
gl_shader_cache: Store workers in shader cache object
2021-07-22 21:51:35 -04:00
FernandoS27
562af30181
shader: Fix VertexA Shaders.
2021-07-22 21:51:34 -04:00
ReinUsesLisp
79f2fe1a39
glasm: Use ARB_derivative_control conditionally
2021-07-22 21:51:34 -04:00
ReinUsesLisp
916ca74324
opengl: Declare fragment outputs even if they are not used
...
Fixes Ori and the Blind Forest's menu on GLASM. For some reason
(probably high level optimizations) it is not sanitized on SPIR-V for
OpenGL. Vulkan is unaffected by this change.
2021-07-22 21:51:34 -04:00
ReinUsesLisp
b7764c3a79
shader: Handle host exceptions
2021-07-22 21:51:34 -04:00
ReinUsesLisp
adb591a757
glasm: Use storage buffers instead of global memory when possible
2021-07-22 21:51:33 -04:00
ReinUsesLisp
a41b2ed391
gl_shader_cache: Add disk shader cache
2021-07-22 21:51:33 -04:00