summaryrefslogtreecommitdiffstats
path: root/src/shader_recompiler/backend/glsl/emit_glsl_image.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/shader_recompiler/backend/glsl/emit_glsl_image.cpp')
-rw-r--r--src/shader_recompiler/backend/glsl/emit_glsl_image.cpp11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/shader_recompiler/backend/glsl/emit_glsl_image.cpp b/src/shader_recompiler/backend/glsl/emit_glsl_image.cpp
index 6b7f1eaad..c070fba0e 100644
--- a/src/shader_recompiler/backend/glsl/emit_glsl_image.cpp
+++ b/src/shader_recompiler/backend/glsl/emit_glsl_image.cpp
@@ -32,14 +32,13 @@ void EmitImageSampleImplicitLod([[maybe_unused]] EmitContext& ctx, [[maybe_unuse
if (info.has_lod_clamp) {
throw NotImplementedException("Lod clamp samples");
}
+ const auto texture{Texture(ctx, info, index)};
if (!offset.IsEmpty()) {
- throw NotImplementedException("Offset");
- }
- if (info.type != TextureType::Color2D) {
- throw NotImplementedException("Texture type: {}", info.type.Value());
+ ctx.AddF32x4("{}=textureOffset({},{},ivec2({}));", inst, texture, coords,
+ ctx.reg_alloc.Consume(offset));
+ } else {
+ ctx.AddF32x4("{}=texture({},{});", inst, texture, coords);
}
- const auto texture{Texture(ctx, info, index)};
- ctx.AddF32x4("{}=texture({},{});", inst, texture, coords);
}
void EmitImageSampleExplicitLod([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,