Add Bias and Fetch to divergent Lod sampling

It's possible for Bias and Fetch to have divergent LODs, so they should
use the same route as Grad and Lod sampling methods.

Bug: b/133868964
Bug: b/163791974
Tests: dEQP-VK.texture.subgroup_lod.texelfetch

Change-Id: Ie792e17589ce2b22861184eb3ffca25503b2e428
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/55990
Tested-by: Sean Risser <srisser@google.com>
Commit-Queue: Sean Risser <srisser@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
diff --git a/src/Pipeline/SpirvShaderSampling.cpp b/src/Pipeline/SpirvShaderSampling.cpp
index ef3bb5b..beca443 100644
--- a/src/Pipeline/SpirvShaderSampling.cpp
+++ b/src/Pipeline/SpirvShaderSampling.cpp
@@ -174,7 +174,8 @@
 		// For explicit-lod instructions the LOD can be different per SIMD lane. SamplerCore currently assumes
 		// a single LOD per four elements, so we sample the image again for each LOD separately.
 		// TODO(b/133868964) Pass down 4 component lodOrBias, dsx, and dsy to sampleTexture
-		if(samplerFunction.method == Lod || samplerFunction.method == Grad)
+		if(samplerFunction.method == Lod || samplerFunction.method == Grad ||
+		   samplerFunction.method == Bias || samplerFunction.method == Fetch)
 		{
 			// Only perform per-lane sampling if LOD diverges or we're doing Grad sampling.
 			Bool perLaneSampling = samplerFunction.method == Grad || lodOrBias.x != lodOrBias.y ||