From 77ef4fa9078b56c3fcaded3a618cf95fe21e66d4 Mon Sep 17 00:00:00 2001 From: ReinUsesLisp Date: Sat, 31 Aug 2019 17:06:00 -0300 Subject: shader/shift: Implement SHR wrapped and clamped variants Nvidia defaults to wrapped shifts, but this is undefined behaviour on OpenGL's spec. Explicitly mask/clamp according to what the guest shader requires. --- src/video_core/engines/shader_bytecode.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/video_core/engines') diff --git a/src/video_core/engines/shader_bytecode.h b/src/video_core/engines/shader_bytecode.h index c3678b9ea..bd8c1ada0 100644 --- a/src/video_core/engines/shader_bytecode.h +++ b/src/video_core/engines/shader_bytecode.h @@ -674,6 +674,10 @@ union Instruction { BitField<48, 1, u64> is_signed; } shift; + union { + BitField<39, 1, u64> wrap; + } shr; + union { BitField<39, 5, u64> shift_amount; BitField<48, 1, u64> negate_b; -- cgit v1.2.3