aboutsummaryrefslogtreecommitdiff
path: root/src/shader_recompiler/backend/glsl/emit_glsl_image.cpp
diff options
context:
space:
mode:
authorameerj <52414509+ameerj@users.noreply.github.com>2021-05-27 22:28:33 -0400
committerameerj <52414509+ameerj@users.noreply.github.com>2021-07-22 21:51:36 -0400
commit2a713337165df4d5c4228458999a680e9ab65369 (patch)
tree0e820cbfcedaaffafc34b334bd04107a51e2a24d /src/shader_recompiler/backend/glsl/emit_glsl_image.cpp
parent6674637853009115833e132efce19c8e210f0471 (diff)
glsl: Fix bindings, add some CC ops
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 6b7f1eaad5..c070fba0e8 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,