Commit Graph

58 Commits (c112986869517a02b1571e02f339c4ed4e074b29)

Author SHA1 Message Date
Liam f46dc31683 shader_recompiler: throw on missing geometry streams in geometry shaders 2 years ago
Liam 94244437de shader_recompiler: ignore clip distances beyond driver support level 2 years ago
Ameer J 1d11fe00a3
Merge branch 'master' into ssbo-align 2 years ago
Liam 473caaff5b renderer_vulkan: ignore viewport stores on non-supporting drivers 2 years ago
Ameer J 75c5be55af shader_recompiler: Align SSBO offsets in GlobalMemory functions 2 years ago
Kelebek1 e02ee8e59d Manually robust on Maxwell and earlier 2 years ago
Billy Laws b4a12b889e Avoid using VectorExtractDynamic for subgroup mask on Adreno GPUs
This crashes their shader compiler for some reason.
2 years ago
Billy Laws 158a1896ec Implement scaled vertex buffer format emulation
These formats are unsupported by mobile GPUs so they need to be emulated in shaders instead.
2 years ago
Wollnashorn fe91066f46 video_core: Enable ImageGather with subpixel offset on Intel 3 years ago
Wollnashorn 780240e697 shader_recompiler: Add subpixel offset for correct rounding at `ImageGather`
On AMD a subpixel offset of 1/512 of the texel size is applied to the texture coordinates at a ImageGather call to ensure the rounding at the texel centers is done the same way as in Maxwell or other Nvidia architectures.
See https://www.reedbeta.com/blog/texture-gathers-and-coordinate-precision/ for more details why this might be necessary.

This should fix shadow artifacts at object edges in Zelda: Breath of the Wild (#9957, #6956).
3 years ago
Billy Laws bbfad79c89 Vulkan: Add a workaround for input_position on Adreno drivers
Adreno drivers will crash compiling geometry shaders if the input position is not wrapped in a gl_in struct.
3 years ago
FernandoS27 0104e28fe4 Vulkan: Add support for VK_EXT_depth_clip_control. 3 years ago
Morph 99ceb03a1c general: Convert source file copyright comments over to SPDX
This formats all copyright comments according to SPDX formatting guidelines.
Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
4 years ago
ameerj 8c907c620d glsl: Add boolean reference workaround 4 years ago
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.
4 years ago
ameerj 94af0a00f6 glsl: Clamp shared mem size to GL_MAX_COMPUTE_SHARED_MEMORY_SIZE 4 years ago
ameerj 11f04f1022 shader: Ignore global memory ops on devices lacking int64 support 4 years ago
ReinUsesLisp 8722668b3c emit_spirv: Workaround VK_KHR_shader_float_controls on fp16 Nvidia
Fix regression on Fire Emblem: Three Houses when using native fp16.
4 years ago
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.
4 years ago
ReinUsesLisp 0ffea97e2e shader: Split profile and runtime info headers 4 years ago
ameerj d36f667bc0 glsl: Address rest of feedback 4 years ago
ameerj 3b339fbbf6 glsl: Conditionally use fine/coarse derivatives based on device support 4 years ago
ameerj 6eea88d614 glsl: Cleanup/Address feedback 4 years ago
ameerj 5e7b2b9661 glsl: Add stubs for sparse queries and variable aoffi when not supported 4 years ago
ameerj 8bb8bbf4ae glsl: Implement fswzadd
and wip nv thread shuffle impl
4 years ago
ameerj 421847cf1e glsl: Implement image atomics and set layer
along with some more cleanup/oversight fixes
4 years ago
ameerj 35e78d558d glsl: Add cbuf access workaround for devices with component indexing bug 4 years ago
ameerj 747b8556a4 glsl: Use textureGrad fallback when EXT_texture_shadow_lod is unsupported 4 years ago
ameerj 6577a63d36 glsl: skip gl_ViewportIndex write if device does not support it 4 years ago
ameerj bd24fa9713 glsl: Query GL Device for FP16 extension support 4 years ago
ReinUsesLisp 79f2fe1a39 glasm: Use ARB_derivative_control conditionally 4 years ago
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.
4 years ago
ReinUsesLisp adb591a757 glasm: Use storage buffers instead of global memory when possible 4 years ago
ReinUsesLisp 9e7b6622c2 shader: Split profile and runtime information in separate structs 4 years ago
ReinUsesLisp a46d91b1ef shader: Add OpenGL shader profile options 4 years ago
FernandoS27 f18a6dd1bd shader: Implement SR_Y_DIRECTION 4 years ago
ReinUsesLisp e3514bcd6b spirv: Implement ViewportMask with NV_viewport_array2 4 years ago
ReinUsesLisp 183855e396 shader: Implement tessellation shaders, polygon mode and invocation id 4 years ago
ameerj 6c512f4bff spirv: Implement alpha test 4 years ago
ReinUsesLisp b126987c59 shader: Implement transform feedbacks and define file format 4 years ago
ReinUsesLisp a83579b50a shader: Implement early Z tests 4 years ago
ReinUsesLisp f263760c5a shader: Implement geometry shaders 4 years ago
ameerj 3db2b3effa shader: Implement ATOM/S and RED 4 years ago
ReinUsesLisp ab543f1821 spirv: Guard against typeless image reads on unsupported devices 4 years ago
FernandoS27 d819ba4489 shader: Implement ViewportIndex 4 years ago
ReinUsesLisp 7a1c14269e spirv: Add fixed pipeline point size 4 years ago
ReinUsesLisp e860870dd2 shader: Implement LDS, STS, LDL, and STS and use SPIR-V 1.4 when available 4 years ago
ReinUsesLisp dbd882ddeb shader: Better interpolation and disabled attributes support 4 years ago
ReinUsesLisp d9c5bd9509 shader: Refactor PTP and other minor changes 4 years ago
FernandoS27 742d11c2ad shader: Implement TLD4.PTP 4 years ago