CamilleLaVey
1c9f603947
[revert] Opcode Promotion path emulation
3 weeks ago
CamilleLaVey
08dbacdf53
[vk, gl, spv] Opcode Promotion path emulation
3 weeks ago
CamilleLaVey
535b33bc6b
[spv, qcom] Implement warp intrinsics support
4 weeks ago
Caio Oliveira
4fb7aea7b4
Revert "Controlled SPV features on QCOM"
This reverts commit 907b041ec6 .
4 weeks ago
CamilleLaVey
a8af150df4
Controlled SPV features on QCOM
4 weeks ago
Liam
749f0564ae
shader_recompiler: throw on missing geometry streams in geometry shaders
2 years ago
Liam
6611ba122b
shader_recompiler: ignore clip distances beyond driver support level
2 years ago
Liam
a41e57d968
renderer_vulkan: ignore viewport stores on non-supporting drivers
2 years ago
Ameer J
b49639e786
shader_recompiler: Align SSBO offsets in GlobalMemory functions
2 years ago
Kelebek1
90d99fbd00
Manually robust on Maxwell and earlier
2 years ago
Billy Laws
cfbe4b09eb
Avoid using VectorExtractDynamic for subgroup mask on Adreno GPUs
This crashes their shader compiler for some reason.
3 years ago
Billy Laws
2beb3051c1
Implement scaled vertex buffer format emulation
These formats are unsupported by mobile GPUs so they need to be emulated in shaders instead.
3 years ago
Wollnashorn
dda107ffa7
video_core: Enable ImageGather with subpixel offset on Intel
3 years ago
Wollnashorn
45fb154f0d
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
77aea7e2b4
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
11f29ec173
Vulkan: Add support for VK_EXT_depth_clip_control.
4 years ago
Morph
2b87305d31
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
c5c13369fa
glsl: Add boolean reference workaround
4 years ago
ameerj
a57dc3509a
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
a23f05c215
glsl: Clamp shared mem size to GL_MAX_COMPUTE_SHARED_MEMORY_SIZE
5 years ago
ameerj
508e41777b
shader: Ignore global memory ops on devices lacking int64 support
5 years ago
ReinUsesLisp
ff35ef8ec1
emit_spirv: Workaround VK_KHR_shader_float_controls on fp16 Nvidia
Fix regression on Fire Emblem: Three Houses when using native fp16.
5 years ago
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.
5 years ago
ReinUsesLisp
9389e71b12
shader: Split profile and runtime info headers
5 years ago
ameerj
1d2c13fd7b
glsl: Address rest of feedback
5 years ago
ameerj
bc50a9ef20
glsl: Conditionally use fine/coarse derivatives based on device support
5 years ago
ameerj
4e73fdbd0f
glsl: Cleanup/Address feedback
5 years ago
ameerj
b33af69513
glsl: Add stubs for sparse queries and variable aoffi when not supported
5 years ago
ameerj
656de6639c
glsl: Implement fswzadd
and wip nv thread shuffle impl
5 years ago
ameerj
b3a46a3746
glsl: Implement image atomics and set layer
along with some more cleanup/oversight fixes
5 years ago
ameerj
fd55ca9828
glsl: Add cbuf access workaround for devices with component indexing bug
5 years ago
ameerj
8c9d420fa5
glsl: Use textureGrad fallback when EXT_texture_shadow_lod is unsupported
5 years ago
ameerj
0c162d8b17
glsl: skip gl_ViewportIndex write if device does not support it
5 years ago
ameerj
ce2ddb7d69
glsl: Query GL Device for FP16 extension support
5 years ago
ReinUsesLisp
5fa6d7a3b9
glasm: Use ARB_derivative_control conditionally
5 years ago
ReinUsesLisp
9750e0410b
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.
5 years ago
ReinUsesLisp
df14567fcc
glasm: Use storage buffers instead of global memory when possible
5 years ago
ReinUsesLisp
9452fe2dc6
shader: Split profile and runtime information in separate structs
5 years ago
ReinUsesLisp
bfb08e709c
shader: Add OpenGL shader profile options
5 years ago
FernandoS27
6c60109967
shader: Implement SR_Y_DIRECTION
5 years ago
ReinUsesLisp
b6b541e36a
spirv: Implement ViewportMask with NV_viewport_array2
5 years ago
ReinUsesLisp
38908d0f7e
shader: Implement tessellation shaders, polygon mode and invocation id
5 years ago
ameerj
542dc35aac
spirv: Implement alpha test
5 years ago
ReinUsesLisp
e59971ea1b
shader: Implement transform feedbacks and define file format
5 years ago
ReinUsesLisp
4a6c299e3f
shader: Implement early Z tests
5 years ago
ReinUsesLisp
4b32692423
shader: Implement geometry shaders
5 years ago
ameerj
62c3bef607
shader: Implement ATOM/S and RED
5 years ago
ReinUsesLisp
480ce24b7e
spirv: Guard against typeless image reads on unsupported devices
5 years ago
FernandoS27
68bad0e922
shader: Implement ViewportIndex
5 years ago
ReinUsesLisp
0bb8a473e2
spirv: Add fixed pipeline point size
5 years ago